实验吧web--易--后台登陆(php的md5()函数)

题目地址:http://www.shiyanbar.com/ctf/2036

1、首先,查看网页源代码(Ctrl+U),会发现一段PHP代码:

$sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";

意思就是:用输入经过md5加密后的密码和admin用户名查询,结果等于sql,然后执行该sql语句。

介绍一下md5()的用法:

语法

md5(string,raw)

        

参数描述
string必需。要计算的字符串。
raw

可选。

  • 默认不写为FALSE。32位16进制的字符串
  • TRUE。16位原始二进制格式的字符串
 
  
  

 返回的是字符串,不过进制不一样。

2、基于上面的sql语句对密码进行注入

password = '".md5($password,true)."',必须md5后的字符串前面为'or',这样才能闭合前面的单引号。

所以,对于二进制字符串'or',我们需要找到一个字符串,让他经过md5($password,true)之后含有'or',这样的字符串怎么找呢,我现在的水平是找不出来了,观察一下url,ffifdyop.php看着挺奇怪的,于是试了一下。

ffifdyop
false: 276f722736c95d99e921722cf9ed621c
true: 'or'6\xc9]\x99\xe9!r,\xf9\xedb\x1c

看到true时前面就有'or',于是把ffifdyop输入提交就拿到flag了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值