-
Find The Lost Flag개인공부/드림핵 2024. 12. 21. 22:34
이번 문제의 경우 admin 계정에 로그인하면 FLAG를 획득 할 수 있는 문제이다.
언제나와 같이 문제파일을 다운로드해 문제를 분석해본다.
[문제 풀이]
1. 문제 파일 분석
상기 코드는 문제 코드의 일부분이다.
해석하자면 challege.db에 연결 후 admin 또는 guest라는 값이 존재할경우 무시, 존재하지 않을 경우 값을 Insert하는 db 명령이다.
문제 풀이의 핵심은 이 코드가 아닌 다른 부분에 있다.
입력받은 username과 password를 db 값과 비교해 참일 시 로그인 성공과 동시에 계정에 걸맞게 저장된 시크릿 값을 가져오는 코드이다.
해당 코드의 경우 SQL Injection 공격에 취약하다.
password 부분에 대한 입력 값을 ' or true--로 넣게 될 시 해당 구문은 아래와 같이 변하게된다.
이렇게 될 시 패스워드가 빈 값이더라도 OR TRUE 구문에 의해 항상 참이됨과 동시에 -- 구문을 통해 뒤의 쿼리문을 주석처리하여 우회가 가능하다.
2. Exploit
'개인공부 > 드림핵' 카테고리의 다른 글
Grand Theft Auto (0) 2024.12.22 session (0) 2024.12.21 Carve Party (0) 2024.12.09 web-misconf-1 (0) 2024.12.08 command-injection-1 (0) 2024.12.08