2019. 7. 11. 05:56ㆍFTZ
로그인을 한 후 hint이다.
이를 gdb로 뜯어보자.
여기서 레벨 14와 같이 똑같이 0x38을 할당해준다.
따라서 메모리 구조 다음과 같다.
crap(4)+dummy+*check(4)+dummy+buf(20)+dummy=56
또한 check와 buf 사이의 거리가 40이다.
우리는 ebp-16(check) 위치의 0xdeadbeef의 주소를 넣어주면 될것 같다.
x/x16 main 명령어를 써서 main 함수의 메모리 구조를 보자.
x/x [주소] 명령어를 사용하여 찾아보니 0x80484b2의 위치에 0xdeadbeef가 있다는걸 알았다.
x명령어
gdb는 x명령어를 사용해 메모리를 조사할 수 있다.
o : 8진법으로 보여줌
x : 16진법으로 보여줌
u : 10진법으로 보여줌
t : 2진법으로 보여줌
b : 1 byte 단위로 보여줌(byte)
h : 2 byte 단위로 보여줌(half word)
w: 4 byte 단위로 보여줌(word) - 난 2byte로 알고 있지만 여기선 4바이트로 쓰이나 보다....
g : 8 byte 단위로 보여줌(giant)
i : 역어셈블된 명령어의 명령 메모리를 볼수 있음
c : ASCII 표의 바이트를 자동으로 볼 수 있다.
s : 문자 데이터의 전체 문자열을 보여준다.
x/10x [주소] 와 같이 쓰면 해당 주소로부터 10바이트까지의 주소를 출력시켜준다.
먼저 x는 examine의 약자로 메모리를 조사할 떄 쓴다.
따라서 페이로드는
(python -c 'print "A"*40+"\xb2\x84\x48\x80"';cat)|./attackme
와 같이 해주면 될것 같다.
about to cause mass
'FTZ' 카테고리의 다른 글
Layer7 18과제 -F.T.Z level 17 풀이- (0) | 2019.07.11 |
---|---|
Layer7 17과제 -F.T.Z level 16 풀이- (0) | 2019.07.11 |
Layer7 15과제 -F.T.Z level 14 풀이- (0) | 2019.07.10 |
Layer7 14과제 -F.T.Z level 12 풀이- (0) | 2019.07.09 |
Layer7 13과제 -F.T.Z level 13 풀이- (0) | 2019.06.19 |