해당 문제는 로컬파일을 도커에 올려 풀이를 진행하였다.
해당 문제 소스부분이다.
화면을 보면 banlist에 많은 내용들이 들어가있는 것을 알 수 있었다.
source 부분 중에서도 id 항목에서 admin을 입력을 하고 password 부분에서 sql injection을 해야한다고 생각을 들었다.
그리고 출제자가 mysql이라는 것을 힌트를 얻어 문제를 풀어 보겠다.
guest로 시도했더니 다음과 같은 플래그를 얻을 수 있었다.
MYSQL 공식 문서를 이용해 찾던 중 위와 같은 구문이 있다는 것을 알 수 있었다.
그래서 위와 같은 형식을 이용해보기로 했다.
sql test 사이트를 이용해 여러 구문들을 시도한 끝에
/loginAction?id=\&pass=UNION VALUES ROW(admin)#이라는 구문을 얻을 수 있었다.
admin을 입력하니깐 되지 않아 진수인코딩을 해서 0x61646D696E로 변환시켰다.
그리고 주석처리를 하기 위해 #을 %23으로 인코딩해주었다.
그렇게 구문은 /loginAction?id=\&pass=UNION VALUES ROW(0x61646D696E)%23로 입력하였다.
그 결과, admin 계정으로 flag값을 얻을 수 있는 것을 확인할 수 있었다.
'Web Security' 카테고리의 다른 글
KU-CTF ForceLogin2 (0) | 2023.05.02 |
---|---|
KU-CTF ForceLength (0) | 2023.03.28 |
KU-CTF PingService (0) | 2023.03.28 |
KU-CTF newapi (0) | 2023.03.26 |
Linux Wildcard란? (0) | 2023.03.21 |