[해킹/ 문제풀이] KISA 해킹방어 Web Lv4 - LFI(Local File Inclusion)기법을 활용한 PHP 파일 내용 보기
IT 생활/해킹 2013. 10. 22. 17:52KISA 해킹 방어 훈련장 문제에 대한 풀이입니다.
Web Level 4 문제를 보면 아래와 같습니다.
제목 : 파일 읽기
설명 : 해당 웹 사이트에 접속하여 인증키를 얻어내 보아라
파일을 읽는 문제라고 하는군요. 무슨 뜻일까요?
[문제 풀기]를 클릭해서 링크를 따라 들어가 봅시다.
메뉴를 이것저것 클릭하다 보니 URL에 '?path=main' 처럼 값을 줘서 보여줄 화면을 지정하고 있는걸 알 수 있습니다.
크롬(chrome) 브라우저의 요소 검사(Inspect Element)로 소스를 봐 봅시다.
소스의 맨 위에 'readme.php'라는게 보입니다.
왠지 저 파일에 뭔가 문제를 풀 수 있는 힌트가 숨겨져 있을것 같은 느낌이 드는군요.
그래서 제목이 파일 읽기 인가 봅니다.
자신있게 URL의 path값을 readme.php 로 수정해 봅시다.
이런.. 아무것도 나오지 않는군요.
역시 그렇게 간단한 문제는 아닌가 봅니다.
포기하지 말고 readme.php파일을 보기 위해 여러가지 기법을 사용해 봅시다.
먼저 LFI(Local File Inclusion)기법 중 가장 많이 사용되는 base64 encode방식으로 시도해 봅시다.
?path=php://filter/convert.base64-encode/resource=readme
화면에 'no hack'이란 메시지가 나오네요.
이런 수법을 사용할걸 미리 알고 다 막아놨나 봅니다.
그렇다고 여기서 포기하면 안되죠.
PHP 사이트 에 가서 다른 필터 방식을 찾아 봅시다.
우선 conversion 필터 내용을 확인 해보고 시도해봤으나 역시나 다 막혀있네요.
이번에는 String 필터쪽을 살펴봅시다.
문자열(String) 필터 링크를 따라 들어가봅시다.
'string.rot13'이 지원 된다고 하는군요.
이게 뭔가 찾아보니 '카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다.' 라고 하는군요.
큰 기대가 되진 않지만 우선 시도해봅시다.
URL을 다음과 같이 수정해서 시도하면 됩니다.
?path=php://filter/string.rot13/resource=readme
화면에는 아무것도 나타나지 않지만 크롬 브라우저의 '요소 검사(Inspect Element)'기능의 'Resources' 탭에서 보니 뭔가 메시지가 보이네요.
<?
$xrl = "gxqykzncfodufgxsxn_dbeuizrx_oo";
?>
우리가 rot13 방식으로 인코딩 했으니 이 값을 디코딩 하면 무슨 값이 되는지 해봅시다.
rot13 을 디코딩 해주는 사이트를 찾아 들어가봅시다.
먼저 앞에 있는 값 'xrl'을 입력하고 디크립트(decrypt)를 수행했더니 'key'라고 나오네요.
그렇다면 뒤에 있는 값은 우리가 찾는 키 값이 되겠죠?
값을 입력하고 디크립트를 수행하면 그토록 애타게 찾던 키 값이 나옵니다. ^^
base64 인코딩 방식으로 풀어보려 URL을 인코딩도 해보고.. 별별 방법으로 엄청 삽질 했네요.
문제를 풀고나니 오히려 허무하기까지 한 문제였지 않나 싶습니다.
'IT 생활 > 해킹' 카테고리의 다른 글
[해킹/문제풀이] KISA 해킹방어 Network Lv3 - PCAP 파일에서 네이트온 통신 내용 분석 (2) | 2013.10.02 |
---|---|
[해킹/문제풀이] KISA 해킹방어 Network Lv2 - PCAP 파일에서 Telent 통신 내용 분석 (4) | 2013.09.30 |
[해킹/문제풀이] KISA 해킹방어 Network Lv1 - PCAP파일에서 IRC 통신 내용 분석 및 zip 파일 추출 (2) | 2013.09.27 |
[해킹/ 문제풀이] KISA 해킹방어 Web Lv2 - XSS 필터링 우회 기법 (0) | 2013.09.23 |
[해킹/문제풀이] KISA 해킹방어 Web Lv1 - 난독화된 Javascript 디코드 (8) | 2013.09.23 |