반응형
비밀번호를 md5 해슁하여 sql injection을 대비하는 구문이다.
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";
파라미터 값으로 id='을 주어 id''으로 거짓을 만들고 || id='admin' %23을 하게 되면 뒤에 값이 참이 되고 그 이후 문장은 주석 처리가 되게 된다 .
#는 뒤에 오는 것들을 전부 주석으로 처리 하기 떄문에 md5 해슁 구분이 주석처리 되게 된다.