-
Webhacking.kr :: old-59λ²SECURITY/Webhacking 2021. 2. 16. 15:10
JOIN κ³Ό LOGIN μ΄ μλλ°,
JOIN μ λν μ½λλ
μ΄κ³ , LOGIN μ λν μ½λλ
μ΄λ€.
tavle chall59 μλ id, phone, lv μ 3 κ°μ§ column μ΄ μ‘΄μ¬νλ κ²μΌλ‘ μΆμ λλ€.
κ·Έλμ LOGIN ν λ, lv μ κ°μ΄ admin μ΄λ©΄ solve μ΄κ³ , μλλ©΄ λ³ λ°μ μλ κ²μ΄λ€.
κ·Έλ°λ° JOIN ν λ lv μ κ°μ΄ κΈ°λ³Έμ μΌλ‘ guest μ΄λ€.
mysqli_query($db,"insert into chall59 values('{$_POST['id']}',{$_POST['phone']},'guest')");
κ·Έλ¦¬κ³ phone μ "" λ‘ κ°μΈμ Έμμ§ μμΌλ, μ μνμμ μ μ μλ€.
κ·Έλμ join μ test , 1 μ νκ³ κ°μ μ λ³΄λ‘ λ‘κ·ΈμΈμ νλ, μλμ κ°μ΄ λ³λ€.
μμ guest λ₯Ό κΈ°λ³ΈμΌλ‘ μ€μ ν΄μ€λ€.
μ΄κ±Έ SQL Ingection μ μ΄μ©ν΄μ νμ΄μΌ νλ€.
κ·Έλ¬λ, id μλ μ무 κ°μ λ£μ΄μ£Όκ³ , λ€μ guest λ SQL μ ν μ€ λΌμΈ μ£Όμμ μ΄μ©νλ€.
SQL μμ ν μ€ λΌμΈ μ£Όμμ '--' μ μ¬μ©νλ€.
μ¦, --'guest' λΌκ³ νλ€λ©΄ -- λ€μ λ΄μ©μ μ£Όμ μ²λ¦¬ λλ€λ κ²μ΄λ€.
κ·Έλμ, 'test', 1, 1-- λ₯Ό λ£μ΄μ€λ€λ©΄ vl μ 1 λ‘ ν΄μν κ²μ΄λ€.
id μ myPhone', 1, 1-- μ λ£λλ€ν΄λ id λ κ·Έ μ체λ₯Ό μΈμνκΈ° λλ¬Έμ μ€ν¨νλ€.
κ·Έλ λ€λ©΄ phone μ 보μ λ£μ΄μΌ νλλ°,
λλ id μ myPhone μ, phone μλ 1, 1)-- μ λ£μ΄μ£Όμλ€.
μ£Όμν μ μ, μ£Όμ λ€μ 곡백μ λ£μ΄μ£Όμ΄μΌμ§ μ£Όμ μ²λ¦¬κ° μ±κ³΅μ μΌλ‘ λκ³ , (-- )
) μΌλ‘ 쿼리λ₯Ό λ«μμΌμ§ μ μμ μΈ μΏΌλ¦¬κ° λμ΄κ° κ²μ΄λ€.
μ¦, μλμ κ°μ΄ ν΄μλλλ‘ λ§λ κ²μ΄λ€.
insert into chall59 values('myPhone', 1, 1)-- ,'guest')
μ΄μ lv κ° 1 λ‘ ν΄μλκ²λ λ§λλ λ° μ±κ³΅νλ€.
λ€μ λ¨κ³λ‘λ lv κ° admin μΌλ‘ ν΄μνκ² λ§λ€μ΄μΌ νλλ°,
phone μ λν νν°λ§μ΄ λͺ κ°μ§ μλ€.
if(strlen($_POST['phone'])>=20) exit("Access Denied"); if(preg_match("/admin/i",$_POST['id'])) exit("Access Denied"); if(preg_match("/admin|0x|#|hex|char|ascii|ord|select/i",$_POST['phone'])) exit("Access Denied");
"Access Denied" κ° λ¨λ κ²½μ°
1. phone μ΄ 20μκ° λμ΄κ°λ κ²½μ°
2. id μ admin μ΄ ν¬ν¨λμ΄ μλ κ²½μ°
3. phone μ admin/0x/#/hex/char/ascii/ord/select κ° ν¬ν¨λμ΄ μλ κ²½μ°
κ·Όλ³Έμ μΌλ‘ admin μ λ°λ‘ μ λ ₯νμ§ λͺ»νλ, SQL λ΄μ₯ ν¨μλ₯Ό μ¬μ©ν΄μΌ νλ€.
SQL injection μμ μμ£Ό μ¬μ©νλ SQL λ΄μ₯ ν¨μλ bin, hex μΈλ° μ΄κ²λ€μ λ§μλμΌλ,
μμ νν°λ§μ κ±Έλ¦¬μ§ μλ ν¨μλ₯Ό μ°ΎμμΌ νλ€.
λν 20μ μ νμ΄ μμΌλ replace μ κ°μ건 μ¬μ©νκΈ° νλ€κ³ , μ μ΄ν΄λ³΄λ€ 보λ μ λΉν ν¨μλ₯Ό λ°κ²¬νλ€.
(μ°Έμ‘° - featur.tistory.com/136)
REVERSE(str) : str μ μμλ₯Ό κ±°κΎΈλ‘ λ§λ€μ΄ λ°νν΄μ€λ€.
ex. REVERSE("hack") μ "kcah" μ λ°ν
λ°λΌμ, REVERSE("nimda") μ λ£μ΄μ£Όλ©΄, λ΄κ° μνλ κ²μ μ»μ μ μμ κ²μ΄λ€.
λΌκ³ μκ°νλλ°, 1,REVERSE("nimda"))-- μ μ λ ₯ν΄μ£Όλ©΄ 20μκ° λμ΄κ°μ Access Denied κ° λ¬λ€ γ γ
μ€μΌ μ μλ λΆλΆμ nimda μΈλ°,, id λ₯Ό nimda λ‘ λ£κ³ μμ id λ₯Ό μ£Όλ λ°©λ²μ΄ μκ² λ€.
λ°λΌμ, λ€μκ³Ό κ°μ΄ μ λ ₯νλ κ²μ΄λ€.
id: nimda / phone: 1, REVERSE(id))--
κ²°κ³Όλ μ±κ³΅ !
'SECURITY > Webhacking' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Burp Suite μ€μΉ λ° μ¬μ© - Windows 64 bit (0) 2021.02.17 Webhacking.kr :: old-12λ² (0) 2021.02.16 Webhacking.kr :: old-36λ² (0) 2021.02.16 Webhacking.kr :: old-20λ² (0) 2021.02.16 Webhacking.kr :: old-23λ² (0) 2021.02.15