or, and, substr(, = 이 필터링 되어있다.
우회하는 방법
or -> ||
and -> &&
substr('문자',몇 번째, 1) -> right(left('문자',몇 번째),1)
= -> like
입력받은 pw 값과 쿼리 결과로 출력된 pw 값이 같다면 풀리는 문제이다.
즉 admin의 pw를 정확히 알아내야 하는 것이다.
현재 첫 번째 쿼리에 입력되어있는 id의 값은 guest 이기 때문에 id 값을 다시 지정해줘야하고
pw를 알아내기 위해서 length 함수를 이용해 pw 길이부터 알아내보자.
pw=' || id like 'admin' && length(pw) like 1# 입력해주기
빠른 결과 확인을 위해 burp의 intruder 사용해보자.
아는 내용일테니 빠르게 넘어가겠습니다. 이제 익숙하시죠 ? ㅎㅎ
Start attack!
pw의 길이는 8이라는 것을 확인했고 substr 대신 left와 right 함수를 사용하여 한글자씩 무작위 대입 공격을 해봅시다.
Start attack!
pw가 77d6290b라는 것을 확인했다.
성공! 다음 단계로 넘어가자.
'Web Hacking > Write Up' 카테고리의 다른 글
[Lord of SQLInjection] skeleton (0) | 2023.12.21 |
---|---|
[Lord of SQLInjection] vampire (0) | 2023.12.21 |
[Lord of SQLInjection] troll (0) | 2023.12.21 |
[Lord of SQLInjection] orge (0) | 2023.12.21 |
[Lord of SQLInjection] darkelf (0) | 2023.12.21 |