yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

challenge (old-44) 본문

wargame 풀이/webhacking.kr

challenge (old-44)

yehey 2021. 1. 14. 19:19

44번 풀이

이번에도 view source 버튼이 있다.

문제만 보았을 때는 SQL injection 같은데 코드를 확인해보자

 

<?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>

 

예상이 빗나간 것 같다. php 코드 내에 system 명령어가 있는 것으로 보아 text 입력란에 적절한 명령어를 넣어서 실행시켜야하는 것 같다.

주석에 힌트도 적혀있다. 우리는 ls 명령어를 실행해야한다.

그런데 id 변수에 값을 입력받을 때 5글자까지만 저장하고 나머지는 저장하지 않고 버리는 것을 볼 수 있다.

따라서 5글자를 입력해서 ls 명령어를 실행시켜야한다.

 

hi를 전달했을 떄는 hello 뒤에 hi가 함께 출력되는 것을 볼 수 있다.

 

그럼 php 명령어를 끝내기 위해 ';' 를 전달해보자

 

이번에는 ';'뒤에 ls 명령어를 함께 전달해보자

 

ls 명령어가 실행된 것을 볼 수 있다.

ls로 출력된 flag를 url에 넣어보자 

 

auth에 넣을 수 있는 FLAG가 출력되었다.

 

'wargame 풀이 > webhacking.kr' 카테고리의 다른 글

challenge (old-6)  (0) 2021.01.19
challenge (old-45)  (0) 2021.01.15
challenge (old-18)  (0) 2020.10.17
challenge (old-17)  (0) 2020.10.16
challenge (old-14)  (0) 2020.10.15
Comments