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

upload-labs通关详解

pass01

上传一个php文件提示不允许上传

所以我们在上传的时候抓个包,将后缀.php改成.jpg

 上传成功

用蚁剑测试,成功连接


pass02

先上传一个php文件,提示文件类型不正确

 能抓到数据包,证明不是前端JS校验,是服务端进行校验,网页源代码中也没有任何前段验证代码,所以这道题的类型为后端验证。

这里我们要做的事情就是修改Content-Type后面的数据,告诉服务器,这是一个图片文件,以达到欺骗服务器的目的 

放包,文件上传成功

复制图片链接用蚁剑连接


pass03

还是一样,我们先上传一个php文件,提示不允许上传.asp,.aspx,.php,.jsp后缀文件

看看源码,这里采用了黑名单进行限制

我们只需要避开这些黑名单中的后缀即可,比如我们使用.phtml,上传成功


pass04

由于上传的文件名未经过处理,这里使用.htaccess文件攻击

重要功能:可以指定某个⽂件当作php⽂件执⾏

上传一1.htaccess文件,文件内容如下

SetHandler application/x-httpd-php

上传1.png⽂件,成功解析 且能连接


pass05

上传一个.user.ini文件,内容如下

auto_prepend_file = "1.jpg"

 

再上传 包含木马文件的1.jpg,上传后访问与图片地址相同目录下的readme.php文件即可出发木马文件


pass06

先查看源码,发现没有对大小写进行过滤

将后缀改为.Php ,上传成功

成功连接


pass07

没有首位去空,空格绕过

抓包后后缀名后加空格

上传成功且能连接


pass08

没有去除末尾的点,填点绕过

上传成功且能连接


pass09

没有去除字符串$::DATA

抓包后文件末尾加 $::DATA,上传成功且能连接


pass10

这里黑名单严格、删除文件名末尾点、大小写转换为小写、去除::$DATA字符、首尾去空

上传php文件后抓包

用.空格.绕过

上传成功且能连接


pass11

通过str_ireplace()函数将黑名单中的文件后缀名进行了替换,换为空字符

我们双写后缀名绕过

上传成功且能连接


pass12

这里用了白名单进行限制,只允许上传jpg/png/gif文件格式,拼接的文件路径为随机数+时间+文件后缀。构造文件存储路径使用GET传入,导致服务器最终存储的文件名可控

 

%00绕过:⽂件上传%00绕过是指攻击者在⽂件上传时,在⽂件名后⾯添加%00字符,从⽽绕过服务器端的⽂件类型、拓展名以及⼤⼩限制,成功上传恶意⽂件到服务器端,从⽽进⾏攻击的⼀种技巧 

截断攻击,抓包上传将%00 ⾃动截断后面内容 例如 1.php%00 变成 1.php 


pass13

这段代码同样是白名单限制后缀名,$_POST['save_path']是接收客户端提交的值,客户端可任意修改.所以会产⽣安全漏洞;

POST 下直接注⼊%00 是不行的,需要把%00 解码变成空白符,截断才有效。才能把目录截断成⽂件名;

将%00的hex码更改为00,然后上传 


pass14

制作图片⼀句话,直接上传即可

copy 2.jpg /b+123.php /a shell.jpg

上传制作好的图片马

复制地址蚁剑访问


pass15

攻击方法同上


pass16

使用exif_imagetype()函数来判断是否为图片文件

使用图片马绕过


pass17

二次渲染绕过,我们上传一个反二次渲染的图片,网站会对我们的图片进行二次渲染还原回来

复制图片地址直接蚁剑连接

 


 

pass18

查看网站源码,发现有tmp_name,临时目录,检测到不是jpg,png,gif会把我们上传的文化删掉

上传下方代码

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

上传文件,burp抓包,发送到 intruder 模块,设置无限发送空的payloads,线程调高一点,设置选择无限重发上传,再通过burp重复上面的步骤利用攻击器无限访问访问我们上传的文件

 

pass19

方法同上


pass20

上传图片文件,并自定义保存文件名称

上传成功

 

上传php文件,定义文件名为php 

 

绕过方法:图片马+文件包含 

将图片马上传到站点

使用文件包含访问 并连接


pass21

方法同上

 

 


http://www.kler.cn/a/290538.html

相关文章:

  • C# 对象和类型(结构)
  • springboot + vue+elementUI图片上传流程
  • tomcat12启动流程源码分析
  • 【 算法设计与分析-回顾算法知识点】福建师范大学数学与计算机科学学院 2006 — 2007学年第二学期考试 A 卷
  • uniapp 导入uview-plus,使用组件出现,页面出现<up-parse>元素不存在,请检查你的代码
  • 阻抗(Impedance)、容抗(Capacitive Reactance)、感抗(Inductive Reactance)
  • C#指针(内存地址)IntPtr
  • Windows中Git对文件名大小写不敏感的问题解决方法
  • Unity数据持久化 之 二进制存储法
  • 设计模式之适配器模式:软件世界的桥梁建筑师
  • 【系统架构设计师-2019年】综合知识-答案及详解
  • ts 类型分类
  • 在安卓和Windows下使用Vizario H264 RTSP
  • 数据库系统 第28节 数据库迁移 案例分析
  • 2011年
  • pr瘦脸怎么操作?
  • css设置让整个盒子的内容渐变透明(非颜色渐变透明)
  • Fine3399或rk3399\sw799刷armbian创建热点
  • 精益工程师资格证书:2024年CLMP报名指南
  • sql-labs51-55通关攻略
  • 【Pandas】Pandas日常工作的常用操作大全
  • Go 语言版本管理——Goenv
  • 探索淘宝拍立淘API:解锁以图搜图的购物新体验
  • 浅谈C#事件
  • 在 Facebook 上投放广告需要多少钱?
  • Docker续6:容器网络