waffle
μ™€ν”Œκ³΅μž₯
waffle
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (72)
    • πŸ“’ Daily Log (2)
    • πŸ”¨ Dev_BE (5)
      • κ°œλ…μ •λ¦¬ (4)
      • 기둝 (1)
    • πŸ”¨ Dev_FE (4)
    • πŸ”¨ Dev_DB (1)
    • βš™ Dev_Ops (0)
    • πŸ”‘ Lang (2)
      • Python (2)
    • πŸ’‘ ν”„λ‘œμ νŠΈ (9)
      • Base (1)
      • μ•„λŒ€λ°€λ§΅ (8)
    • πŸƒπŸ» μ™ΈλΆ€ν™œλ™ (2)
      • [ν”„λ¦¬μ½”μŠ€] μš°μ•„ν•œν…Œν¬μ½”μŠ€ 7κΈ° - BE (2)
    • πŸ“• [STUDY] 개발 (13)
      • [STUDY] μ•Œκ³ λ¦¬μ¦˜ (9)
      • 동계 μŠ€ν„°λ”” [Do-iT: μ›ΉνŒ©] (2021) (4)
    • πŸ“™ [STUDY] AI (2)
      • Tensorflow (2)
    • πŸ” λ³΄μ•ˆ,μ •λ³΄λ³΄ν˜Έ (32)
      • CTF (2)
      • πŸ“˜ [STUDY] ν¬λ Œμ‹ (15)
      • πŸ“˜ [STUDY] 취약점 (4)
      • πŸ“˜ [STYDY] 리버싱 (11)
    • πŸ“” IT 법λ₯  (0)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ

곡지사항

인기 κΈ€

νƒœκ·Έ

  • λ¬Έμžμ—΄
  • ν”„λ¦¬μ½”μŠ€
  • js
  • μš°ν…Œμ½”
  • Weekly
  • μš°ν…Œμ½”_7κΈ°
  • μˆ˜ν•™_1
  • reversing
  • μ•Œκ³ λ¦¬μ¦˜
  • μ½”λ”©ν…ŒμŠ€νŠΈ_고득점
  • JAVA_API
  • μ—°μŠ΅_자료ꡬ쑰
  • sql
  • scrum
  • μš°μ•„ν•œν…Œν¬μ½”μŠ€
  • λ°±μ€€
  • API
  • til
  • 자료ꡬ쑰
  • javascript
  • κ°œλ°œλ°±μ„œ
  • dopwn
  • μ•„μ£ΌλŒ€_μ•Œκ³ λ¦¬μ¦˜_ꡐ윑
  • μˆ˜ν•™_1(μ—°μŠ΅)
  • 개발
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
  • Java
  • λ°μΌλ¦¬μ•Œκ³ 
  • gdb
  • write-up

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
waffle

μ™€ν”Œκ³΅μž₯

[ DoPwn ] Week1 - "system" Write Up
πŸ” λ³΄μ•ˆ,μ •λ³΄λ³΄ν˜Έ/πŸ“˜ [STYDY] 리버싱

[ DoPwn ] Week1 - "system" Write Up

2021. 11. 22. 19:58
728x90

shell μ‹€ν–‰κ²°κ³Ό

shell ν”„λ‘œκ·Έλž¨μ€ μ–΄λ–€ λ¬Έμžμ—΄μ„ μž…λ ₯ν•˜λ©΄ μ‰˜μ˜ ls -al λͺ…λ Ήκ³Ό 같은 응닡을 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€. ν•΄λ‹Ή 파일이 μžˆλŠ” λ””λ ‰ν† λ¦¬μ˜ 응닡과 μΌμΉ˜ν•˜κΈ° λ•Œλ¬Έμ— λΆ„λͺ… ν”„λ‘œκ·Έλž¨ μ•ˆμ—μ„œ ls -al λͺ…령을 μ‹€ν–‰ν•˜λŠ” μ‹œμŠ€ν…œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  κ²ƒμž„μ„ μœ μΆ”ν•  수 μžˆλ‹€.

 

gdb - pd main μ‹€ν–‰κ²°κ³Ό

이 ν”„λ‘œκ·Έλž¨μ—μ„œ μž…λ ₯은 gets ν•¨μˆ˜λ‘œ μ²˜λ¦¬λœλ‹€.

cμ–Έμ–΄μ—μ„œ getsλŠ” μž…λ ₯λ°›κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μΈλ°, κ°œν–‰ μ•ž λΆ€λΆ„κΉŒμ§€ 잘라 char* νƒ€μž…μœΌλ‘œ λ§ˆμ§€λ§‰μ— NULL을 λΆ™μ—¬ μ €μž₯ν•΄μ£ΌλŠ” ν•¨μˆ˜λΌκ³  ν•œλ‹€. ν—ˆλ‚˜ 버퍼 μ˜€λ²„ν”Œλ‘œμš°λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆλŠ” λ¬Έμ œκ°€ μ‘΄μž¬ν•΄ gets_s ν•¨μˆ˜μ˜ μ‚¬μš©μ„ ꢌμž₯ν•œλ‹€κ³  ν•œλ‹€.

 

+) μ°Έμ‘°

더보기

https://blockdmask.tistory.com/343

 

[Cμ–Έμ–΄/C++] gets, puts λ¬Έμžμ—΄ μž…μΆœλ ₯ ν•¨μˆ˜μ— λŒ€ν•΄μ„œ.

