다른 부분 많은데 저 부분만 보면 됩니다.
입력 값 하나로 총 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 |
---|