[7번 문제 - orge]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");
$query = "select id from prob_orge where id='guest' and pw='{$_GET[pw]}'";
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_orge where id='admin' and pw='{$_GET[pw]}'";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge");
highlight_file(__FILE__);
?>
|
cs |
LOS 문제들이 풀다보니까 이전에 풀었던 문제에서 어떤 필터링이나 블라인드 인젝션을 시도하게끔 코드를 추가해가는 문제들이 보인다.
그래서 이제부터는 난이도가 있는 문제나 새로운 유형의 문제가 아니면 간단하게 작성하도록 하겠다.
해당 문제의 핵심은 6번 문제와 비슷하게 or, and를 우회하면서 Blind SQL 인젝션을 시도하면 된다.
or 는 ||
and 는 && (&&를 인코딩 한 값 = %26%26)
를 이용해서 우회를 할 수 있고 Blind 인젝션 과정은 4번 문제 풀이에서의 방식과 동일하다. (4번 문제 풀이 참고)
or, and 문자만 우회해서 Blind 인젝션 과정을 거쳐서 패스워드를 알아낸 후 입력하게 되면 문제를 클리어 할 수 있다.
[문제 풀이 구문]
https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=7b751aec
'워게임' 카테고리의 다른 글
Lord of SQL Injection - 9번 문제풀이 (0) | 2023.01.13 |
---|---|
Lord of SQL Injection - 8번 문제풀이 (0) | 2023.01.12 |
Lord of SQL Injection - 6번 문제풀이 (0) | 2023.01.04 |
Lord of SQL Injection - 5번 문제풀이 (0) | 2023.01.04 |
Lord of SQL Injection - 4번 문제풀이 (0) | 2023.01.02 |