md5 password ๋ผ๋ ์ ๋ชฉ์ ๋ฌธ์ ์ด๋ค. md5 ์ํธํ๋ฅผ ์ฌ์ฉํ ์ด๋ค password ๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒ ๊ฐ๋ค.
์๋นํ ๋ณ๊ฑฐ ์์ด ๋ณด์ธ๋ค. ์์ค๋ฅผ ํ์ธํด๋ณด์.
php ์์ mysql ์ ์ฌ์ฉํ๋ฉฐ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌํ ๋ md5 ์ํธํ ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ์ฃผ๋ชฉํ ์ ์ md5($ps,true) ์ด๋ค.
md5 ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ธ์์ true ๊ฐ์ ์ ๋ฌํ๋ฉด raw_output ์ต์ ์ ์ฌ์ฉํ๊ฒ ๋๋ค.
raw_output ์ต์ ์ธ์๋ฅผ true ๋ก ์ฃผ๊ฒ ๋๋ฉด ์ํธํ ๊ฐ์ hex ๊ฐ์ด ์๋ binary ๊ฐ์ผ๋ก ์ถ๋ ฅํ๊ฒ ๋๋ค.
binary ๊ฐ์ ๊ฒฝ์ฐ ๋ฌธ์๊ฐ ์ง์ ์ถ๋ ฅ์ด ๋๋๋ฐ,
ํด๋น SQL ๊ตฌ๋ฌธ์์ md5 ์ํธํ๋ฅผ ํ ๊ฒฐ๊ณผ ๊ฐ์ด ๋ฌธ์๊ฐ ์ถ๋ ฅ ๋๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๊ทธ๋ ๋ค SQL Injection ์ด ๋ฐ์ํ ์ ์๋ ์ทจ์ฝ์ ์ด๋ค.
md5 ์ํธํ ๊ฒฐ๊ณผ๊ฐ์์ '=' ์ด ๋ฐ์ํ๋ค๋ฉด SQL ์ select * from admin_password where password=''='' ๋ก password ๊ฐ์ด true ๋ก ์ ๋ฌ๋ฌ๋์ด ํด๋น id session ์ ๊ฐ์ง๊ณ ์๋ admin ์ ์ด๋ค ๊ณ์ ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๋ค. ์ด๋ฌํ ์ทจ์ฝ์ ์ ๊ณต๋ตํ๋ค.
๊ทธ๋ฌ๋๊น md5 ์ํธํ๋ฅผ ์ํํ๋ ps ๋ณ์์๊ฒ ์ํธํ ๋์์ ๋ '=' binary ๊ฐ์ ์ถ๋ ฅํ๊ฒ ํ๋ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด SQL Injection ์ด ์ฑ๊ณตํ๊ณ , admin ์ ๊ณ์ ์ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๋ค.
0-10000000 ๊ฐ ์ค์์ ๋ณํํ์์ ๋ '=' ๊ฐ ์๋ค๋ฉด ๊ทธ๊ฒ์ ์ถ๋ ฅํ๋ ์ฝ๋์ด๋ค.
์ด์ค์์ ์๋ฌด ์ซ์๋ password ์ ๋ฃ์ด์ ๋ณด๋ด์ฃผ๋ฉด ๋๋ค.
9935566 ์ ๋ณํํ์์ ๋ ๋ฌธ์์ด์ '=' ์ด ํฌํจ๋์ด์๋ค.
sql ์ ํฌํจ๋์์ ๋๋ password= '??'=',?0?????' ์ผ๋ก false = false, 1=1 ๊ณผ ๋น์ทํ ์์์ด ๋๋ค. ๋ฐ๋ผ์ false injection ์ด ๋๋ค.
์ด ๋ฌธ์ ๋ , php ์์ md5 ํจ์๋ฅผ ์ฌ์ฉํ ๋์ ์ทจ์ฝ์ ์ผ๋ก ๋ฐ์ ๊ฐ๋ฅํ SQL Injection ์ ๊ดํด ๋งํ๋ ๊ฒ ์ด๋ค.
'Hacking > Wargame' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Wargame ) tmitter (0) | 2020.07.09 |
---|---|
Wargame ) Fly me to the moon (0) | 2020.07.07 |
Wargame ) MD5 Compare (0) | 2020.07.06 |
Wargame ) DB is really GOOD (0) | 2020.07.06 |
Wargame ) login filtering (0) | 2020.07.03 |