<CTF>/<Lord of SQLInjection>
[01] gremlin :: Lord or SQLInjection
meow00
2021. 1. 10. 16:53
코드를 살펴보면
get 방식으로 입력받은 id나 pw 값에서 preg_match를 이용해 위의 문자열들을 검색해, 그 문자열들이 포함된다면 exit()를 실행하게 된다.
==> 필터링 된다.
필터링되는 문자열들을 확인해주었고,
전달되는 쿼리문의 형식은 이렇다.
id로 입력 받은 값을 or를 이용해 true로 만들어주고, 뒤의 pw 부분을 주석처리 해주면 문제를 해결해 줄 수 있을 것이다.
get방식으로
?id=' or 1=1#
을 넣어주어 id의 싱글 쿼터를 닫아주고, or문 뒤에 true인 문장을 붙이고, #를 통해 뒤에 주석처리를 해 주었다.
엔터를 입력한 후 url을 보니 #가 전달될 때 인코딩되지 않은 것을 확인할 수 있었다.
그래서 값을 직접 바꿔주었다.
반응형