반응형

입력칸 하나와 소스보기가 있다.


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


post id에 \\을 없애고 '을 ''으로 바꾼뒤 15째 자리까지 추출하여 query에 넣어 result로 값을 받아오고 그 첫번째 값이 1이면 풀리는 문제이다. 쿼리문을 참으로만 만들면 될거같다.

15자에 짤리는게 핵심인거같다. injection을 시도할려면 '이 들어가야하는데 막혀있다.

글자를 짤라서 보내기 때문에 admin         ' 이런식으로 보내면 '이 ''으로 바뀌어도 마지막 '은 짤려서 '으로 보내질 것이다.입력창에  admin         ' 를 넣어주면 성공!

(admin외에도 여러값이 저장되어 있는것으로 보인다.)


반응형

'보안 > webhacking' 카테고리의 다른 글

webhacking.kr old-41  (0) 2019.12.05
webhacking.kr old-40  (0) 2019.12.03
webhacking.kr old-38  (0) 2019.12.02
webhacking.kr old-36  (0) 2019.12.01
webhacking.kr old-35  (0) 2019.12.01
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기