문제 소스를 보면 다음과 같습니다.

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

+ Recent posts