-
<Lord of SQL Injection> goblinWargame/Lord of SQL Injection 2021. 11. 11. 00:14
이 문제는 작은따옴표, 큰 따옴표를 필터링하여 사용할 수 없다.
그리고 'id'의 값이 'admin'이면 문제가 풀리는 것 같다.
우선, 'no'의 값으로 1을 주면
guest로 로그인이 되었다.
이번엔 'no'의 값으로 0을 주면
아무것도 출력하지 않았다.
'no'의 값이 1이면 guest로 로그인하기 때문에 'no'의 값에 0을 줘야 할 것 같다.
이제 or문을 사용하여 앞의 구문은 거짓으로 뒤의 구문은 참으로 하여 우회하면 될 것 같다.
'id'의 값이 'admin'이 되어야 하는데, 이 문제에서는 따옴표를 필터링하기 때문에 사용할 수 없다.
그렇다고 따옴표 없이 admin만 전달하면 문자열 인식을 하지 못한다.
이렇게 싱글쿼터(')가 막혀서 문자열을 입력할 수 없을 때는 0b, 0x를 사용해서 2진법과 16진법으로 치환함으로써 대신할 수 있다. 즉, 'admin'을 16진수로 변환하면 된다.
admin을 16진수로 변환하면
'61646d696e'라는 값이 나오게 된다.
이는 16진수이므로 앞에 0x를 붙여줘야 한다.
이제 ?no=0 or id=0x61646d696e 를 입력하면
문제를 해결할 수 있다.
'Wargame > Lord of SQL Injection' 카테고리의 다른 글
<Lord of SQL Injection> darkelf (0) 2021.11.12 <Lord of SQL Injection> wolfman (0) 2021.11.11 <Lord of SQL Injection> orc (0) 2021.11.11 <Lord of SQL Injection> cobolt (0) 2021.11.09 <Lord of SQL Injection> gremlin (0) 2021.11.07