【后端检测-绕过】条件竞争漏洞(多线程共享)

目录

 条件竞争

1.1、原理:

1.2、示例:

1.3、利用过程:


 条件竞争

1.1、原理:

在多线程的前提下,文件上传后会先保存到服务端再判断文件是否合规(会有一段时间被保留在服务器中),不合规则删除。如果此时还没判断是否合规,就进行不断的访问,而此时文件刚好存在的话,就达到执行文件的目的。

1.2、示例:

有一个银行账户A和一个银行账户B里面各有10w

现在有两名用户同时登录到了账户A,并且两人都打算:从账户A转1w到账户B

正常的操作结果:账户A剩余8w,账户B剩余12w


但,实际情况是:

(1)用户甲发起转账请求,服务器验证账户A的余额为10w

(2)用户乙同时发起转账请求,服务器验证账户A的余额为10w元

(3)

服务器处理用户甲的请求,从账户A里面扣除1w(此时账户A余额为9w),并将其存入账户B(此时账户B余额为11w)

同时

服务器处理用户乙的请求,从账户A里面扣除1w(此时账户A余额为9w),并将其存入账户B(此时账户B余额为12w)

(5)处理结果:账户A余额为9w,账户B余额为12w

1.3、利用过程:

第一步:创建一个php文件,写入下面语句

<?php

$f= fopen ("test.php","w") ;

fputs ($f,'<?php phpinfo();?>');

?>

访问到这个文件后,这个文件会在服务器的当前目录下创建一个test.php的,内容为<?php phpinfo();?>。

第二步:设置burpsuite代理

(注:我的burpsuite拦截不到本地上传啥的,只能拦截到真实网络中,就拿真实网络为个例子) 

第三步:进行上传,并用surprise拦截,并把拦截到的数据包发送到Intruder模块

第三步:在报文头后加&a=1,将1选中,点击add(那个符号)

第四步:新建页面,访问1.php这个文件(营造1000人访问这个文件)

(先dorp(放掉)前面拦截的流量)

将拦截到的访问1.php流量发送到Intruder模块

在报文头后加?a=1并将1选中添加符号

(这里和上面一步的操作一样)

第五步:配置Intruder(测试器)模块

点击Payloads(有效载荷),类型选择Numbers(数值),在下面设置数值范围

(就会对前面?a=1,对这里的1进行不断的修改,在数值范围内修改)

营造1000人访问的场景 

可以点击将一个访问发送多次到Intruder模块,实现更多的访问

并将每一个的线程调高,点击Options(选项)---->增加线程

 设置就算完成了

第六步:点击Start attack(开始攻击)

查看results(结果)时

相应包里出现200,就是访问成功

 查看服务器目录,创建test.php文件,成功执行了

第七步:访问test.php文件,执行相关操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色地带(崛起)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值