MD5加密下的SQL注入

转自:http://www.joychou.org/index.php/web/SQL-injection-with-raw-MD5-hashes.html?utm_source=tuicool

做题的时候看到下面这个句子:

$sql="select password from users where password='".md5($password,true)."'"

这里面的md5()函数有两个参数,一个是要加密的字符串,另一个是输出格式,具体是

raw

可选。规定十六进制或二进制输出格式:

  • TRUE - 原始 16 字符二进制格式
  • FALSE - 默认。32 字符十六进制数

但是组成查询语句的时候这个hex会被转成字符串,如果转换之后的字符串包含'or'<xxx>,就会和原查询语句一起组成

$sql="select password from users where password=''or'<xxx>'"
导致了sql注入。

提供一个字符串:ffifdyop

md5后,276f722736c95d99e921722cf9ed621c

再转成字符串: 'or'6<其他字符>

参考:

http://mslc.ctf.su/wp/leet-more-2010-oh-those-admins-writeup/

http://cvk.posthaven.com/sql-injection-with-raw-md5-hashes

http://www.w3school.com.cn/php/func_string_md5.asp


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值