pwnable(115)
-
DreamHack - welcome
보호되어 있는 글입니다.
2020.09.17 -
HACKCTF - SysROP
문제 자체에서 sysrop라고 알려주었으니 저쪽으로 방향 맞춰서 진행해보겠습니다. 먼저 실행해보면 입력받고 끝내네요.. ida로 확인해보면 read함수로 하나 입력받고, 바로 종료하는군요. 정말 건질 수 있는게 read함수밖에 없어보입니다. 문제 이름처럼 sysrop를 활용해서 문제를 풀어줬습니다. main함수에서 발생하는 BOF를 이용해서 sysrop를 해줘야겠네요. 1. bss
2020.09.15 -
HACKCTF - Unexploitable #1
문제화면입니다. 해당 문제를 실행시켜보면 출력하나시키고, 입력하다받고 끝나내요. 아마 입력부분이서 취약점이 존재할 것 같습니다. IDA를 통해 이 부분을 확인해보면 변수보다 fgets에서 읽어들이는 사이즈가 더 크니 BOF취약점이 발생하게 됩니다. 보호기법을 확인하면 leak한 후에 ROP를 통해 shell을 획득할 수도 있을 것 같은데. system가젯을 일부러 준 친절하신 출제자와, string부분을 보면 있는 fflush부분에서 sh부분만 추출 해 오면 되니 이 부분을 활용해주면 ex가 가능할 것 같습니다. payload는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from pwn import * r = remote(..
2020.09.13 -
HACKCTF - ROP
해당 파일을 실행시켜보면 단순하게 hihi하나를 입력받고, "Hello, World!"을 출력시켜줍니다. 취약한 함수를 보면 read함수에서 bof가 일어나고, write함수도 있으니 문제 이름그대로 ROP를 이용해서 풀면 될 것 같습니다. ROP는 ROPASAROUXhttps://blog.pwnable.co.kr/266rop사우로드 문제에서 자세히 다뤘음으로 payload만 간략하게 다루겠습니다. 그 문제 그대로 풀이하면 될 듯 합니다 ㅎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 from pwn import * r = remote("ctf.j..
2020.09.13 -
HACKCTF - Random Key
random 이라는 elf파일을 줍니다. 해당 파일을 실행해보면 인증을 받고 맞는지 아닌지 확인하는 것 같습니다. ida로 까보면 랜덤으로 시드를 돌려서 v5 에 넣고, 사용자 입력값과 v5가 같는지 비교해서 이걸 맞춰주면 되겠네요. 그럼 같은 시점에 시드를 생성해주고 그 시드를 넘기면 되겠군요. 1 2 3 4 5 6 7 8 9 #include #include #include int main() { srand(time(0)); printf("%d\n", rand()); } cs 이렇게 c언어 하나 컴파일해주고 그대로 넘기면 flag를 획득할 수 있습니다.
2020.09.08 -
HACKCTF - Poet
해당 문제를 실행해보면 이런식으로 무언가 1,000,000점수를 획득해야한다네요. ida로 코드를 확인해보면 rete_poem 함수를 보면 poem에 입력받았던 문자중에 해당 단어가 있을경우 100점을 주는 제도인데, 예를들어 CTF를 1000000번 입력하게되면 풀리겠지만, poem버퍼가 400이라 넘어 가서 해당 방식으로 풀면 안되겠다고 생각했습니다. 우리의 궁극적은 목표가 점수를 1,000,000으로 만드는것이기에 해당 버퍼를 1,000,000으로 덮는 방법으로 진행해보겠습니다. author의 이 변수가 이 위치에 있고. rate poem 의 점수 변수가 이 위치에 있으니 이 차를 구해서 dummy를 채워주고, 1,000,000을 넣어주면 됩니다. 이를 코드를 작성하면 다음과 같습니다. 1 2 3 ..
2020.09.07