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)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ

곡지사항

인기 κΈ€

νƒœκ·Έ

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

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

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

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

[ SQL Injection ] Goblin
πŸ” λ³΄μ•ˆ,μ •λ³΄λ³΄ν˜Έ/πŸ“˜ [STUDY] 취약점

[ SQL Injection ] Goblin

2021. 9. 13. 19:24
728x90

sql query & PHP code

query값을 톡해 λ°›μ•„μ˜€λŠ” 데이터λ₯Ό ν™œμš©ν•˜μ—¬ sql query둜 λ§Œλ“€μ–΄ db에 λͺ…령을 λ‚΄λ¦¬λŠ” php μ½”λ“œμ΄λ‹€.

 

PHP 뢄석


μ•žμ˜ 2λ¬Έμ œμ™€λŠ” 달리 필터링 λ‚΄μš© 및 쿼리 λ‚΄μš©μ΄ λ³€κ²½λ˜μ—ˆλ‹€.

μš°μ„  μž…λ ₯ν•„λ“œκ°€ id & pwμ—μ„œ id & no둜 λ³€κ²½λ˜μ—ˆκ³ , id값은 μž…λ ₯λ°›λŠ” 값이 λ“€μ–΄κ°€μ§€ μ•Šκ³  'guest'둜 κ³ μ •λ˜μ–΄μžˆλ‹€.

λ˜ν•œ 필터링도 κ°•ν™”λ˜μ–΄ no에 ',",`λ₯Ό μ΄μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ 넣을 수 μ—†λ‹€.

 

ν•˜μ§€λ§Œ 문제의 해결을 μœ„ν•΄μ„œλŠ” id ν•„λ“œμ˜ 값이 admin이어야 ν•œλ‹€. 즉, κ³ μ •λœ 값을 λ³€κ²½ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

 

https://devwaffle.tistory.com/39

 

[ SQL ] SQL 문법 μ‹€ν–‰μˆœμ„œ

SQL λ¬Έλ²•μ—λŠ” ꡬ문 λ‚΄ μ‹€ν–‰μˆœμ„œμ™€ 연산사 μ‹€ν–‰μˆœμ„œκ°€ μ‘΄μž¬ν•œλ‹€. SQL ꡬ문의 κ²½μš°μ—λŠ” FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY μˆœμ„œλ‘œ μ‹€ν–‰λœλ‹€. 즉, μ•„λž˜μ™€ 같은 SQL 쿼리문이 μ‘΄μž¬ν•  경우: SELECT..

devwaffle.tistory.com

 

μœ„μ— SQL문법 μ‹€ν–‰ μˆœμ„œμ— λŒ€ν•˜μ—¬ μ •λ¦¬ν•œ 포슀트λ₯Ό μ—°κ²°ν•΄λ†“μ•˜λŠ”λ°, κ·Έ μ΄μœ κ°€ 이번 문제λ₯Ό ν’€κΈ°μœ„ν•΄ μš°μ„ μˆœμœ„μ— λŒ€ν•œ 이해가 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

SQL 문법상 WHERE문에 μ μš©λ˜λŠ” μ—°μ‚°μžλ³„ μš°μ„ μˆœμœ„λŠ” ANDκ°€ OR보닀 λ†’λ‹€. λ”°λΌμ„œ no에 OR둜 이루어진 λ‹€μŒκ³Ό 같은 SQL 쿼리λ₯Ό μž‘μ„±ν•˜μ—¬ 보내면 μ•„λž˜μ™€ 같이 필터링 쑰건이 λ³€κ²½λœλ‹€:

 

0 OR id='admin'

 

1) id='guest'이고 no=0인 데이터

2) id='admin'인 데이터

 

 

Injection

 


ν˜Όμžμ„œλŠ” 방법을 μ°Ύμ§€ λͺ»ν•˜μ—¬ κ°•μ˜μžλ£Œμ™€ ꡬ글링을 톡해 SQL μš°μ„ μˆœμœ„ 등에 λŒ€ν•œ ν•™μŠ΅μ„ ν•˜μ—¬ λ‹€μŒ λ‹΅μ•ˆμ„ μ•Œμ•„λ‚΄μ—ˆλ‹€

 

0 OR id='admin'

μ •μƒμ μœΌλ‘œ 쑰건을 μ™„μ„±μ‹œμΌœμ£Όκ³ , 뒀에 OR 쑰건을 λΆ™μ—¬ WHERE을 톡해 필터링 κ°€λŠ₯ν•œ 결과값에 λŒ€ν•œ 쑰건을 μƒˆλ‘œ μΆ”κ°€ν•˜μ˜€λ‹€.

