[ Los ] gremlin
Lord of SQLInjection
los.rubiya.kr
[ 문제 ]
[ 풀이 ]
1) 6줄
쿼리문을 보면 get방식으로 id와 pw를 받아오는 것을 예측할 수 있다.
확인을 위해, id와 pw에 임의의 값을 입력해보았다.
? id = dohyeon & pw = password
'&'는 And연산자이다.
확인 결과 정상적으로, 입력되는 것을 확인할 수 있다.
2) 8줄 ~ 9줄
입력받아온 id값이 result에 들은 id값과 일치하면, gremlin이 출력되고 문제가 풀리는 것으로 예상된다.
즉, id값만 참이면 문제가 풀리는 것으로 예상된다.
url에 or연산을 활용하여, id를 참으로 만들고 전송해보았다.
? id = 1' or 1=1 #
#은 주석처리 의미로, 뒤에 이어질 명령어를 무력화 시킨다.
실행 결과, #이 사라지고 주석처리가 실행되지 않아 다음 명령어가 실행된 것을 알 수 있다.
url인코딩을 해서, 이번에도 주석처리가 실행되지 않는지 알아보도록 하자!
#의 url인코딩은 %23이다.
url인코딩해주니, 문제가 풀렸다!! (❁´◡`❁)
여기서 알아둬야할 점은!! url에서 특수문자는 url인코딩을 해줘야한다!!
url인코딩을 자세히 공부하고 싶으면 아래주소를 참고하면 좋다.
https://www.w3schools.com/tags/ref_urlencode.asp
HTML URL Encoding Reference
HTML URL Encoding Reference URL - Uniform Resource Locator Web browsers request pages from web servers by using a URL. The URL is the address of a web page, like: https://www.w3schools.com. URL Encoding (Percent Encoding) URL encoding converts characters i
www.w3schools.com