관리 메뉴

HeeJ's

[01] gremlin :: Lord or SQLInjection 본문

<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을 보니 #가 전달될 때 인코딩되지 않은 것을 확인할 수 있었다.

그래서 값을 직접 바꿔주었다.