[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 |