N00bCTF - Simple_SQL Write-up

CTF 중점 스터디

2019. 11. 28. 22:10

문제 URL로 접속한다.

if(preg_match('/[a-zA-Z0-9]/i', $id) || preg_match('/[a-zA-Z0-9]/i', $pw)) exit("빼애애ㅐ애애ㅐㅐ액!!!!");

사용자가 입력한 id와 pw에서 알파벳 소문자, 대문자, 숫자가 있으면 exit한다.

if(preg_match('/\||&| |0x|\t|admin|-|\'/i', $id) || preg_match('/\||&| |0x|\t|admin|-|\'/i', $pw)) exit("빼애애ㅐ애애ㅐㅐ액!!!!");

사용자가 입력한 id와 pw에서 &, 0x, \t, admin 등의 특수문자가 있으면 exit한다.

$result = mysqli_fetch_array(mysqli_query($conn,$query));

if($result){
        echo $flag;
        exit;
 }

쿼리문을 실행하고 그 결과값이 존재하면 flag를 출력하고 있다.
이 문제는 False SQL Injection을 통해 해결할 수 있다.
id로 \를 전송하여 'and pw='로 만든 다음 이 값을 ""와 비교한다. 이 경우 mysql의 type juggling으로 인해 참으로 처리되어 값을 검색해온다.

Written by choi_jiung

'CTF 중점 스터디' 카테고리의 다른 글

protostar_heap0 Write_up  (0) 2019.12.01
Wargame.kr_tmitter_Write up  (0) 2019.12.01
ctf-d_브리타니아의 원더랜드 Write_up  (2) 2019.11.26
Pwnable.kr CMD1문제_정세인  (0) 2019.11.24
ctflearn PIN Write Up  (0) 2019.11.24