[Webhacking.kr] old-39

2025. 2. 5. 21:57·Wargame/Webhacking.kr

1. 문제

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

 

 


2. 풀이

2.1 서버 동작

  • 먼저 사용자에게 id 변수를 입력 받는다.
    • 최대 글자는 → 15
    • \\\\ → 공백 문자로 치환
    • ‘ → ‘ ‘ 로 치환

 

 

2.2 해결 과정

id='{$_POST['id']}
  • 코드를 보면 닫는 따옴표가 없다.
  • 닫는 따옴표를 달고 id 값에 1이 되도록 해보자

 

 

$_POST['id'] = substr($_POST['id'],0,15);
$_POST['id'] = str_replace("'","''",$_POST['id']);
  • 이 2개의 코드에서 14글자를 만들 수 있는 상황을 보면
    • substr에서 0~15까지 문자 갯수를 넣을 수 있다.
    • 그렇다면 1 + 공백 13개+ ‘ 를 해주면
    • 14자리가 완성되고 ‘’ 이 붙지만 최대 15개 이므로 ‘ 한개가 없지면서 SQL 구문이 완성된다.

저작자표시 비영리 변경금지 (새창열림)

'Wargame > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-54  (1) 2025.02.07
[Webhacking.kr] old-38  (1) 2025.02.07
[Webhacking.kr] old-15  (0) 2025.02.02
[Webhacking.kr] old-10  (0) 2025.02.01
[Webhacking.kr] old-03  (2) 2025.02.01
'Wargame/Webhacking.kr' 카테고리의 다른 글
  • [Webhacking.kr] old-54
  • [Webhacking.kr] old-38
  • [Webhacking.kr] old-15
  • [Webhacking.kr] old-10
스우스우03
스우스우03
보안 전문가가 되기 위한 노력들
  • 스우스우03
    스우스우
    스우스우03
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • 환경 세팅 및 사용법 (12)
        • 가상환경 (3)
        • Visual Studio Code (3)
        • GitHub (6)
      • Language (17)
        • Python (7)
        • C (2)
        • 알고리즘 (8)
      • Hack&Dev (15)
        • 암호학 (3)
        • Web (11)
        • Pwnable (1)
      • Wargame (88)
        • bandit wargame (42)
        • natas wargame (11)
        • wargame 암호학 (7)
        • Webhacking.kr (26)
        • wargame forensic (1)
        • wargame misc (1)
      • knowledge (8)
        • 기타 지식 (8)
      • 기타... (1)
  • hELLO· Designed By정상우.v4.10.0
스우스우03
[Webhacking.kr] old-39
상단으로

티스토리툴바