[极客大挑战 2019]BuyFlag

这篇博客探讨了PHP5.3版本的一个安全问题,涉及到POST参数传递、isset函数和is_numeric函数的使用。文章指出,通过使用空字符%00可以绕过is_numeric的检查,从而可能导致安全风险。作者分享了如何使用Burp Suite进行流量捕获和修改,以利用这一漏洞,并提出了可能的解决方案,包括限制输入长度和避免使用易受攻击的函数。
摘要由CSDN通过智能技术生成

查看源代码在这里插入图片描述
发现提示
在这里插入图片描述
1、用post传递 money和password
2、isset函数确定传参的password不为空
3、另外要求password为404但是不是数

is_numeric函数的绕过可以用空字符 %00 无论是%00放在前后都可以判断为非数值

用bp抓包,send to repeater
在这里插入图片描述
根据这三句话的提示更改包里的内容
在这里插入图片描述
user=1
按照提示 money=10000000
在这里插入图片描述
但是提示长度太长了
在这里插入图片描述
注意到这个题是php5.3版本
在这里插入图片描述
同时注意到,此题用到的是PHP 5.3.5,老版本PHP了。要求我们不能输入8位字符,而输入其他任何字符都会返回you have not enough money,loser~,合理猜测一下用的是strcmp,那么直接money[]=1就可以了。

最终修改三个地方
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值