[ LOS ] Lord of SQLInjection 18번 풀이(nightmare)

sangjun

·

2022. 1. 12. 02:09

반응형

 

문제소스

query : select id from prob_nightmare where pw=('') and id!='admin'

<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~"); 
  if(strlen($_GET[pw])>6) exit("No Hack ~_~"); 
  $query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id']) solve("nightmare"); 
  highlight_file(__FILE__); 
?>

문제 분석 및 페이로드

1. https://bluehatsecurity.tistory.com/225

 

SQL Injection에서 주로 쓰이는 주석

1. # 주소에서는 %23 으로 바뀐다. 해당 질의문에서 한 줄만 주석처리 한다. 예를 들어 멀티라인에서 첫번째줄에 #이 들어있고 두번째, 세번째에는 없을 경우 첫번째에서만 # 뒤의 문자열이 주석처

bluehatsecurity.tistory.com

주석이 4종류가 있는데 그중 하나를 써줬고

false=false --> true를 이용해 참으로 만들어줬다.

반응형

0개의 댓글