티스토리 뷰

hacking/webhacking.kr

<webhacking.kr> - 37번

khe0616 2018. 2. 28. 13:16

37번문제의 초기화면이다. 파일 업로드 관련 문제인 듯 하다.







코드를 보면 주석으로 index.phps라는 힌트를 제공하고 있다.







index.phps를 확인하기 전에 1.PNG 2.PNG 3.PNG를 업로드 해보았다.





페이지가 새로고침 될 때마다 <tmp-10자리 숫자>가 추가 되어진다.










이제 index.phps를 확인해보겠다.


변수 $time에 현재 시간을 저장한 후

디렉토리 "tmp"의 "tmp-$time"라는 파일을 쓰기모드로 열어서 "127.0.0.1"을 작성한다. 새로고침할때마다 <tmp-10자리 숫자> 파일이 생성되는 이유가 이것이다.



"tmp/.number"파일은 파일의 개수를 측정하는 파일이라고 하는데, 이 문제에서는 별로 중요하지 않다.



file()함수는 파일을 읽어서 배열로 반환하는 함수이다.

$변수명[0] : 첫째줄의 내용

$변수명[1] : 둘째줄의 내용

과 같이 저장이 된다.



$file_nm이라는 변수에 post방식으로 업로드하는 파일 명을 저장한 후 필터링 한다.

그리고, 그 파일을 쓰기 방식으로 열어서 서버에 접속한 사용자, 즉 내 pc의 ip를 작성한다.







scandir() 함수는 디렉터리 안에 있는 파일명과 디렉터리명을 배열로 반환 하는 함수이다. 이 역시 이 문제에서는 크게 중요하지 않다.






마지막으로 "tmp/tmp-$time"이라는 파일에 write되어 있는 내용을 $ck 변수에 저장하고

$ck 변수에 저장된 내용(ip주소) : 포트 번호 7777에 연결한 후

fputs()를 이용하여 $request변수의 내용($pw)을 전송한다.


$request변수에 데이터를 대입하는 과정에서 사용된 ".=" 연산자는 현재 변수의 내용에 원하는 내용을 추가하고자 할때 사용하는 연산자이다.




만약 tmp디렉토리에 있는 파일의 개수가 30개 이상이라면 unlink()함수를 이용해서 모든 파일을 delete하는데, 이는 굳이 신경쓰지 않아도 된다.




정리해보면, 

1, fsockopen()함수로 통신을 할 때 첫번째 인자에는 "127.0.0.1"이 아닌 서버에 접속한 pc의 ip주소(내 ip 주소)가 들어가야 하므로 tmp-$time의 내용을 

"127.0.0.1"   -> "내 외부 ip주소" 로 바꿔주어야 한다.


--> Burp suite를 이용해서 "tmp - 미래의 시각" 이라는 파일을 정확히 "미래의 시각"에 업로드 해주면 "tmp-미래의 시각"의 내용은 내 외부 ip주소가 되고, 결국

내 ip 주소 : 7777 으로 pw가 전송됨


2. 포트 포워딩을 이용해서 7777번 포트를 열어놓아야 함


의 과정이 필요하다.









내 pc의 외부 ip : 7777으로 접속을 시도하면

내 pc의 내부 ip : 7777으로 연결되도록 설정해 놓았다.








netcat을 이용하여 7777번 포트를 열었다.








현재 시간은 위와 같았다.







Burp Suite의 Repeater를 이용해서 "tmp-1519797280"이라는 파일을 정확히 1519797280이라는 시각에 업로드 시켰다.







password가 전송되어진 것을 확인할 수 있다.










클리어









'hacking > webhacking.kr' 카테고리의 다른 글

<webhacking.kr> - 30번  (0) 2018.03.01
<webhacking.kr> - 48번  (0) 2018.03.01
<webhacking.kr> - 34번  (0) 2018.02.15
<webhacking.kr> - 28번  (0) 2018.02.14
<webhacking.kr> - 41번  (0) 2018.02.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함