
q=SELECT IF(ASCII(SUBSTRING((SELECT flag FROM s3cr3t LIMIT 1),39,1))=229, SLEEP(3), 0)
계속 이런 구문이 반복되길래 하나 잡고 ascii 변환했다.
SELECT IF(ASCII(SUBSTRING((SELECT flag FROM s3cr3t LIMIT 1),39,1))=229, SLEEP(3), 0)
s3cr3t 테이블에서 flag 읽고 39번째 ascii 값이 229라면 Sleep하면 아니면 0반환이다.
sleep된 패킷만 모아봐야 한다.

위와 같이 설정을 바꾸고 Time으로 정렬한다.

상단에 3초 이상의 패킷들을 ctrl+m으로 mark해준다.

mark한 response의 request에서 Hypertext Transfer Protocol을 보면 Request 쿼리가 존재한다.

모은다(노가다)
%3D 뒤 숫자를 모아준다.
71,95,111,66,109,110,49,95,95,53,119,104,55,23,73,51,51,105,76,52,106,115,73,125,99,55,100,84,95,69,110,81,80,78,95,112,48,99,52
이걸 파이썬으로 ascii 변환해준다.
index=[71,95,111,66,109,110,49,95,95,53,119,104,55,23,73,51,51,105,76,52,106,115,73,125,99,55,100,84,95,69,110,81,80,78,95,112,48,99,52]
p=''
for i in index:
p+=chr(i)
print(p)
정답이 아니라고 한다…..
알고보니 패킷순대로 ascii값을 검사하지 않는다
SUBSTRING((SELECT flag FROM s3cr3t LIMIT 1)
여기서 두번째 인자값에 맞춰서 정렬해줘야 한다.
노가다로 정렬했다.
위 파이썬 코드에서 index 리스트 구성만 바꾸면

플래그가 알맞게 나온다.