[WARGAME][los] skeleton

jckim22·2022년 11월 23일
0

[WEBHACKING] STUDY (WARGAME)

목록 보기
102/114
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'] == 'admin') solve("skeleton"); 
  highlight_file(__FILE__); 
?>

서버 코드를 보면 이전에 기본적으로 있던 정규식외에 다른 정규식도 없고 id가 admin인 데이터를 가져오면 되는 문제이다.

아래에서 pw 부분에 인젝션을 시도해 답을 가져와야 한다.

바로 대입해보면서 생각해낸 인젝션 쿼리는 아래와 같다.
전자의 쿼리를 거짓으로 만들고 or로 후자의 내용을 실행시킨다.
후자는 id = 'admin'이라는 데이터를 달라는 것이었고 --으로 뒤에 ' and 1=0을 무효화 시킨다.

그럼 이제 url에 아래처럼 직접 대입해보자.

성공적으로 클리어 할 수 있었다.

이전에 했던 내용과 다른게 없어서 좀 의아한 문제였다.

profile
개발/보안

0개의 댓글