μ•ˆλ…•ν•˜μ„Έμš”. BlockDMask μž…λ‹ˆλ‹€. μ˜€λŠ˜μ€ Cμ–Έμ–΄, C++μ—μ„œ char*, char[] μŠ€νƒ€μΌμ˜ λ¬Έμžμ—΄μ„ μž…μΆœλ ₯ λ°›λŠ” gets, puts ν•¨μˆ˜λ₯Ό μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. μ§€λ‚œμ‹œκ°„μ—λŠ” 문자λ₯Ό λ‹€λ£¨λŠ” getchar, putchar 두 ν•¨μˆ˜μ— λŒ€ν•΄μ„œ μ•Œμ•„

blockdmask.tistory.com

 

 

이 ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λœ gets ν•¨μˆ˜λŠ” μ˜€λ²„ν”Œλ‘œμš°λ₯Ό λ‚΄μ„œ μ–΄λ–€ ν˜•μ‹μœΌλ‘œ μž…λ ₯λ˜λŠ” λͺ…λ Ήμ–΄λ₯Ό μˆ˜μ •ν•¨μ΄ λͺ©μ μΌ 것이닀. λ”°λΌμ„œ 기쑴에 μž…λ ₯λ˜μ–΄μžˆμ„ ls -al λͺ…λ Ήμ–΄μ˜ μœ„μΉ˜λ₯Ό λ¨Όμ € ν™•μΈν•΄λ³΄κΈ°λ‘œ κ³„νšν•˜μ˜€λ‹€.

 

마침 μ‹œμŠ€ν…œ ν•¨μˆ˜ μ‹€ν–‰ 직전에 친절히 μΈμžκ°€ μ „λ‹¬λ˜λŠ” 것을 확인할 수 μžˆλ‹€. μ „λ‹¬λ˜λŠ” 인자의 λ¬Έμžμ—΄μ„ x/s λͺ…λ ΉμœΌλ‘œ ν™•μΈν•΄λ³΄μ•˜λ‹€.

pd - x/s λͺ…λ Ή μ‹€ν–‰κ²°κ³Ό

μ˜ˆμΈ‘ν•œ 바와 λ§ˆμ°¬κ°€μ§€λ‘œ ls -al λͺ…령이 전달됨을 ν™•μΈν–ˆλ‹€. λ”°λΌμ„œ 0x555555558090μ£Όμ†Œμ˜ λ‚΄μš©μ„ λ³€κ²½ν•˜μ—¬ flag νŒŒμΌμ„ μ—΄λ©΄ λœλ‹€.

λ¬Έμ œμ—μ„œ flag 파일의 μœ„μΉ˜λŠ” μ΅œμƒλ‹¨ 디렉토리에 'flag'λΌλŠ” 파일λͺ…을 λ”°λ₯Έλ‹€κ³  ν–ˆλ‹€. λ”°λΌμ„œ ν•΄λ‹Ή νŒŒμΌμ„ μ—΄ 수 μžˆλŠ” λͺ…λ Ήμ–΄λ₯Ό μ € μ£Όμ†Œμ— μž…λ ₯ν•˜λ©΄ λœλ‹€.

 

gets ν•¨μˆ˜μ˜ μž…λ ₯값이 μ €μž₯λ˜λŠ” μ£Όμ†ŒλŠ” 0x555555558060이닀. 48byte 차이가 gets ν•¨μˆ˜μ˜ μž…λ ₯κ°’ μ €μž₯μœ„μΉ˜μ™€ λͺ…λ Ήμ–΄ μ €μž₯μœ„μΉ˜ 사이에 μ‘΄μž¬ν•˜λ―€λ‘œ, ν•„μš”μ—†λŠ” 문자 48개λ₯Ό λͺ…λ Ήμ–΄ μ•žμ— λ¨Όμ € μž…λ ₯ν•˜λ©΄ λœλ‹€λŠ” 결둠에 도달할 수 μžˆλ‹€. 

 

이λ₯Ό 톡해 python μ½”λ“œλ₯Ό μž‘μ„±ν–ˆλ‹€

print 'a'*48 + 'cat /flag'

python pipeline μ‹€ν–‰κ²°κ³Ό

μ›ν•˜λŠ” λͺ…령이 싀행됨을 확인할 수 μžˆμ—ˆλ‹€.

이λ₯Ό μ›κ²©μ„œλ²„ νŒŒμΌμ—μ„œ μ‹€ν–‰ν•΄ flagλ₯Ό νšλ“ν–ˆλ‹€.

 

flag νšλ“

 

μ™„λ£Œ!

728x90
λ°˜μ‘ν˜•

'πŸ” λ³΄μ•ˆ,μ •λ³΄λ³΄ν˜Έ > πŸ“˜ [STYDY] 리버싱' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ DoPwn ] Week2 - "assemlator" Write Up  (0) 2021.11.30
[ DoPwn ] Week2 - "assembly" Write Up  (0) 2021.11.30
[ DoPwn ] Week1 - "Magic Spell" Write Up  (0) 2021.11.22
[ DoPwn ] Week1 - "Student ID" Write Up  (0) 2021.11.20
[Whois-Internal] "EasyReverseMe" Write-Up  (0) 2021.11.08
    'πŸ” λ³΄μ•ˆ,μ •λ³΄λ³΄ν˜Έ/πŸ“˜ [STYDY] 리버싱' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [ DoPwn ] Week2 - "assemlator" Write Up
    • [ DoPwn ] Week2 - "assembly" Write Up
    • [ DoPwn ] Week1 - "Magic Spell" Write Up
    • [ DoPwn ] Week1 - "Student ID" Write Up
    waffle
    waffle
    개발기술 κ΄€λ ¨ 글듀은 velog에 μžˆμŠ΅λ‹ˆλ‹€ :) (https://velog.io/@cm_waffle) Developer waffle = new Waffle();

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”