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 1-21(除了19)(白盒) -> 正文阅读

[PHP知识库]【小迪安全】upload-labs 1-21(除了19)(白盒)

【小迪安全】upload-labs 1-21(除了19)(白盒)

Pass-01(前端白名单)

[]
有白名单,且只是前端过滤。

题解

  1. 可以先上传一个.jpg|.png|.gif格式的文件

在这里插入图片描述

  1. 抓包,将格式改为.php,放包
    在这里插入图片描述

  2. 打开上传的文件地址
    在这里插入图片描述
    在这里插入图片描述

注意:你上传到服务器上时必须能以php代码的形式打开,要不然传上去没用

Pass-02(MIME类型)

在这里插入图片描述

$_FILES ['userfile'] ['type']
//文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。


$_FILES ['userfile'] ['tmp_name']
//文件被上传后在服务端储存的临时文件名。

白名单,此代码检测上传文件的 MIME类型

题解

  1. 正常上传一个php文件
    在这里插入图片描述

  2. 抓包,修改 MIME类型 为可以通过过滤的,放包
    在这里插入图片描述
    在这里插入图片描述

  3. 打开上传的文件地址
    在这里插入图片描述

我把之前上传的给删了

Pass-03(黑名单,其他可以解析成php的后缀)

在这里插入图片描述
黑名单,禁止上传的比较少。

trim($FILES['upload_file'] ['name'])
// 去除字符串首尾处的空白字符(或者其他字符)(PHP 4, PHP 5, PHP 7, PHP 8)

$_FILES ['userfile'] ['name']  
// 客户端文件的原名称。

deldot(file_name)
//删除文件名末尾的点       例:shell.php. -> shell.php

strrchr($file_name, '.') 
//搜索 " . " 在字符串中的位置,并返回从该位置到字符串结尾的所有字符
例:shell.php.jpg -> .jpg
经过实际测试,如果有多个相同的会以最右边出现的为准

strtolower($file_ext) 
//把所有字符转换为小写

