webhacking.kr 41번 write up
2017. 11. 3. 15:02
index.phps에 가면 해당 문제의 소스를 확인할 수 있다.
문제에는 딱히 취약한 함수가 없어보이지만 copy() 함수가 취약하다. 만약 destination에 디렉터리가 온다면 Warning 을 띄울 수 있다는 취약점을 갖고 있는데 이 41번 문제를 이렇게 풀 수 있다.
copy() 함수의 취약점을 간단한 예제로 설명해보겠다. 기본적인 소스는 webhacking.kr 과 거의 동일하다.
해당 PHP 소스는 같은 디렉토리에 있는 tmp 파일을 $hidden_dir 경로로 입력받은 파일 이름으로 복사하는 기능을 한다. webhacking.kr 의 소스와는 동일하게 <, > 는 replace 시킨다.
ch4n3@ip-172-31-0-14 ~/tmp $ ./copy_vuln.php "123"
================================
[*] copy file name : 123
================================
Hello World
정상적으로 동작하는 것도 확인했다.
그런데, 만약에 $argv[1]로 <, >을 넘기면 어떨까? 꺽쇠가 replace 되므로 destination에는 디렉터리가 들어가 있을 것이다. 한
이렇게 Warning이 뜨는 것을 확인했다. Warning이 뜨면서 파일을 복사하지 못했다.
webhacking.kr에서는 fwrite() 함수가 그 다음 줄에서 실행되므로, 에러를 내뿜고 hidden_dir 을 뿜어줄 것이므로 해당 문제를 풀 수 있다.
'Hacking > Web.' 카테고리의 다른 글
CTF SSRF시 확인사항 (0) | 2017.11.06 |
---|---|
SQL Injection Tricks (0) | 2017.11.04 |
mysql false based sql injection (0) | 2017.11.01 |
LFI exploit with php wrappers (0) | 2017.10.18 |
Markdown에서 XSS (0) | 2017.10.18 |