ν•˜μ§€λ§Œ 이 μ½”λ“œμ—λŠ” λ¬Έμžμ—΄μ΄ ν¬ν•¨λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ— ν•„ν„°λ§μ‘°κ±΄μ—μ„œ λ¬Έμ œκ°€ λœλ‹€. λ”°λΌμ„œ μœ„ μ½”λ“œμ˜ λ¬Έμžμ—΄ 'admin'을 16μ§„μˆ˜ λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•œλ‹€. (SQL이 16μ§„μˆ˜ λ¬Έμžμ—΄μ„ μ§€μ›ν•˜κΈ° λ•Œλ¬Έ)

 

0 OR id=0x61646D696E

 

 

 

How to Defence


 

생각해본 방법듀은 λ‹€μŒκ³Ό κ°™λ‹€.:

 

1. ' AND'λ‚˜ ' OR'ν˜•νƒœμ˜ νŒ¨ν„΄μ„ κ°€μ§„ λ¬Έμžμ—΄μ΄ ν¬ν•¨λœ μš”μ²­μ„ μ „λΆ€ κ±°λΆ€ν•œλ‹€

곡백 λ°”λ‘œ λ‹€μŒμ— μ—°μ‚°μžκ°€ μ˜€λŠ” νŒ¨ν„΄μ˜ λ¬Έμžμ—΄κ³Ό ν•¨κ»˜ λ“€μ–΄μ˜€λŠ” λͺ¨λ“  μš”μ²­μ„ κ±°λΆ€ν•  경우 WHEREμ ˆμ— λŒ€ν•œ μˆ˜μ •μ΄ λΆˆκ°€λŠ₯ν•˜λ―€λ‘œ 개발자의 μ˜λ„λŒ€λ‘œ 쿼리문 싀행이 κ°€λŠ₯ν•˜λ‹€. νŠΉμˆ˜λ¬Έμžλ“€ 쀑 κ΄„ν˜ΈκΉŒμ§€ λ§‰μœΌλ©΄ λ”μš± μ’‹λ‹€.

 

2. νŠΉμˆ˜λ¬Έμžλ“€ 쀑 '=', '(', ')'도 ν•¨κ»˜ ν•„ν„°λ§ν•œλ‹€

'=' 특수문자λ₯Ό 필터링 ν•˜λ©΄ λ‹€μ–‘ν•œ 곡격듀을 λ°©μ–΄ν•  수 μžˆλ‹€. 특히 비ꡐ문을 μ›μ²œμ μœΌλ‘œ μ‚¬μš©ν•  수 μ—†κΈ° λ•Œλ¬Έμ— μ—°κ΄€λœ λͺ¨λ“  곡격을 막을 수 μžˆμ„ 것이닀. λ˜ν•œ κ΄„ν˜Έλ₯Ό ν•¨κ»˜ ν•„ν„°λ§ν•˜μ—¬ WHERE절의 쿼리문을 개발자의 μ˜λ„λŒ€λ‘œ 싀행될 수 μžˆλ„λ‘ λ§Œλ“€ 수 μžˆλ‹€.

 

3. 16μ§„μˆ˜ λ¬Έμžμ—΄μ„ 일반 λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜μ—¬ κ²€μ‚¬ν•œλ‹€

16μ§„μˆ˜ λ¬Έμžμ—΄λ„ 일반 λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜μ—¬ λ‹€μ‹œ κ²€μ‚¬ν•˜κ²Œ λœλ‹€λ©΄ μœ„μ— ',",`ν‘œμ‹μ„ 톡해 λ¬Έμžμ—΄μž„μ„ λͺ…μ‹œν•˜λŠ” 쑰건을 νšŒν”Όν•˜λŠ” 것을 λ°©μ§€ν•  수 μžˆλ‹€.

728x90
λ°˜μ‘ν˜•

'πŸ” λ³΄μ•ˆ,μ •λ³΄λ³΄ν˜Έ > πŸ“˜ [STUDY] 취약점' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ SQL Injection ] webhacking.kr - 21  (0) 2021.09.20
[ SQL Injection ] Cobolt  (0) 2021.09.13
[ SQL Injection ] Gremlin  (0) 2021.09.13
    'πŸ” λ³΄μ•ˆ,μ •λ³΄λ³΄ν˜Έ/πŸ“˜ [STUDY] 취약점' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [ SQL Injection ] webhacking.kr - 21
    • [ SQL Injection ] Cobolt
    • [ SQL Injection ] Gremlin
    waffle
    waffle
    개발기술 κ΄€λ ¨ 글듀은 velog에 μžˆμŠ΅λ‹ˆλ‹€ :) (https://velog.io/@cm_waffle) Developer waffle = new Waffle();

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