반응형
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 |