본문으로 바로가기

XiomaraCTF 2017 pwn50 Write Up

category 해킹/Write Up 2017. 2. 27. 20:18

0. introduce

요즘 꼬박꼬박 ctftime에 들어가서 ctf일정을 보고있는데 오랜만에 다른 ctf들과는 디자인부터 다르고 포너블문제가 많은것 같아서 열심히 풀어보았습니다. 전체적으로 재미있었으며 이런 ctf가 많았으면 좋겠습니다. 그리고 문제푸는 속도가 예전에 비해 확실히 빨라진것 같아서 좋았습니다. 느낀점은 아직도 쓸데없는부분에서 시간을 너무 많이 쓴다는 점이고 그런시간들을 줄여서 정말 빠르게 문제를 풀 수 있었으면 좋겠습니다.


1. Binary


NX가 활성화 되어있고, STACK CANARY가 존재한다. 

1. Register : auth = malloc(204)후에 auth + 4 = username , auth + 104 = password, auth = senddata().

2. Report admin : buf 30만큼 입력받은후 service = strdup(30)

3. Save Data to server : auth()

4. Delete user : free(auth)

5. Exit : exit


2. Vulnerability

전체 소스이다. 취약점은 딱봐도 auth를 덮어씌워서 문제를 푸는것 같다. 덮을 방법을 생각해보면서 메모리를 뜯어보니까 strdup를 할때 메모리가 heap에 할당된다. 그러므로 malloc -> free -> strdup -> to overwrite auth -> auth() 이런식으로 풀 수 있을것 같다.


3. Exploit

50점 문제인 만큼 문제에 fetch_flag 라는 함수가 있었다.


Full Exploit Code

(https://github.com/LYoungJoo/CTF-Write-Up/blob/master/2017_XiomaraCTFpwn%20Write%20Up/pwn50.py)


4. FLAG




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

XiomaraCTF 2017 Xor Tool Write Up  (0) 2017.02.27
XiomaraCTF 2017 mint Write Up  (0) 2017.02.27
Codegate 2017 prequals hunting Write Up  (0) 2017.02.21
9447CTF 2015 serach engine Write Up  (2) 2017.02.19
Codegate 2017 prequals BabyMISC Write Up  (0) 2017.02.16