LFI Double encoding 문제를 풀어보도록 하겠습니다.
문제를 들어가보니 Home 탭 옆에 CV 탭과 Contact 탭이 존재합니다. 우선 CV 탭을 클릭해보겠습니다.
CV 탭을 클릭하니 URL 상 page 파라미터가 나오네요. 여기에 LFI 취약점 테스트를 해보도록 하겠습니다.
상위 폴더로 이동 가능한 특수문자 "../"을 삽입하니 공격 구문이 탐지되었습니다ㅜ
이번에는 "../"을 URL 인코딩하여 삽입해 보았으나 역시 공격이 탐지되었습니다.
URL Double Encoding을 해보았습니다. "../"을 두번의 URL 인코딩 후 삽입하였더니! 필터링 없이 LFI 취약점이 발견되었습니다.
php 코드는 실행이 되어버리기 때문에 php wrapper를 사용합니다.
[php://filter/convert.base64-encode/resource=cv] 문자열을 URL encoding으로 두번 인코딩한 후 삽입해보겠습니다.
그랬더니, 정상적으로 공격이 수행되어 cv의 소스코드가 base64로 인코딩된 코드가 노출되었습니다.
base64로 디코딩해보겠습니다.
BASE64로 디코딩 한 소스 내에서 conf.inc.php 파일이 존재하는 것을 파악할 수 있었습니다.
conf.inc.php 코드를 봐야겠군요.
php wrapper를 통해 [php://filter/convert.base64-encode/resource=conf] 문자열을 URL 인코딩으로 두번 한 후 삽입하겠습니다.
정상적으로 공격이 성공하여 BASE64로 인코딩된 소스코드가 노출되었습니다.
BASE64 디코더로 디코딩 해보니 FLAG 값이 나와있습니다.!!
'Study > Wargame' 카테고리의 다른 글
[root-me] Server-side Template Injection (0) | 2019.02.08 |
---|---|
[root-me] SQL injection - string (0) | 2019.02.07 |
[root-me] PHP filters (0) | 2019.01.16 |
root-me >> SQL injection - blind (0) | 2018.06.08 |
root-me>>SQL injection - numeric (0) | 2018.05.01 |