본문 바로가기

CTF

jff3 2015 mbm

 

다른 부분 많은데 저 부분만 보면 됩니다.

입력 값 하나로 총 5개의 쿼리를 실행시키는데 실행 시마다 값이 달라져야 하는 문제!!

일단 가장 큰 차이인 where 구절을 보면 no은 정수형으로 싱글쿼터가 없음. id는 있음 이를 잘 이용해야 됨.

각 쿼리의 조건을 알아보겠슴다.

1. no로 검색 --> admin이여야 함.

2. no로 검색 --> admin이 아니어야 함.

3. id로 검색 --> admin이여야 함.

4. id로 검색 --> admin이 아니어야 함.

5. id로 검색 --> admin이여야 함.

 

시간을 이용하여 1초마다 값이 달리지는 쿼리를 만들면 되며, no와 id의 차이인 싱글쿼터가 있고 없을 때 모두 먹히는 쿼리를 만들면 됩니다~

저는 hex를 이용해서 1초마다 admin과 bdmin을 왔다갔다하는 쿼리로 해결했습니다. 

마무리 ㅅㅅ

no|1 union select concat(lower(hex(10+(!sleep(1) && now()%2=1))),0x646d696e)-- '='no' union select concat(lower(hex(10+(!sleep(1) && now()%2=1))),0x646d696e)--

'CTF' 카테고리의 다른 글

jff3 2015 mbm2  (3) 2015.08.13