Challenge 25

Web Hacking 2015. 2. 27. 17:21


음? 올드좀비 유저 뭐시기...음?

hello.txt 와 index.php 그리고 password.php를 들어가 봐야할 것 같다.


소스파일을 보니 별거 없다




먼저 index.php로 들어가 보았다.



똑같다. 별 차이가 없다. 차이가 있다면 주소창에 /index.php 가 추가되었다는거?


hello.txt에 들어가 보았다.


hello world!


password.php에 들어가 보았다.


별거 없다... ㅎㅎㅎ


처음 시작부터 ?file=hello 라는

어떤 값이 들어가 있었다.

그래서 file에 다른 것들을 다 넣어 보았다.

모두다 아무런 변화가 없었다. 

음....


재우에게 물어 보았더니

lfi취약점을 찾아 보라고 한다...

lfi...  모르는게 끝도 없다 ㅎㅎㅎㅎㅎ


로컬 파일 인클루션(Local File Inclusion)란?


LFI란 Local File Inclusion의 약자로 웹 브라우저를 통해 서버에 파일을 포함시키는 과정입니다.

이 취약점은 인클루드할 페이지 경로가 적절히 필터링되지 않았고 디렉토리 변경 명령어들의 

삽입을 허용했을때 일어납니다. 대부분의 LFI 취약점은 URL을 통해 이뤄지는데 이는 보통 개발자가 

GET Method 사용을 선호하기 때문입니다.



더보기



요약하자면

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


http://www.site.com/index.php?pages=../../../../etc/passwd


../../../ 와 같이 ../를 여러번 붙여 주는 이유는 /etc/passwd 디렉토리의 상위디렉토리 존재 가능성 때문입니다.

위 URL처럼 시도하면 /etc/passwd를 읽어올수 있겠지만 조건에 따라 여전히 안 읽어질수도 있습니다.

여러 이유들이 존재할수 있지만 하나의 이유로는 코딩에 의해 생성된 쓰레기 값 때문 일수 있습니다.

아래 URL대로 시도를 해주면 쓰레기값을 성공적으로 날려버릴수 있습니다.


http://www.site.com/index.php?pages=../../../../etc/passwd%00


/etc/passwd 뒤에 %00은 널바이트로써 /etc/passwd 뒤에 붙는 쓸데없는 값들을 널바이트로 날려버립니다.


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


page= 말고도 아래와 같이 이러한 경로를 갖는 URL들은 LFI를 의심해볼수 있습니다.

file=            path=             doc=            pdf=

folder=          style=            document=       PHP_PATH= 

lang=            template=         pg=             document_root=



file= 를 갖고 있기 때문에 LFI라는걸 알수 있고 %00를 사용하요 쓰레기 값을 날려버리면 된다.




file=password.php%00 값을 넣으면 password가 나타난다!



~~nullbye2~~값을 Auth에 넣으면



challenges clear! 이란 창이 뜬다! ㅎㅎㅎ



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

Challenge 47  (0) 2015.02.27
Challenge 15  (0) 2015.02.27
Challenge 4  (0) 2015.02.27
Challenge 14  (3) 2014.10.01
challenge 6  (5) 2014.10.01
Posted by oyeahhh
,