음? 올드좀비 유저 뭐시기...음?
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 |