web_security/Lord Of SQL

[LOS : Lord Of SQL Injection] 2번 Cobolt 문제 풀이

HawordFREAKEK 2022. 6. 4. 13:15

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

LOS는 앞부분 인사부분은 줄이고 최대한 문제 해설 위주로 쓰겠습니다.(가끔 오랜만에 풀거나 하고 싶은 말 있으면 종종 쓸께요)

 

 

<?php
  include "./config.php"; 
  login_chk();
  $db = dbconnect();
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'] == 'admin') solve("cobolt");
  elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>"; 
  highlight_file(__FILE__); 
?>

 

$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";

와! query! 와! md5! 암호학 좀 아시는구나

여기서 두 가지 의심을 할 수 있습니다.

 

  1. "아니 난 암호학 하러 온거 아닌데 왜 Web문제에 암호학이 있음? md5 공부하러 가야겠다"
  2. 내가 admin 계정 비밀번호를 어떻게 알아;; 어캐품?

 

1번 처럼 생각하신분은 다시 Web 기초, SQL Query 공부부터 다시 하는 것 추천 드립니다. 아니면 문제라도 잘 읽어보세요.

2번처럼 생각하신분은 문제 차분히 다 읽어가면 query에 대한 기본 상식은 있다고 생각됩니다. 하지만 너무 어렵게 생각하신게 문제 같습니다.

 

예.

쉽게 풀립니다.

 

  • 이번문제로 알 수 있는 것
    - 문제를 풀기 전에 일단 읽자.
  • Key Point

뒷 부분을 주석처리하면 뒷 부분은 의미가 없어진다.

 

 

번외) 비밀번호 뽑아내기

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