DreamHack - [wargame.kr] tmitter νμ΄
SQL Injection μ·¨μ½μ μ΄ μλ νμ΄μ§ μ°ΎκΈ°
μ°μ λ‘κ·ΈμΈ νμ΄μ§, νμ κ°μ νμ΄μ§μ λ¨λ°μ΄ν(β)λ μλ°μ΄ν(")λ₯Ό λ€ λ£μμ§λ§ λ±ν λ¬Έμ μμ΄ νμ κ°μ κ³Ό λ‘κ·ΈμΈμ΄ μλνλ€. νμ§λ§ λλ€μμ λ¨λ°μ΄ν(β)κ° μμ λ tmitter μμ± κΈ°λ₯μ΄ μ μλλ κ²μ νμΈνμ¬ μμ± κΈ°λ₯μ SQLi μ·¨μ½ν μ μ μ°Ύμλ€.
νλ κ°μ νμΈνκΈ°
tmitter μμ± κΈ°λ₯μ μ¬μ©νλ SQL 쿼리문μ μμΈ‘μ ν΄λ³΄μλ€.
μ²μμλ μλμ κ°μ 쿼리λ₯Ό μ°μ§ μμκΉ μκ°μ νμμ§λ§ κ·ΈλΌ κ³΅κ²©μ΄ λ¨ΉνκΈ° μ½μ§ μμλ€.
insert into tmitter_board(id, msg) values ('guest', 'hello');
μλ¬΄νΌ λ©μμ§', null)#μ μ°κ³ μμ±μ νλ μ λλ‘ μ¬λΌκ°λ κ²μ νμΈνκ³ νλκ° λͺ κ°μ§ λ μλ€λ κ²μ νμΈν¨
μλνλ λ©μμ§', null)#μ λ λμκ° μ΄λ²μλ λ©μμ§', null), (0, 0, 0, 0)#λ₯Ό μμ±νκ³ μλμ΄ λλ κ±Έ νμΈνκ³ μ λ ₯λ°λ νλκ° 4κ°μΈ κ²μ μΈμ§νμλ€.
μ€μ λ‘ μλμ κ°μ μΏΌλ¦¬λ¬Έμ΄ μλμμκΉ
insert into tmitter_board(???, id, msg, ???) values (???, 'guest', 'hello', ???);
admin ν¨μ€μλ λΉΌλ΄μ€κΈ°
λ©μμ§', null), (0, 'admin', (select ps from tmitter_user where id='admin'), 0)#
adminμ ν¨μ€μλλ₯Ό κ°μ Έμ€κΈ° μν΄ μ¬μ©ν 쿼리문μ΄λ€. μμ²λΌ μΌν(,)λ₯Ό κΈ°μ€μΌλ‘ insertκ° λ κ° μ΄μμ΄ κ°λ₯νκ³ λ value μμ μΏΌλ¦¬λ¬Έμ΄ μ¬μ© κ°λ₯νλ¨ κ²μ μ²μ μμλ€.