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 |