문제 소스를 보면 다음과 같습니다.
<?php if($_GET['view_source']){ highlight_file(__FILE__); exit; } ?><html> <head> <title>Challenge 44</title> </head> <body> <?php if($_POST['id']){ $id = $_POST['id']; $id = substr($id,0,5); system("echo 'hello! {$id}'"); // You just need to execute ls } ?> <center> <form method=post action=index.php name=htmlfrm> name : <input name=id type=text maxlength=5><input type=submit value='submit'> </form> <a href=./?view_source=1>view-source</a> </center> </body> </html>
위의 소스에서 $id에 들어가는 값은 5글자로 잘리게 되며, system 함수 내로 그대로 들어가는 것을 볼 수 있습니다.
여기서 ls를 실행하라고 하는데, 어떻게 하는 게 좋을까 고민해보았습니다.
일단 싱글쿼터로 닫아주고, echo까지는 끊어줘야 하니 세미콜론 넣어주고, ls 넣고, system 함수가 오류가 나면 안 되니 싱글쿼터를 더 넣어주니 이미 5글자더군요.
그대로 답을 입력해보니 플래그가 나왔습니다. ㅎㅅㅎ..
'WARGAMES > webhacking.kr - old' 카테고리의 다른 글
Webhacking.kr_No48(350) - old (0) | 2020.01.15 |
---|---|
Webhacking.kr_No47(150) - old (0) | 2020.01.15 |
Webhacking.kr_No46(300) - old (0) | 2020.01.15 |
Webhacking.kr_No45(550) - old (0) | 2020.01.13 |
Webhacking.kr_No43(250) - old (0) | 2020.01.08 |
Webhacking.kr_No42(200) - old (0) | 2020.01.08 |
Webhacking.kr_No41(250) - old (0) | 2020.01.08 |
Webhacking.kr_No40(500) - old (0) | 2020.01.08 |