본문 바로가기
Web

md5 raw hash를 이용한 sql injection

by bbolmin 2012. 9. 26.

 

php에서 md5해쉬를 해주는 함수가 있다.

 

 

사용법

 

md5("문자열") -> 32자리의 16진수 값 반환
md5("문자열", true) -> 16자리의 바이너리 형식으로 반환

 

 

md5('admin') 이런식으로 하면 21232f297a57a5a743894a0e4a801fc3이란 해쉬값을 반환하고

md5('admin', true) true를 하면 위의 해쉬값을 바이너리 형식으로 반환해준다.  

 

                                     -  true를 안했을 때 -                                               -true일때-

 

 

 

 

아래와 같이 md5함수를 true로 사용하는 상황에서 sql injection이 가능하다.

 

$id = $_POST[id];

$pw = md5($_POST[pw],true);

mysql_query("select key from member where id='$id' and pw='$pw');

 

바로 $pw에 md5해쉬 했을 때 1' or '1 같은 쿼리문이 나오게 하는 값을 찾아서 넣어주면 공격이 가능하다.

 

ex) 129581926211651571912466741651878684928

 

참고 : http://cvk.posterous.com/sql-injection-with-raw-md5-hashes

 

 

 

'Web' 카테고리의 다른 글

PHP 백도어에서 사용하는 함수  (0) 2014.04.02
javascript decoding tools  (0) 2013.11.29
php extract()함수에 대하여 . .-  (4) 2012.07.30