반응형

문제에 접근해보자.




unique id를 찾아서 입력을 하면 문제가 풀릴꺼같다.

일단 간단하게 test를 입력하고 Search를 눌러주면 아래와 같이 친절하게 에러를 보여준다.



그래서 Error based SQLI 인가 싶어 진행을 해보았다.


https://babyweb.rootersctf.in/index.php?search=0+order+by+1 (에러발생 X)

https://babyweb.rootersctf.in/index.php?search=0+order+by+2 (에러발생 X)

https://babyweb.rootersctf.in/index.php?search=0+order+by+3 (에러발생 O)


에러 발생이 되지 않을 때 아래와 같이 SELECT 쿼리문을 보여주기 때문에 테이블명이 users임을 알 수 있고 위의 order by를 통해 users 테이블에는 컬럼이 2개임을 알 수 있다.



이후 having 절을 통해 컬럼명을 찾아보려했는데 에러가 발생되지 않고 정상적으로 실행되길래 몇번 삽질과 함께 검색을 하다 아래와 같은 사이트를 찾았다.

http://www.securityidiots.com/Web-Pentest/SQL-Injection/Error-Based-Injection-Subquery-Injection.html


여기서 소개해준 기법을 통해 아래와 같이 쿼리를 만들어서 원하는 데이터 추출이 가능함을 확인하고 쭉쭉 풀었다.


users 테이블의 컬럼명은 user와 uniqueid이며 이 중 uniqueid를 아래 쿼리를 통해 획득하였다.


해당 값을 입력해주니 FLAG가 출력되었다.

반응형

'Hacking Contest' 카테고리의 다른 글

[Kipod After Free CTF 2019]  (0) 2019.12.24
2019 X-MAS CTF  (0) 2019.12.18
[ByteBandits CTF 2019] Online Previewer 1  (0) 2019.04.13
[ByteBandits CTF 2019] EasyPHP  (0) 2019.04.13
parse_url Hostname Bypass (SwampCTF Brokerboard Writeup)  (0) 2019.04.07
블로그 이미지

rootable

,