반응형

rubiya 님의 Stored XSS 글을 보다가 몇가지 실험을 해보았고, 그 결과를 공유한다.

일단, rubiya님의 글은 다음과 같다.


https://blog.rubiya.kr/index.php/2018/11/28/webhacking-kr-stored-xss-vuln/


간단히 해당 글을 요약하자면, 웹해킹 분야의 워게임 사이트인 webhaking.kr에 존재하는 문제 중 운영자가 의도하지 않은 취약점이 해당 문제에 존재하였고, 해당 취약점을 이용하여 Stored XSS가 이루어진다는 내용이다.


Stored XSS가 단순히 게시글 등록으로 이루어진 것이 아니라, Indirect SQL Injection을 통해 이루어졌다는 점도 흥미롭다.


Indirect SQL Injection에 대해서는 바로 이전 포스팅에서 간단히 설명해두었으니 해당 게시글을 참고해주길 바란다.



모든 내용이 이해가 갔는데, 1.jpg 부분을 통해 소스코드를 발견한 부분이 참 흥미로워서 개인적으로 확인 및 추가 실험을 진행해보았다.


일단 실제로 [tar -cvf *]를 하였을 때 실제로 첫번째 파일에 해당 디렉토리의 모든 파일의 내용이 들어가는지 확인해보았다.


1. 실제 동작하는지 확인


먼저 디렉토리에 3개의 파일이 있는 상태이고, 가장 첫번째 파일의 크기는 9Byte임을 알 수 있다.


이 상태에서 tar -cvf *를 하였고 그 결과 2개의 파일(2.txt, 3.jpg)가 묶였다는 것을 볼 수 있으며 1.jpg 파일의 크기가 10240으로 크게 바뀐 것을 통해 묶인 결과가 1.jpg로 된 것을 볼 수 있다.



vi로 1.jpg를 확인하였을 때 2.txt 파일에 들어있는 [FLAG!!]라는 문자열도 보이는 것을 확인할 수 있다.


이는 tar 명령어를 사용할 때 압축결과 파일명을 따로 작성하지 않을 때 해당 디렉토리의 첫번째 파일에 묶인다는 것을 이용한 것이다.


이 분석을 통해 [웹 서버에서 접근 가능한 디렉토리에는 tar 파일을 두지 않아야하며 만약 둬야한다면 예측 가능한 tar 파일명을 쓰지 않아야한다] 정도의 교훈(?)을 얻을 수 있었다.


--------------------

Q. 만약 명령어를 사용할 수 있는 상태이지만 로그인된 user명이 권한이 낮아 root 권한만 읽을 수 있는 파일을 읽지 못하는 상황이라면?


A. 당연히 tar 를 이용해서도 볼 수 없다.



3개의 파일(1.jpg, 2.txt, 3.jpg) 파일이 root 만 볼 수 있는 파일일 때 tar -cvf *를 하면 Permission denied가 뜨며 묶을 수 없다. 

뭔가 당연한데 혹시나 될수도 있지 않을까 했는데 역시나였다..ㅋㅋㅋ


반응형

'Hacking > Web' 카테고리의 다른 글

JS Deobfuscate  (0) 2019.08.18
LFI  (0) 2019.08.16
Indirect SQL Injection  (0) 2019.08.11
Controller Location In Spring Framework  (0) 2019.07.29
MYSQL load_file & into outfile  (0) 2019.06.28
블로그 이미지

rootable

,