write-up(web)/webhacking.kr

[Webhacking.kr] old-39

chanchand 2022. 12. 31. 19:13
반응형

문제


 

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Chellenge 39</title>
</head>
<body>
<?php
  $db = dbconnect();
  if($_POST['id']){
    $_POST['id'] = str_replace("\\","",$_POST['id']);
    $_POST['id'] = str_replace("'","''",$_POST['id']);
    $_POST['id'] = substr($_POST['id'],0,15);
    $result = mysqli_fetch_array(mysqli_query($db,"select 1 from member where length(id)<14 and id='{$_POST['id']}"));
    if($result[0] == 1){
      solve(39);
    }
  }
?>
<form method=post action=index.php>
<input type=text name=id maxlength=15 size=30>
<input type=submit>
</form>
<a href=?view_source=1>view-source</a>
</body>
</html>

 

 

 

문제풀이


전송되는 id 파라미터 값이 작은따옴표로 열려있어서 닫아주어야 한다.

id='admin'이 되어야 하는데, 치환이 되어 id='admin''이 된다.

id 파라미터 값을 인덱스 0~14까지만 가져오므로 adminkkkkkkkkk' 를 입력해 adminkkkkkkkkk''이 되어도 adminkkkkkkkkk'만 전달된다.

adminkkkkkkkkk 이라는 계정은 존재하지 않을테니 공백으로 칸을 채우고 admin, guest id를 이용해서 문제를 풀 수 있다.

 

admin+공백9칸+'

guest+공백9칸+'

반응형

'write-up(web) > webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-40  (0) 2023.01.02
[Webhacking.kr] old-01  (1) 2022.12.31
[Webhacking.kr] old-38  (0) 2022.12.31
[Webhacking.kr] old-37  (0) 2022.12.31
[Webhacking.kr] old-36  (0) 2022.12.31