SQL Injection 문제를 풀어보도록 하겠습니다. 관리자 권한을 획득하면 되는 문제인데요, GBK를 이용하라고 하네요.
그래서 일단 GBK를 찾아보았습니다.
GBK는 중국어 간체를 위한 문자 세트로, 2006년 mysql-real-escape-string을 우회하는 방법으로 소개되었습니다.
\xBF' (=URL 인코딩 시 %bf%27) 문자열을 사용하여 싱글쿼터를 우회하는 방식으로 사용됩니다.
출처 : https://pentesterlab.com/exercises/web_for_pentester_II/course
문제로 들어가보면 로그인 창과 위에 멤버 리스트를 보여주는 버튼이 하나 있어서 눌러보았습니다.
멤버 리스트를 보니 "admin"이라는 유저가 존재한다는 것을 명확히 알 수 있었습니다.
SQL Injection 공격을 시도해보았습니다.
많은 시행착오를 겪었는데요, 공격 쿼리나 공격 방법은 상단에 써진 출처를 참고하였습니다.
Query : %bf%27 or 1=1--
%bf' or 1=1--
%bf%27 or %bf%271%bf%27=%bf%271
%bf%27 and 1=1--
등... 많은 쿼리로 테스트를 해보았는데, FLAG가 나오지 않았어요.. 구글링해도 문제가 잘못되었다는 둥 Burp로 안된다는 둥...
하지만! 문제를 해결했습니당!!!
login=admin%bf%27 or 1=1-- &password=1 << 주석과 &사이에 공백을 주고, Follow Redirection 버튼을 클릭해야 합니다.
왜 공백을 주어야 하는지는 잘 모르겠습니다만,,, 그래야 follow redirection 버튼이 나오더라고요ㅠ(알려주시면 감사하겠습니다^^)
follow redirection 버튼을 클릭하면 FLAG 값이 노출되는 곳으로 리다이렉트되어 플래그를 획득할 수 있습니다.
'Study > Wargame' 카테고리의 다른 글
[root-me] HTML - disabled buttons (0) | 2019.04.15 |
---|---|
[root-me] Path Truncation (0) | 2019.02.26 |
[root-me] Server-side Template Injection (0) | 2019.02.08 |
[root-me] SQL injection - string (0) | 2019.02.07 |
[root-me] LFI - Double Encoding (1) | 2019.01.17 |