사이트 주소 : https://los.rubiya.kr/
3번 문제 goblin 입니다.
[문제 접근]
query를 보면 id와 no 파라미터가 있고 id는 guest로 고정되어 있습니다. no 파라미터는 입력값을 받고 있습니다.
no 파라미터를 통해 공격을 해야 할 것 같네요.
앞 문제와 똑같은 형태로 넣어보겠습니다.
?no=0'||1=1%23
코드를 보면 알 수 있듯이, ' " ` i 문자가 입력되면 No Quotes 라는 문자가 나오네요. 해당 문자들은 필터링되어 사용할 수 없습니다.
0 을 넣어보면 Hello guest가 나오는 것을 보면 no가 0인 id는 guest인 것 같습니다.
admin을 맞춰야하는데 admin은 0 아니면, 2가 될 확률이 높다고 추측됩니다.
하지만 0이나 2를 no에 넣어도 query를 보면 where절에 id가 guest로 고정되어 있고, no 값과 and 연산을 하기 때문에
guest인 경우에만 Hello $result[id] 를 출력하고 나머지는 거짓이 되어 버립니다.
따라서 앞의 id가 guest인 것을 무시되도록 만들어야 합니다.
?no=0||no=0
where id='guest' and no=0 이 거짓이 되며, 뒤에 || (OR) no=0을 붙여
no=0 인 id 값이 호출되도록 했습니다.
하지만 0은 아무 것도 나오지 않네요. 2를 해보겠습니다.
[문제 정답]
정답 : ?no=0||no=2
"GOBLIN Clear!" 가 나타납니다. 정답!
다음 스테이지로 넘어가시죠~
select 구문의 where 조건 절을 id='guest' and no=0을 하여 거짓으로 만들고 뒤에 || (OR)로 no를 추측하여 넣었습니다.
그 결과로 no=2 인 id가 admin으로 확인할 수 있고, 문제를 성공시켰습니다.
[Lord of SQL Injection] darkelf 6번 풀이 (0) | 2020.07.06 |
---|---|
[Lord of SQL Injection] wolfman 5번 풀이 (0) | 2020.07.06 |
[Lord of SQL Injection] orc 4번 풀이 (0) | 2020.07.06 |
[Lord of SQL Injection] cobolt 2번 풀이 (0) | 2020.07.06 |
[Lord of SQL Injection] gremlin 1번 풀이 (0) | 2020.07.06 |
댓글 영역