IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> upload-labs靶场(11---20)通关攻略 -> 正文阅读

[PHP知识库]upload-labs靶场(11---20)通关攻略

Pass-11-get 00截断绕过?

1、直接上传.php文件,提示:只允许上传.jpg|.png|.gif类型文件!

2、查看源码,发现是白名单判断,但$img_path是直接拼接,因此可以利用%00截断绕过。

 $img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

这里使用的是php5.2.17+Apache环境

截断条件:php版本小于5.3.4,php的magic_quotes_gpc为Off状态

3、上传图片马抓包,使用%00截断

4、成功上传!

Pass-12-post 00截断绕过

1、直接上传.php文件,提示:只允许上传.jpg|.png|.gif类型文件!

2、查看源码

save_path参数通过POST方式传递,还是利用00截断,因为POST不会像GET对%00进行自动解码,所以需要在二进制中进行修改。

3、上传图片马抓包,在hex中修改

4、成功上传!

Pass-13-图片马+文件包含

1、要求上传图片马到服务器,并且要结合文件包含漏洞来执行图片马中的恶意代码,图片马要.jpg,.png,.gif三种后缀都上传成功才算过关!

2、查看源码

这一关会读取判断上传文件的前两个字节,判断上传文件类型,并且后端会根据判断得到的文件类型重命名上传文件

3、我们先准备三种图片马(这里我是利用了Notepad++将恶意代码直接写入图片)

4、将图片马挨个上传到服务器。

5、最后我们利用文件包含漏洞

Pass-14-getimagesize()

1、要求跟Pass-13一样

2、查看源码

分析源码后,与Pass-14差不多,也是对文件开头做检查,只不过是换了一个函数,通过使用getimagesize()检查是否为图片文件。

3、上传图片马结合文件包含执行恶意代码

Pass-15-exif_imagetype()

1、要求还是和前两关一样

2、查看源码,发现只是换了个函数,使用了exif_imagetype()来检查是否为图片文件,并且需要开启php_exif模块。

3、上传图片马,结合文件包含执行恶意代码

Pass-16-二次渲染绕过

原理:将一个正常显示的图片,上传到服务器。寻找图片被渲染后与原始图片部分对比仍然相同的数据块部分,将Webshell代码插在该部分,然后上传。

尝试了很多次都以失败告终,没办法,只能附上大佬链接

https://xz.aliyun.com/t/2657#toc-2

Pass-17-条件竞争

1、直接上传.php文件

2、查看源码

这里是条件竞争,先将文件上传到服务器,然后判断文件后缀是否在白名单里,如果在则重命名,否则删除,因此我们可以上传1.php只需要在它删除之前访问即可,可以利用burp的intruder模块不断上传,然后我们不断的访问刷新该地址即可。

Pass-18-条件竞争

1、查看源码发现也存在条件竞争的问题,不过这题对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,因此可以通过不断上传图片马,由于条件竞争可能来不及重命名,从而上传成功。

2、我们可以发现由于条件竞争可能来不及重命名的文件

3、利用文件包含执行恶意代码

Pass-19-00截断

1、查看源代码

发现move_uploaded_file()函数中的img_path是由post参数save_name控制的,因此可以在save_name利用00截断绕过。
注意:POST接收的时候 %00 需要URL编码。

2、上传.php文件

2、在Hex中进行修改

3、成功上传!

Pass-20-数组绕过

1、查看源码

if (!is_array($file)) {
           $file = explode('.', strtolower($file));
       }
// 这组代码判断如果file不是数组的话,就会以点将文件名区分,这样我们的php文件名就没有用了,所以要构造数组结构的数据来绕过这个。

2、上传图片马,抓包,构造数组格式数据

3、成功上传!

总结:

花了差不多两天打完这个靶场,中间还是遇到了很多问题,但也是一步一步的解决掉了一些,希望这两篇文章能够帮到一些刚刚步入安全的师傅。

我们后会有期,我是小白,大佬勿喷!

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:05:46  更:2021-09-14 13:05:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:00:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码