네 안녕하세요. 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! 암호학 좀 아시는구나
여기서 두 가지 의심을 할 수 있습니다.
- "아니 난 암호학 하러 온거 아닌데 왜 Web문제에 암호학이 있음? md5 공부하러 가야겠다"
- 내가 admin 계정 비밀번호를 어떻게 알아;; 어캐품?
1번 처럼 생각하신분은 다시 Web 기초, SQL Query 공부부터 다시 하는 것 추천 드립니다. 아니면 문제라도 잘 읽어보세요.
2번처럼 생각하신분은 문제 차분히 다 읽어가면 query에 대한 기본 상식은 있다고 생각됩니다. 하지만 너무 어렵게 생각하신게 문제 같습니다.
예.
쉽게 풀립니다.
- 이번문제로 알 수 있는 것
- 문제를 풀기 전에 일단 읽자. - Key Point
뒷 부분을 주석처리하면 뒷 부분은 의미가 없어진다.
번외) 비밀번호 뽑아내기
https://godhaword.tistory.com/473
'web_security > Lord Of SQL' 카테고리의 다른 글
[LOS : Lord Of SQL Injection] 6번 Darkelf 문제 풀이 (0) | 2022.06.04 |
---|---|
[LOS : Lord Of SQL Injection] 5번 Wolfman 문제 풀이 (0) | 2022.06.04 |
[LOS : Lord Of SQL Injection] 4번 Orc 문제 풀이 (0) | 2022.06.04 |
[LOS : Lord Of SQL Injection] 3번 Goblin 문제 풀이 (0) | 2022.06.04 |
[LOS : Lord Of SQL Injection] 1번 Gremlin 문제 풀이 (0) | 2022.06.04 |