web_security/Lord Of SQL

[LOS : Lord Of SQL Injection] 12번 Darknight 문제 풀이

HawordFREAKEK 2022. 6. 4. 16:34

네 안녕하세요. Godhaword 입니다.

10번 이전 까지는 약간 튜토리얼 같은 느낌에 문제였다면 10번 이후부터는 본격 SQL 이런 느낌입니다.

10번까지 write-up 보시면서 푸신분들은 문제 푸시지 말고 이론부터 공부하시길 바랍니다. 하나하나 좋은 문제라 답보고 넘기기엔 많이 아쉬운 느낌이 들기도 합니다.

<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); 
  if(preg_match('/\'/i', $_GET[pw])) exit("HeHe"); 
  if(preg_match('/\'|substr|ascii|=/i', $_GET[no])) exit("HeHe"); 
  $query = "select id from prob_darkknight where id='guest' and pw='{$_GET[pw]}' and no={$_GET[no]}"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id']) echo "<h2>Hello {$result[id]}</h2>"; 
   
  $_GET[pw] = addslashes($_GET[pw]); 
  $query = "select pw from prob_darkknight where id='admin' and pw='{$_GET[pw]}'"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("darkknight"); 
  highlight_file(__FILE__); 
?>
if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("darkknight");

이제 이 부분만 보면 Blind SQL 문제겠구나 싶기도 합니다.

일단 orc 때 꺼냈던 코드 다시 들고와서 이번엔 뭐가 더 필터링이 들어갔나 봅시다
싱글쿼터이 들어와서 머리를 조금 더 써야할 것 같네요.

그래서 ascii 값으로 비교하려고 봤으나 ascii 또한 hehe 필터에 걸리게 되었습니다.
그러면 ord를 씁시다

그런데 또 싱글쿼터가 필터링 되기에 저희는 sqli 포인트를 다시 한 번 생각해봐야합니다.
저희는 싱글쿼터를 쓸 수 없기에 문자형 파라미터를 받는 값에는 SQLI를 날리지 못합니다. 그러므로 no 값에다가 sql을 날려보죠

 

돌려놓고 최근에 대학 축제한 에스파 영상 보고 왔습니다.

 

 

제가 생각하기에 orc 다음으로 꽤 괜찮은 문제 였다고 생각합니다.

막 문제만을 위한 문제처럼 요상한 필터링이 들어간 것도 아니고, 기본기에 충실하며, 반복적으로 pw에만 값을 넣던 분들에게 문제를 한 번 다시 읽어봐라 하는 느낌의 문제입니다.

 

https://godhaword.tistory.com/477
https://godhaword.tistory.com/472
https://godhaword.tistory.com/473

 

[WebHacking] SQLI(SQL Injection) 필터링 우회 및 기법 총 정리

네 안녕하세요. Godhaword 입니다. 저번에 SQLI 관련 글을 쓰면서 큰 기초 뼈대 위주로 설명을 드렸습니다. https://godhaword.tistory.com/472 [WebHacking] SQLI(SQL Injection) 이란?(New) 네 안녕하세요. Godh..

godhaword.tistory.com

 

[WebHacking] SQLI(SQL Injection) 이란?(New)

네 안녕하세요. Godhaword 입니다. 원래 1주일에 하나 정도 쓸까 생각했는데 XSS 이야기 하면서 SQL Injection 이야기를 너무 비중있게 다뤘더라구요. 예전에 글을 썼던 2019년의 제가 생각하던 웹 해킹(We

godhaword.tistory.com

 

[Lord Of SQL Injection] 4번 Orc 문제 풀이

네 안녕하세요. Godhaword 입니다. 4번은 약간 "어? 왜 중간보스가 슬라임 던전에?" 라고 생각되는 문제 입니다. 제가 처음 LOS 4번을 풀 때는 뭐 말도 안되는 방법으로 pw를 우회하려했다가 나중에 파

godhaword.tistory.com

 

아직도 안 읽으신 분은 저거 3개 그냥 읽어보고 오시기 바랍니다.

여기까지 풀어오신 분들은 더 이상 자잘한 설명은 필요 없을 것이라 생각됩니다. 핵심 부분만 정리해드리고 나머지 부분은 저 위에 3개의 링크를 읽어보시기 추천드립니다.

 

  • 이 문제로 알 수 있는 점 
    - 이제부턴 진짜 해킹 중수
    - 필터링 방법을 많이 알아두면 문제를 넘어가기 쉽다
  • Key Point
  •  
ascii는 ord로 우회하자
'(싱글쿼터) 를 쓸 수 없는 곳에는 숫자형 데이터가 들어가는 파라미터에 공격을 시도해보자