[CTF] dreamhack - simple_sqli

2024. 5. 25. 11:55ㆍWeb/dreamhack

728x90

문제 설명

웹 서버로 접속해 보자

 

메인 페이지

주어진 파일을 다운

위의 schema을 통해 database.db 파일로 관리하고 있다

/login 페이지 코드

userid와 userpassword를 입력할 수 있는 로그인 페이지를 제공한다

userid와 password 입력창에 guest를 입력하면 로그인 가능

 

로그인 계정이 admin일 경우 FLAG를 출력

 

아래 코드를 살펴보면, userid와 userpassword를 이용자에게 입력받고,

동적으로 쿼리문을 생성한 뒤 query_db 함수에서 SQLite에 질의한다

 

이렇게 동적으로 생성한 쿼리를 RawQuery라고 하는데

RawQuery를 생성할 때, 이용자의 입력값이 쿼리문에 포함되면 SQL Injection 취약점에 노출될 수 있다.

이용자의 입력값을 검사하는 과정이 없기 때문에 임의의 쿼리문을 userid 또는 userpassword에 삽입해

SQL Injection 공격이 가능하다

아래 코드가 로그인 쿼리 문 이다

 

id를 admin"-- 입력 으로  AND userpassword="{userpassword}"; 부분을 주석처리하여 준다

pw는 123으로 적어주었다

플래그값 확인

DH{c1126c8d35d8deaa39c5dd6fc8855ed0}

728x90

'Web > dreamhack' 카테고리의 다른 글

[CTF] dreamhack - command-injection-1  (0) 2024.05.25
[CTF] dreamhack - Mango  (0) 2024.05.25
[CTF] dreamhack - csrf-2  (0) 2024.05.24
[CTF] dreamhack - csrf-1  (0) 2024.05.24
[CTF] dreamhack - xss-2  (0) 2024.05.24