str_ireplace('::$DATA', '', $file_ext)`
// 把 $ file_ext 中的 "`::$DATA`" 换成第二个表达式(即去除字符串::$DATA)

这题过滤的都可以成为绕过的思路

题解

  1. 上传.php5, .php4, .php3, .phtml, .phps, .pht等后缀的来绕过:这有个前提条件,要有相应的配置文件

配置文件的地址Apache 的配置文件 httpd.conf 文件里的如下图所示的一行

在这里插入图片描述
就如上图所示,它可以把以 phtml 为后缀的 解析成 php 代码。
还可以往上添加其他的如php5等。
所以此题到底要用哪种后缀取决于服务器上的配置文件的,当我们不知道时只能一个一个试。

  1. 直接上传,并打开文件地址
    在这里插入图片描述

Pass-04(黑名单,.htaccess解析)

在这里插入图片描述
黑名单,但黑名单过滤了很多,包括上一关说的phtml之类的。

但是它没有禁 .htaccess 后缀。
而且存入服务器时没有重命名。

.htaccess解析:只有apache能用,生成伪静态页面,可以通过它来实现解析自定义。

<FilesMatch "shell">
Sethandler application/x-httpd-php
Addhandler php5-script .jpg
</FilesMatch>
//当文件名中有shell时,会解析成php

题解

  1. 上传 .htaccess 文件
    在这里插入图片描述

  2. 上传 shell.jpg
    在这里插入图片描述
    在这里插入图片描述

  3. 打开图片地址
    在这里插入图片描述

虽然写的是 jpg 后缀,但还是 php 解析

Pass-05(黑名单,一次过滤,.user.ini)

在这里插入图片描述
黑名单内容没截完,其中存在上一关的.htaccess后缀
但是它只过滤了一次,可以根据它过滤的顺序构建文件名字。

分析:文件名为:shell.php. .

在这里插入图片描述

题解

  1. 上传 shell.jpg
    在这里插入图片描述

  2. 抓包,将 jpg 改为 “php. .”(点空格点),放包
    在这里插入图片描述

  3. 查看图片地址
    在这里插入图片描述
    虽然网址上后面有个" . “,但是服务器上看是没有的,操作系统会把最后的” . "删除。
    在这里插入图片描述

我本来以为Pass-10与Pass-05是一样的,但我认真比对他们的源代码后,发现Pass-05的黑名单中没有Pass-10中的 “.ini” ,然后我就上网去查,查到了.user.ini文件构成的PHP后门 - phith0n (wooyun.js.org)有个 ".user.ini"

相关网址:https://blog.csdn.net/kingdring/article/details/115922458

需要低版本的php

Pass-06(黑名单,大小写)

在这里插入图片描述
黑名单,没有转换为小写的函数。虽然黑名单中要过滤许多参杂着大写的,但是还是不全。

题解

  1. 上传 shell.PHP
    在这里插入图片描述
    成功上传

  2. 打开图片地址
    在这里插入图片描述
    在这里插入图片描述

Pass-07(黑名单,空格绕过)

在这里插入图片描述
黑名单,没有首尾去空。

如果直接在文件名后面加个空格,操作系统会自动把空格去掉,所以只能抓包改后缀。而且传上去的文件会自动把空格删掉。

后面加个空格为什么能绕过黑名单?
代码最后截取的后缀名为 ".php "(后面有个空格),而黑名单里有没有这个,所以就绕过了

题解

  1. 上传 shell.jpg
    在这里插入图片描述

  2. 抓包,修改后缀为".php "(后面有个空格),放包
    在这里插入图片描述

  3. 访问图片地址
    在这里插入图片描述
    没有空格
    在这里插入图片描述

Pass-08(黑名单,点绕过)

在这里插入图片描述
黑名单,没有去除文件名的点这个函数

题解

  1. 上传 shell.php
    在这里插入图片描述

  2. 抓包,后缀修改为".php."(多了一个点),放包
    在这里插入图片描述

  3. 访问图片地址
    在这里插入图片描述

Pass-09(黑名单,::$DATA)

在这里插入图片描述

黑名单,没有去除 ::$DATA

::$DATA绕过: “文件名+’::$DATA’ "
::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持”::$DATA"之前的文件名
必须是windows,必须是php

题解

  1. 上传 shell.php
    在这里插入图片描述
    突然发现
    在这里插入图片描述

  2. 抓包,在文件名后面加个 “::$DATA”,放包
    在这里插入图片描述

  3. 访问图片地址
    在这里插入图片描述

    直接右键访问图片地址,访问的找不到。但是在服务器上又看到了已上传上去了
    在这里插入图片描述
    对比一下发现地址上多了 “::$DATA”,服务器把"::$DATA"自动删除了。
    把这个删除再访问即可。
    在这里插入图片描述

Pass-10(黑名单,一次过滤)

这题可以用Pass-05的一次过滤的思想,详细题解看 Pass-05

如果是黑盒且是一次过滤,那只能一个一个试,把可能的排列顺序都试一遍

Pass-11(黑名单,双写后缀名)

在这里插入图片描述

黑名单,其中有一个删除黑名单中出现的名字的后缀,可是只删除了一次,所以我们可以双写后缀名来绕过。

题解

  1. 上传 shell.pphphp
    在这里插入图片描述

  2. 访问图片地址
    在这里插入图片描述
    在这里插入图片描述
    双写的后缀被删除了一个

Pass-12(白名单,%00截断 GET)

在这里插入图片描述
白名单,GET请求有上传地址(上传路径可控),可以用%00截断

%00截断,对方服务器PHP版本要小于5.3.29

题解

  1. 上传 shell.jpg
    在这里插入图片描述
  2. 抓包,在路径后面加个shell.php%00。这样%00后面的就会被截断,上传的路径从

http://x.x.x.x/upload-labs-master/upload/shell.jpg

变成了

http://x.x.x.x/upload-labs-master/upload/shell2.php%00shell.jpg

? 起作用的只有%00前面的
在这里插入图片描述

  1. 打开图片地址
    直接复制图片地址出来是这个
    在这里插入图片描述
    需要把 shell2.php 后面的给删掉
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ytCy9sw-1647527262831)(C:\Users\konglong\AppData\Roaming\Typora\typora-user-images\image-20220317205152759.png)]
    已经上传上去了
    在这里插入图片描述

Pass-13(白名单,%00截断 POST)

在这里插入图片描述
白名单,和上一关相似,不过这关是POST请求有上传地址

POST请求上的%00需要url解码,因为GET请求是写在网站地址上的会自动解码,但POST不是需要手动解码。

题解

  1. 上传 shell.jpg
    在这里插入图片描述

  2. 抓包,修改
    在这里插入图片描述

  3. url解码,放包
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E0DtUPUB-1647527262833)(C:\Users\konglong\AppData\Roaming\Typora\typora-user-images\image-20220317210855354.png)]
    在这里插入图片描述

  4. 访问图片地址
    在这里插入图片描述
    在这里插入图片描述

Pass-14

在这里插入图片描述
文件包含漏洞和文件上传漏洞结合,通过文件头判断了是否为图片,所以要上传一个图片码

  • 文件包含漏洞

    让打开的不管是什么后缀 都会用 有文件包含漏洞的脚本语言来执行 在这里插入图片描述

  • 图片码
    ? 命令行形成图片码的命令为

copy zelda.jpg(文件名) /b + shell.php(文件名) /a webshell.jpg

? 图片码最后存在恶意代码
在这里插入图片描述
注意:如果恶意代码的前面显示不全,把那原本写有恶意代码的文件的最前面加上空格,再制作图片码即可
在这里插入图片描述

题解

  1. 制作 一个图片码并上传
    在这里插入图片描述
    在这里插入图片描述

  2. 点开 文件包含漏洞
    在这里插入图片描述

  3. 再网址后面加 ?file=upload/文件名

  • file 是给出的代码中说的参数名

  • 文件名还是看看图片地址上的名字,可能上传时会改名字

http://x.x.x.x/upload-labs-master/upload/2620220317214430.jpg(这是图片地址)

http://x.x.x.x/upload-labs-master/include.php(这是文件包含漏洞的地址)

如果直接加?file=文件名就会在 upload-labs-master 文件夹里找图片,这是肯定找不到的,所以要让它在upload 文件夹里面找,需要在文件名前面加个文件夹 ?file=upload/文件名。如果要在上一级文件夹里面找,就要在文件名前加 ../?file=../文件名。要往上多少级就要写几个../

在这里插入图片描述

Pass-15(与文件包含漏洞结合,getimagesize)

在这里插入图片描述
白名单,文件包含漏洞和文件上传漏洞结合

这题判断是否为图片,用的是getimagesize函数。使用图片码

getimagesize()
函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。

题解

  1. 上传 webshell2.jpeg(图片码)
    在这里插入图片描述

  2. 使用有文件包含漏洞的页面打开
    在这里插入图片描述

Pass-16(与文件包含漏洞结合,exif_imagetype)

在这里插入图片描述

白名单,与文件上传漏洞结合,用exif_imagetype()函数判断文件类型

exif_imagetype() 
判断一个图像的类型,读取一个图像的第一个字节并检查其签名。

打开php_exif模块
在这里插入图片描述

或者在 php.ini中把 extension=php_exif.dll 给解注释
在这里插入图片描述

题解

  1. 上传 webshell.jpeg(图片码)
    在这里插入图片描述

  2. 在存在文件包含漏洞中打开图片
    在这里插入图片描述

Pass-17(二次渲染)

在这里插入图片描述

imagecreatefromjpeg()
由文件或 URL 创建一个新图象。

上传的图片存在恶意代码
在这里插入图片描述

经过渲染后没有了恶意代码
在这里插入图片描述
这个手工注入不好去绕过,网上说用脚本我还没去了解

Pass-18(条件竞争)


它先把文件保存再服务器中,再判断。这样就需要使用条件竞争

条件竞争:当一个文件被使用时,不能进行其他操作(重命名、删除等)

本题在第一次上传服务器没有改名字,如果改了名字就不好办了

题解

  1. 上传 shell.php
    在这里插入图片描述

  2. 抓包,选择一个修改也没问题的数值,把数据包发送到 Intruder 再在 Positions 模块里选择那个可以修改的数值
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 进行多次发包
    在这里插入图片描述
    点击 右上角的Start attack

  4. 一直重新加载文件地址,直到打开网页
    这是靠运气的,可以在自己搭建的网站源码的 upload 文件里,等一等就会出现上传的文件并会马上消失。

Pass-19(还没写)

之后再研究

Pass-20(黑名单,文件夹命名)

在这里插入图片描述

黑名单,自定义名字

取一个 upload-19.php/. 这样的名字。虽然这显示 upload-19 是一个文件夹,但是最后真正上传的还是 upload-19.php

题解

  1. 上传 shell.php,取名为 upload-19.php/.
    在这里插入图片描述
    看服务器上上传的文件
    在这里插入图片描述

  2. 访问文件地址
    在这里插入图片描述

Pass-21(白名单,文件夹命名)

在这里插入图片描述
白名单,自定义名字

所以要命名为 upload-20.php/.jpg 后面的 jpg 就是为了能过白名单。

我们需要自己把名字划分为数组,具体分析如图:
在这里插入图片描述

题解

  1. 上传 shell.php 并命名为 upload-20.php/.jpg
    在这里插入图片描述

  2. 抓包,自定义数组,此时数组为

    Array([0]=>‘upload-20.php/’ [1]=>’’ [2]=>‘jpg’),放包
    在这里插入图片描述

  3. 访问文件地址
    在这里插入图片描述
    在这里插入图片描述

此题我多次放包得到的结果为“文件上传失败”,其实显示这个说明已经成功绕过,我本来以为是还有什么问题(比如文件地址不可以那样写),但是最后一次又成功上传了,这我就不知道是什么问题了,可能环境不太稳定吧。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:28:31  更:2022-03-21 20:29:49 
 
开发: 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年12日历 -2024/12/26 16:44:15-

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