System&Write up/CTF 26

[Plaid CTF 2013] ropasaurusrex

[plaidCTF-2013 ropasaurusrex] 32bit binary이고 NX가 걸려있습니다. main 함수에서는 어떤 함수를 호출하고 WIN을 출력합니다. 함수를 따라 들어가보면, bp-0x88에 위치한 buf에 read 함수로 0x100만큼 입력을 받아 BOF가 발생합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 payload = "" payload += "A"*(0x88 + 0x4) payload += p32(read_plt) payload += p32(pppr) payload += p32(0) #stdin payload += p32(e.bss()) payload += p32(8) #len(/bin/sh) payload..

System&Write up/CTF 2018.01.03

[제 1회 Root CTF] Point to pointer! - (529 point)

기대를 안고 문제를 풀기 시작했습니다. main 함수 소스입니다. String을 봤는데 “/bin/sh”도 있습니다. 막 찾던 도중, 여기서 쓰이는 걸 발견했습니다. 다시 main함수를 보면 buf를 0x30(48)byte만큼 잡고, (_QWORD *)buf + 2 즉, 16byte를 건너 뛰고 그 자리에 어떤 함수의 주소를 넣습니다. welcome to RootCTF! 를 출력해주는 함수입니다.(_QWORD *)buf + 2를 호출하면 저 함수가 실행될 것입니다. read로 사용자에게 buf에 입력을 받고, Y를 받으면 다시 (_QWORD *)buf + 2를 호출합니다.read로 받을 때 0x64(100)byte를 받기 때문에, (_QWORD *)buf + 2를 조작할 수 있어요! (_QWORD *)b..

System&Write up/CTF 2017.12.24
반응형