본문 바로가기
Security/Pwnable

LOB Level 13 darkknight

by J0DEV 2021. 8. 10.
반응형

darkknight -> bugbear 로 접속합니다.

힌트에 RTL 1이라고 되어있네요

 

RTL을 구글링해서

 

공부햇습니다.

 

RTL이란

 

return to library의 줄임말로

 

리턴주소에

 

공유라이브리러리의 시스템함수의 주소를 덮고

 

인자로 "/bin/sh"을 주소를 넣어주는 방식입니다.

 

- 쉘코드 없이 공격이 가능합니다. - 

 

 

시스템함수의 인자는 

 

+8 위치에 넣어줘야 합니다.

 

즉 공격을 할때

 

공유라이브러리의 시스템함수를 호출하고 (4) 더미값 (4) 그리고 인자값을 넣어주는 것입니다.

 

(실제로 시스템 함수를 호출하는 코드를 작성하여 분석해보면 알 수 있습니다.)

 

RTL공격 코드는

 

버퍼값 + 시스템함수 주소(4) + 더미값(4) + /bin/sh 주소

 

입니다.

 

 

 

 

 

우선 시스템함수의 주소를 알기위해 bugbear를 gdb로 봅시다.

 

geb 로 열어 준후

 

메인에 브레이크를 걸고

 

실행한 후,

 

system함수의 주소를 불러옵니다.

 

0x40058ac0 이네요

 

 

 

그리고 /bin/sh의 주소를 찾아줍니다.

 

 

 

0x400fbff9입니다.

 

./bugbear `python -c 'print "A"*44+"\xe0\x8a\x05\x40"+"\x90"*4+"\xf9\xbf\x0f\x40"'`

 

하면 됩니다.

반응형

'Security > Pwnable' 카테고리의 다른 글

LOB Level 15 giant  (0) 2021.08.10
LOB Level 14 bugbear  (0) 2021.08.10
LOB Level 12 golem  (0) 2021.08.10
LOB Level 11 skeleton  (0) 2021.08.10
LOB Level 10 vampire  (0) 2021.08.09