본문 바로가기
3. 웹 애플리케이션 취약점 진단/Lord of Sql Injection

lord of sql injection 3번 - goblin

by Robert8478 2023. 12. 21.

이번에는 no에 쿼리값을 넣어서 패스해야할 것으로 보입니다.
preg match에 ' " 특수문자를 필터링했기 때문에 사용할수가 없겠네요

우선 no 값에 0을 넣어봤는데 아무 반응이 없네요

no 값에 1을 넣었더니 hello guest가 떴습니다.
이것이 id='guest' and no=1 인것을 보았을때 and 구문이 들어간다는 것은 계정마다 배정된 no가 있다는 것이고
guest의 no는 1인것을 알 수 있습니다. 그렇다면 admin의 no를 호출해야겠네요.

우선 id=admin이 될지 시도해봅니다. and no=0으로 뒤에 구문을 거짓으로 만들면 or 구문에 들어갈 쿼리문을 체크하겠죠
'를 hex 인코딩하여 0x27로 넣어봤지만 안되네요. 아무래도 no를 호출하는 방법으로 해야할것 같습니다.

admin의 no일지도 모를 0으로 뒤에 구문을 거짓으로 만들고 or 문으로 no 0에 해당하는 계정을 불러왔습니다. 반응이 없네요.

같은 방식으로 no=2 에 해당하는 계정을 불러오니 admin이 불러와졌고 해결되었습니다.