Path Truncation 문제를 풀어보겠습니다. 관리자 페이지에 접근하라는 문제인 것 같습니다.
우선, 문제에 들어가면 [Home] 버튼과 [Administration] 버튼이 보입니다.
관리자 페이지에 접근을 해야 되므로 [Administration] 버튼을 눌러보겠습니다.
[Administration] 버튼을 누르면 admin.html URL로 이동되는 것을 알 수 있습니다.
하지만, 403 Forbidden 에러가 뜨는군요. 권한체크를 하는 것 같습니다.
다시 메인 페이지로 돌아가서 이번에는 [Home] 버튼을 눌러보았습니다.
URL 파라미터가 index.php?page=home 형식으로 전송되는 것을 알 수 있습니다. LFI 공격이 가능할 것 같아 보입니다.
그래서, Path Truncation에 대해 찾아보았습니다.
Path Truncation은 LFI 공격 기법 중의 하나로 php limits을 우회하는 방법입니다.
PHP 5.3 하위의 버전에서 나타나느 취약점으로, 파일을 열기 전 파라미터 값의 4096 byte 이상의 길이는 잘려 그 이후의 값들은 버려지게 됩니다.
따라서, 후행 슬래시로 4096 byte 이상의 길이를 삽입하면 하드코딩된 파일 확장명을 우회할 수 있습니다.
GET vulnerable.php?filename=../../../etc/passwd/././././././././/././././././././././[ and so on ] HTTP/1.1
출처 : https://medium.com/bugbountywriteup/cvv-1-local-file-inclusion-ebc48e0e479a
그래서, page=home/../admin.html/./././././././././.././././.././././.././././.././././.././././.././././.././././.././././.(4096 byte 이상...)를 삽입 시도하였습니다.
하지만 별다른 반응이 없어 보였습니다. 이유를 찾다가 아래 문장을 발견하였습니다.
if the truncation can't work just add "x/../" after the file name so it will be like this : "x/../index.php"
출처 : https://hackingparadisesn.blogspot.com/2015/05/introduction-to-local-file-inclusion.html
그래서 home 대신 x(타 임의의 문자 가능)를 삽입 후 ../admin.html에 접근 시도하였더니!!
FLAG 값을 획득할 수 있었습니다.
'Study > Wargame' 카테고리의 다른 글
[root-me] Javascript - Authentication (0) | 2019.04.15 |
---|---|
[root-me] HTML - disabled buttons (0) | 2019.04.15 |
[root-me] SQL Injection - GBK (0) | 2019.02.21 |
[root-me] Server-side Template Injection (0) | 2019.02.08 |
[root-me] SQL injection - string (0) | 2019.02.07 |