전체 글

· CTF/2018
Category : pwnable Summary : heap Exploit #!/usr/bin/python from pwn import * def cmd_add(name, desc): ru('>> ') sl('1') ru('Enter name: ') sl(name) ru('Enter desc: ') if desc: sl(desc) def cmd_edit(idx, name, size, desc): ru('>> ') sl('2') ru('Enter index: ') sl(str(idx)) ru('Enter name: ') ss(name) ru('Enter size: ') sl(str(size)) ru('Enter desc: ') ss(desc) def cmd_remove(idx): ru('>> ') sl('..
· CTF/2018
Category : pwnable SimpleMemo 494 2 Solves Host: smemo.pwn.seccon.jp Port: 36384Summary : seccomp bypass, orig_rax 간만에 first blood 획득한 문제. 쓸데없는 삽질로 시간을 2배는 소요했다. google ctf 갔던 팀들이 나왔으면 못 땄을듯. 삽질 시간을 더 줄여야한다. 1. Vulnerability 1.1. Concept memo를 add/show/delete 하는 기능을 가진 바이너리. 바이너리 구조는 굉장히 간단하다. size 0x28의 heap chunk를 선언하여 사용자의 입력을 받고 해당 chunk의 주소를 memo_table에 저장한다. 1.2. OOB memo access -> arbitra..
· CTF/2018
Category : pwnable GrootI am Groot.nc 54.238.202.201 31733groot-61a41f97c60a1636a2ff4ca800ecdde3.tar.gz Author: david942j15 Teams solved. Summary : uninitialized variable, use after free, tcache 호기심에 못이겨 출제자(david942j)의 exploit 참고하여 풀어본 문제.// https://github.com/david942j/ctf-writeups/blob/master/hitcon-2018/groot/sol/groot.rb tcache 소스를 많이 읽어봐서 exploit이 좀 수월할줄 잘았는데 생각보다 좀 까다롭다. 좀 더 다양한 사고를 해야할 듯..
· CTF/2017
Abstract XCTF 2017 Final - 2일 차에 출제된 문제. 대회 이름 혹은 문제 이름을 떠올리기만 해도 미안함과 죄책감에 사로잡히는 대회들이 있다.당시에 내가 풀지 못했던 문제들로 인해 행복한 추억이 될 수 있던 순간들이 괴로운 기억으로 남았다. 그 중 XCTF를 생각하면 가슴이 턱 막힌다. 자신에게 기대, 다짐, 의미가 큰 대회였지만, 그에 비해 내 능력은 준비되어 있지 않았다. 결국, 내 역할을 제대로 수행하지 못하여 대회를 망쳤다. 최근 XCTF 2016에서 출제됐던 문제들을 모두 풀고, 좀 울컥했다. 대회때는 전날 패치하지 못한 취약점들 패치한다고 문제를 제대로 보지 못했지만, 그게 핑계가 되어주지 못 할 정도로 취약점들이 간단했기 때문이다. 자신감이 바닥이라 내가 풀 수 있다는 확..
· CTF/2017
Abstract XCTF 2017 Final에서 2일 차에 공개된 문제. jinmo123이 first blood로 풀어 모든 팀들을 압살하고 1위를 찍은 문제.취약점은 은근히 간단하지만, 아무리 생각해봐도 당시 jinmo123이 풀었던 속도로는 못 풀었을 것 같다. (개빠름)그래도 당시에 제대로 봤다면 최소한 늦은 exploit이나 patch라도 가능했을텐데, 너무나 아쉽다. Main thread main함수는 아래와 같이 10개의 thread를 생성하고, 사용자의 input을 0번 thread에 전송한다. // 9개의 transfer thread 와 1개의 message thread를 생성. // 무한루프를 돌며 사용자에게 입력을 받고, 0번 transfer thread에 전송. (1) Transfer..
· CTF/2017
blackperl security blog에서 포스트 읽다가 기억난 김에 풀어본 문제.글 읽고 익스를 새로 짜봤다. https://bpsecblog.wordpress.com/2017/04/27/javascript_engine_array_oob/ Files -rwxr-xr-x 1 pwn3r pwn3r 5857384 Feb 12 2017 js -rwxr-xr-x 1 pwn3r pwn3r 95155 Feb 12 2017 jsarray.cpp -rw-r--r-- 1 pwn3r pwn3r 95297 Feb 12 2017 jsarray_original.cpp Mozilla의 SpiderMonkey Javascript engine을 취약하게 패치한 문제.3개의 파일이 주어졌다. (1) 인터프리터 (2) 패치 된 js..
· CTF/2018
Category : pwnable host : pwn1.chal.ctf.westerns.tokyo port : 21638 Update(2018/09/02 11:55:00 UTC) BBQ BBQ.old libc-2.23.so Summary : uninitialized variable, manipulate heap chunks, unsorted bin attack 다른 풀이 방법도 있지만, unsorted bin attack으로 풀겠다고 고집부리다가 꽤 오래 걸린 문제.취약점은 간단하지만, heap chunk들을 잘 조작해야해서 exploit이 오래걸린다.그래도 이런 풀이로 풀 수 있는 문제 많을듯. god angelboy. 풀고나서 다른 풀이있나 write-up을 찾아봤는데 좀 지렸다. 나는 전혀 생각못한..
· CTF/2018
Category : pwnable SWAP SAWP WASP PWAS SWPA nc swap.chal.ctf.westerns.tokyo 37567 swap_returns libc.so.6 Summary : temp = *addr1; *addr1 = *addr2; *addr2 = temp; temp = 0 main 프로그램 자체는 굉장히 간단하며 2가지 기능이 존재한다. (1) set : 2개의 address를 변수에 입력(2) swap : 설정된 2 address가 가리키는 값을 서로 swap// temp = *addr1; *addr1 = *addr2; *addr2 = temp; temp = 0 user input과 got를 치환하면 좋겠지만, 2개의 address 말고는 입력받는게 없다.memory l..
pwn3r_45
pwn3r_45