μ΄λ² ν¬μ€ν
μ SQLμΈμ μ
AJAX/JSON/JQuery μ
λλ€.
SQLμΈμ μ
μ΄ κ³΅κ²© κ°μλλ κ±°μ λΉμ·νμ§λ§ μ¬λ¬ μ’
λ₯κ° μμΌλ μ μμ§νμ¬ μ€μ΅νλλ‘ ν©μλ€~
μ€μ΅νλ λͺ¨λ 곡격μ μ€μ λ‘ μ¬μ©νμλ©΄ μλ©λλ€.
νμ©λ°μ§ μμ μλΉμ€ λμμ ν΄νΉμ μλνλ νλμ κΈμ§νλ©°,
λͺ¨λ λ²μ μ±
μμ μ¬μ©μμκ² μλ κ²μ λͺ
μ¬ν΄μ£ΌμΈμ.
μ€μ΅ μ κ°λ¨ν AJAX, JSON, jQuery μ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
AJAX(Asynchronous javaScript and XML)λ HTML, μλ°μ€ν¬λ¦½νΈ, JSONμ νΌν©νμ¬ μ¬μ©νλ κΈ°μ μ λ§νλ€.
JSON(JavaScript Object Notation)μ μΉ μλ²μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λ λ°μ΄ν°λ₯Ό νννλ λ°©λ²μ λ»νλλ°,
μλ°μ€ν¬λ¦½νΈ νμμΌλ‘ κ°μ²΄λ₯Ό νννλ€.
JQueryλ μλ°μ€ν¬λ¦½νΈ λΌμ΄λΈλ¬λ¦¬ μ€ νλλ‘, ν΄λΌμ΄μΈνΈμμ μ€ν¬λ¦½νΈ μΈμ΄λ₯Ό μ¬μ©ν λ μ΄λ₯Ό λ¨μννκ³
AJAX κΈ°λ₯λ μ 곡 νλ€.
<μλ μ£Όμλ AJAX,JSON,jQuery μμΌλ‘ μμΈν μ€λͺ
μ΄ λμ΄μλ λΈλ‘κ·Έ μ£Όμλ₯Ό κΈ°μ¬ ν΄λμ κ²μ
λλ€.>
https://coding-factory.tistory.com/143
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/JSON
https://ko.wikipedia.org/wiki/JQuery
'sqli_10-1.php' νμ΄μ§λ AJAX κΈ°μ μ νμ©νμ¬ κ²μ λ²νΌμ λλ₯΄μ§ μμλ κ²μμ΄λ₯Ό μ
λ ₯νλ©΄
λ°λ‘ κ²μ κ²°κ³Όλ₯Ό μΆλ ₯νλ€.
λμ΄λ ν
μ€μ΅μ μν΄ "SQL Injection(AJAX/JSON/jQuery)" λ₯Ό ν΄λ¦νκ³ , lowλ 벨μ μ ννλ€.
νμ κ²°κ³Όλ₯Ό μ°ΈμΌλ‘ λ§λλ SQL쿼리λ₯Ό κ²μλμ μ
λ ₯ν΄λ³Έλ€.
κ²μλ²νΌμ λλ₯΄μ§ μκ³ μ
λ ₯λ§ νμ¬λ κ²°κ³Όμ°½μ΄ μΆλ ₯λλ κ²μ μ μ μλ€.
κ°λ°μ λꡬ (F12)λ₯Ό ν΅ν΄μ νμ΄μ§ μμ€ μ½λλ₯Ό νμΈν΄λ³΄λ©΄,
search μ¦ κ²μλμ μ¬μ©λλ λ³μλ titleμ΄λΌλ κ²μ μ μ μλ€.
GETλ©μλλ₯Ό μ¬μ©νλ―λ‘ URLμμλ λ³μμ λ³μμ λμ
ν κ°μ λ
ΈμΆνλ€.
κ·Έλ¬λ AJAXλ‘ κ΅¬νν νμ΄μ§μ΄λ―λ‘, URLμ μλ λ³μμ κ°μ μ
λ ₯νμ¬λ κ²°κ³Όλ₯Ό μΆλ ₯νμ§ μλλ€.
--> μ¦ κ²μλμ 쿼리문μ μ
λ ₯νλ©΄ νλ©΄μ κ²°κ³Όκ° μΆλ ₯λμ§λ§, κ²μ λ²νΌμ λλ₯΄λ©΄ μ
λ ₯ κ²°κ³Όκ° μΆλ ₯ λμ§ μμ.
κ²μμ°½μ 쿼리λ₯Ό μ
λ ₯νλ©΄, URLμ μΏΌλ¦¬κ° λ
ΈμΆλλ€.
λ°μ΄ν°λ² μ΄μ€λ μ μ μ€μ΅νλ DBμ κ°μΌλ©° (bWAPP), SQL 쿼리μ μ λΆ κ°κΈ° λλ¬Έμ κ±°μ μλ΅νκ³ λ§μ§λ§ λΆλΆλ§
μ€μ΅νλλ‘ νκ² μ΅λλ€.
(Databaseμ΄λ¦, table μ΄λ¦μ μκ³ μμ λ columnμ΄λ¦μ μμλ΄λ 쿼리)
쿼리문 > 0' union select null,column_name,null,null,null,null,null from information_schema.columns where table_name="users" and table_schema="bWAPP"#
(μ 쿼리문μ ν΅ν΄ μμλΈ μ 보λ₯Ό ν΅ν΄ μ¬μ©μ μ 보λ₯Ό νμ·¨)
쿼리문 > 0' union select null,id,login,password,email,secret,null from users#
νμ΄μ§μ μ¬μ©μμ κ³μ μ 보 λ
ΈμΆ
SQL μΈμ μ
μ±κ³΅
λμλ°©μ
'λμ΄λ μ'μμλ λμ΄λ νμ λ€λ₯΄κ² SQLμΈμ μ
μ μλνμ¬λ μλ¬΄λ° κ²°κ³Όκ° λμ€μ§ μλλ€.
μ°ν λ°©λ²μ sqli_10-1.php νμ΄μ§μ μμ€ μ½λλ₯Ό νμΈν΄λ³΄λ©΄ λλ€.
μλ μ½λλ₯Ό νμΈ ν΄λ³΄λ©΄, sqli_10-1.phpμμ AJAXλ₯Ό νΈμΆν λ "sqli_10-2.php"λ₯Ό νΈμΆ νκ³ μλ€.
sqli_10-1.php μμ€ μ½λ
"sqli_10-2.php" μμ€μ½λλ₯Ό νμΈν΄λ³΄λ©΄ sqli_check_2ν¨μλ₯Ό μ¬μ©νμ¬ μ
λ ₯ν
SQLꡬ문μ μΏΌλ¦¬λ‘ μΈμνμ§ μκ² μ°ννμμμ μ μ μλ€.
sqli_check_2 μμ€ μ½λ
μ΄ ν¨μλ₯Ό μ΄ν΄λ³΄λ©΄, μ μ SQLμΈμ μ
λ€λ₯Έ 곡격λ€κ³Ό κ°μ ν¨μλ₯Ό μ¬μ©νλλ°
functions_external.phpμ μ μλμ΄ μκ³ , PHPκΈ°λ³Έ μ 곡 ν¨μμΈ
mysql_real_escape_string() ν¨μλ₯Ό μ΄μ©νμ¬, μ¬μ©μκ° μ
λ ₯ν λ°μ΄ν°λ₯Ό μ°ννκ³ μλ€.
μ¦ μ¬μ©μκ° μ
λ ₯ ν λ SQLλ¬Έλ²μ μ¬μ©λλ νΉμλ¬Έμλ₯Ό μ
λ ₯νλ©΄,
λ°±μ¬λμλ₯Ό λΆμ¬ SQLλ¬Έλ²μΌλ‘ μΈμνμ§ μκ² λ°©μ΄ νλ κ²μ΄λ€.