[3주차] dump

Image

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된 패킷만 모아봐야 한다.

Image

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

Image

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

Image

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

Image

모은다(노가다)

%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 리스트 구성만 바꾸면

Image

플래그가 알맞게 나온다.