文件上传漏洞篇讲义附带upload靶场WP【1-13】

admin 2023年3月9日08:17:04评论91 views字数 11572阅读38分34秒阅读模式

关于文件上传漏洞的前言

在现在越来越安全的体系下,SQL Injection 这类漏洞已经很难在安全性很高地站点出现

比如一些不错的.NET 或 JAVA 的框架基本上都是参数化传递用户输入,直接封死注入攻击

而在非 PHP的web安全中最有威力的攻击主要有两种

  • 第一种是SQL Injection
  • 第二种便是上传绕过漏洞

相关PHP的还有远程文件包含代码执行漏洞

一般只要能注册普通用户,时常就能找到上传头像或附件之类的地方

这些地方就是好的突破点,只要有办法绕过上传验证

并拿到一句话木马的 web 路径基本上就能搞下这个站点

文件上传漏洞的描述

文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤

而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件

如常见的头像上传,图片上传,OA办公文件上传,媒体上传,允许用户上传文件

如果过滤不严格,恶意用户还会利用文件上传漏洞,上传有害的可执行脚本文件到服务器中

来获取服务器的权限,或者进一步危害服务器

网站Web应用都有一些文件上传功能,比如文档、图片、头像、视频上传

当上传功能的实现代码没有严格校验上传文件的后缀和文件类型

此时攻击者就可以上传一个webshell到一个Web可访问的目录上

并将恶意文件传递给如PHP解释器去执行

之后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理,服务器命令执行等恶意操作

还有一部分是攻击者通过Web服务器的解析漏洞来突破Web应用程序的防护

文件上传漏洞的危害

非法(非合法权限)用户可以上传恶意文件来控制整个网站,甚至是控制服务器

这个恶意脚本文件,又被称为 webshell

上传 webshell 后门 可以很方便地查看服务器信息,查看目录,执行系统命令等

上传漏洞与SQL注入或 XSS相比 , 其风险更大

可以获取数据库信息,可以对服务器提权,获取内网权限

如何查找及判断文件上传漏洞

黑盒查找

文件后台

进入网站后台不一定获得网站权限,可以从后台获取网站权限

会员中心

通过图片上传

文件扫描

使用工具扫描出后台路径

白盒查找

通过代码分析到上传漏洞

查找文件上传功能

文件上传的知识

文件上传的过程

客户端 :选择发送的文件->服务器接收->网站程序判断->临时文件->移动到指定的路径

服务器 :接收的资源程序

服务器接收资源的代码

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>

客户端文件上传的代码

<html>
<head></head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

文件上传的返回值

文件上传时会返回一些代码到客户端

客户端根据这些值判断上传是否正常 

  • 值:0  没有错误发生,文件上传成功。
  • 值:1  上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值 
  • 值:2  上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定 的值
  • 值:3  文件只有部分被上传
  • 值:4  没有文件被上传

文件上传漏洞分类

文件上传漏洞第一种是直接文件上传,这种漏洞类型是属于高危漏洞的一种

能直接 getshell,而且没有任何限制,攻击者很容易通过上传点,获取网站的控制权限

另外一种是有条件的上传漏洞,这种漏洞一般是开发者经验不足,对文件上传做了简单的限制

如简单的前端认证,文件头文件检测,这种检测行为,可以完全绕过的

另外一个方面就是权限认证没处理,没有对文件上传页面进行权限认证

匿名者就能访问上传文件,上传网页后门到网站目录,控制整个网站

还有一些上传逻辑有问题,导致文件上传可以被绕过,上传后门到网站上

有的文件上传漏洞则是通过中间件或者系统特性上传可以被服务器解析脚本文件

从而导致网站可被控制

文件上传漏洞的修复方案

  • 在网站中需要存在上传模块,需要做好权限认证,不能让匿名用户可访问。
  • 文件上传目录设置为禁止脚本文件执行。这样设置即使被上传后门的动态脚本也不能解析,导致攻击者放弃这个攻击途径。 
  • 设置上传白名单,白名单只允许图片上传如,除了jpg png gif 其他文件均不允许上传

文件上传漏洞的攻击方法

寻找测试网站的文件上传的模块,常见头像上传,修改上传,文件编辑器中文件上传,图片上传、媒体上传等

通过抓包上传恶意的文件进行测试

上传后缀名为 asp php aspx 等的动态语言脚本,查看上传时的返回信息,判断是否能直接上传

如果不能直接上传,再进行测试上传突破

例如上传文件的时候只允许图片格式的后缀,但是修改文件时,却没有限制后缀名

图片文件可以修改成动态语言格式如 php

则可能访问这个文件的 URL 直接 getshell,可以控制网站

常见的网站文件后缀名

可执行脚本的文件后缀名,可被网站目录解析

以下是常见的后缀名

asp asa cdx cer php aspx ashx jsp php3 php.a shtml phtml 

有些网站会对 asp 或者 php 进行过滤转成空可用这些后缀名

aspasp asaspp phpphp

任意文件上传漏洞

任意文件上传漏洞又名文件直接上传漏洞

这种漏洞危害极大,如果攻击者能直接上传恶意脚本到网站存放的目录

且这个目录可解析动态脚本语言

那么攻击者就能够直接获取网站权限,甚至进一步权限提升,控制服务器

文件上传漏洞需要注意的地方

对文件上传类型进行区分,是属于编辑器文件上传,还是属于第三方应用,还是会员中心。

要确保文件上传是什么类型,就用什么类型方法对它进行后期的测试。

常规类:                     扫描获取上传,会员中心上传,后台系统上传,各种途径上传
CMS类: 已知CMS源码,搜索已知cms漏洞
编辑器类: Ckeditor,fckeditor,kindeditor,xxxeditor,也是搜索相关编辑器漏洞
配合解析漏洞下的文件类型后门: 可以通过解析漏洞,上传包含后门代码的图片

文件上传在实际应用中的方式

方法一

  • 先直接传一个PHP,实战先传马
  • 实战先传一个正常的图片,看看有无返回存储地址
  • 如果能直接上传并解析,已离成功不远

方法二

  • 先传一个shell,然后进行修改
  • connect-Type:image/jpeg,看看是否可以进行绕过,如果不行,在上传内容添加GIF89a
  • 当然上传了还得看是否能够被解析为php,所有的上传都要考虑是否能够被解析

方法三

  • 上传一个abc.abcd,目的只是为了查看是否为白名单还是黑名单绕过

  • 黑名单限制一般为此文件类型不允许上传,考虑双写,大小写,空格,php2,php3,php4,php5,pht

phtml,等方式

  • 我们继续上传一个./htaccess文件

  • .htaccess文件能够设置服务器的解析文件的格式,匹配到dudu就已php的格式来解析,继而上传马

  • 如果说.htaccess不能上传,接下来上传一个.user.ini,继而上传一个马

方法四

  • 如果白名单限制上传

  • 考虑00截断上传

  • 文件包含漏洞+图片马

  • 文件包含漏洞+二次渲染+图片马

方法五

  • 上传的东西是否被服务器很快的删除或者移除,或者说上传成功,但是无法访问,就得考虑条件竞争

  • 以上均不行,考虑逻辑层面的思路

任意文件上传代码分析

直接获取文件名 把上传的临时文件移动到 hackable/uploads 目录下

低防护文件上传漏洞源码
<?php

if( isset( $_POST[ 'Upload' ] ) ) {
// Where are we going to be writing to?
$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

// Can we move the file to the upload folder?
if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
// No
echo '<pre>Your image was not uploaded.</pre>';
}
else {
// Yes!
echo "<pre>{$target_path} succesfully uploaded!</pre>";
}
}

?>

直接上传文件 网页会返回路径 访问 URL即可 getshell

<?php
phpinfo();
?>
<?php @ eval($_POST ["cmd"]) ?>

上传的文件可以改成其他恶意脚本或者后门,如一句话,后门大马 即可获得 webshell

绕过前端JS检测上传

在文件上传时,用户选择文件时,或者提交时,有些网站会对前端文件名进行验证

一般是检测后缀名,是否为上传的格式

如果上传的格式不对,则弹出提示文字

此时数据包并没有提交到服务器,只是在客户端通过JS文件进行校验

验证不通过则不会提交到服务器进行处理

Pass-01:

绕过JS检测方法

  • 按 F12 使用网页审计元素,把校验的上传文件后缀名文件删除,即可上传。

  • 把恶意文件改成 js 允许上传的文件后缀,如 jpg、gif、png 等,再通过抓包工具抓取 post 的数据包把后缀名改成可执行的脚本后缀如 php 、asp、jsp、net 等 即可绕过上传

前端JS检测后缀代码分析

客户段 html 上传文件时会调用 checkFile 函数,首先获取文件后缀名

如果文件为空,则弹出“请选择要上传的文件”

如果文件不为空,获取上传的文件后缀名不为 .jpg .png .gif 其中一种则提示“改文件不允许上传”

上传失败

Pass-02:

Content-type检测上传

有些上传模块,会对 http 的类型头进行检测

如果是图片类型,允许上传文件到服务器, 否则返回上传失败

因为服务端是通过 content-type 判断类型

content-type 在客户端可被修改

则此文件上传也有可能被绕过的风险

Content-type检测上传攻击

上传脚本文件,抓包把 content-type 修改成 image/jpeg 即可绕过上传

content-type 类型:

常见的媒体格式类型如下:

text/html : HTML格式
text/plain : 纯文本格式
text/xml : XML格式
image/gif : gif图片格式
image/jpeg : jpg图片格式
image/png: png图片格式

以application开头的媒体格式类型:

application/xhtml+xml : XHTML格式
application/xml: XML数据格式
application/atom+xml : Atom XML聚合格式
application/json: JSON数据格式
application/pdf: pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

另外一种常见的媒体格式是上传文件之时使用的:

multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
POST /upload/Pass-02/index.php HTTP/1.1
Host: 192.168.31.231
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------340506190635237033453345854867
Content-Length: 391
Origin: http://192.168.31.231
Connection: close
Referer: http://192.168.31.231/upload/Pass-02/index.php
Upgrade-Insecure-Requests: 1

-----------------------------340506190635237033453345854867
Content-Disposition: form-data; name="upload_file"; filename="1.png.php"
Content-Type: application/octet-stream

<?php @ eval($_POST ["cmd"]) ?>
-----------------------------340506190635237033453345854867
Content-Disposition: form-data; name="submit"

上传
-----------------------------340506190635237033453345854867--

Pass-03:

绕过黑名单上传

上传模块,有时候会写成黑名单限制

在上传文件的时获取后缀名,再把后缀名与程序中黑名单进行检测

如果后缀名在黑名单的列表内,文件将禁止文件上传

这下好了,直接把所有的常用脚本语言的shell文件后缀全部禁止了

那么这样就万无一失没有漏洞了吗?其实不然

当黑名单把所有脚本后缀都禁止的时候,还会由于管理人员配置不当或者Apache本身的漏洞而造成漏洞的。

这里我们补充一点关于Apache的知识:1.php

Apache解析顺序是从右到左开始解析文件后缀的 如果最右侧扩展名不能识别的话,就继续往左判断 直到遇到可以解析的文件后缀为止 Apache的httpd.conf中可以进行配置 规定哪些文件后缀是以php格式来解析 这是属于管理员的配置不当导致的漏洞

黑名单代码分析

首先是检测 submit 是否有值,获取文件的后缀名,进行黑名单对比

后缀名不在黑名单内,允许上传

trim() 函数移除字符串两侧的空白字符或其他预定义字符。

str_ireplace() 函数替换字符串中的一些字符(不区分大小写)。

substr() 函数返回字符串的一部分。

strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。

绕过黑名单上传的攻击

上传图片时,如果提示不允许 php、asp 这种信息提示,可判断为黑名单限制

上传黑名单以外的后缀名即可

在 iis 里 asp 禁止上传了,可以上传 asa cer cdx 这些后缀

如在网站里允许.net 执行 可以上传 ashx 代替 aspx。如果网站可以执行这些脚本

通过上传后门即可获取 webshell。

在不同的中间件中有特殊的情况

如果在 apache 可以开启 application/x-httpd-php

 AddType application/x-httpd-php .php .phtml .php3

后缀名为 phtml 、php3  均被解析成 php

有的 apache 版本默认就会开启

上传目标中间件可支持的环境的语言脚本即可,如.phtml、php3

这里我们通关的方式就选择配置不当这种,因为集成环境中php是作为Apache的模块来工作的

一些解析配置比较安全,虽然Apache本身还是存在解析漏洞

但是php工作的时候则不会按照它的规则来执行

需要对httpd.conf文件进行修改。

要有形同下面这样的配置

AddType application/x-httpd-php .php .phtml .php3

这句话的意思就是服务器会把.php、.phtml、.php3这几个后缀名的文件都用php格式来解析。

Pass-04:

Htaccess 重写解析绕过上传

上传模块中黑名单过滤了所有的能执行的后缀名

如果允许上传.htaccess文件

htaccess 文件的作用是 :

可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定 IP 地址的用户、只允许特定 IP 地址的用户、禁止目录列表,以及使用其他文件作为 index 文件等一些功能。

在 .htaccess 里写入

 SetHandler application/x-httpd-php .jpg

则可以文件重写成 php 文件

要 .htaccess 的规则生效

则需要在 apache 开启 rewrite 重写模块,

因为 apache 是多数都开启这个模块,所以规则一般都生效。

黑名单代码分析

如 果 submit 有 值

$deny_ext = array(".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",。pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",".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文件和jpg文件

Htaccess重写解析攻击

也就是说,只要我们上传一个写好的.htaccess文件后

可以达到将.jgp文件解析为.php文件

从而达到绕过过滤的目的

首先编写.htaccess文件

<FilesMatch "jpg">
SetHandler application/x-httpd-php
</FilesMatch>

或者

 AddType application/x-httpd-php .jpg

上传成功 此时就可以上传包含php代码的.jpg文件了

Pass-05:

提示:

上传目录存在php文件(readme.php)

解题思路:

做了一个黑名单,禁止了.htaccess和常见的php

上传作用域配置文件回显信息绕过

先上传.user.ini

作用域是当前文件夹和当前文件夹中的子文件

包含指定的文件,显示在页面上

.user.ini内容

Auto_prepend_file=test.jpg  

再上传

test.jpg

查看readme.php文件

注意的要点:

php 5.4.45-nts+apache 版本

Auto_prepend_file=test.jpg

test.php 转换成  test.jpg上传

连接readme.php文件即可

Pass-06:

大小写绕过上传

有的上传模块 后缀名采用黑名单判断

但是没有对后缀名的大小写进行严格判断

导致可以更改后缀大小写可以被绕过

确实
$file_ext = strtolower($file_ext); //转换为小写
如 PHP、 Php、 phP、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",".asp

x",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx", ".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

黑名单大小写绕过攻击

仔细阅读黑名单,查看是否有被忽略的后缀名,当前可以使用 phP 绕过

Pass-07:

空格绕过上传

在上传模块里,采用黑名单上传,如果没有对空格进行去掉可能被绕过。

空格绕过上传代码分析

缺少
$file_name = trim($_FILES['upload_file']['name']);

检测 submit 后 上传目录存在时,进入黑名单判断。

如果文件后缀名在黑名单里。不允许上传

但是文件后缀名,没有过滤空格,可以添加空格绕过。

空格绕过上传攻击

抓包上传,在后缀名后添加空格

Pass-08:

利用windows系统特征绕过上传

.号绕过原理 Windows系统下,文件后缀名最后一个点会被自动去除。 例如: Windows下新建一个1.php.文件,查看会发现创建的文件是1.php

统特征绕过漏洞分析源码

缺少
$file_name = deldot($file_name);//删除文件名末尾的点

同样是黑名单禁止上传,但是可以上传.php.这种文件后缀。

系统特征绕过攻击

抓包修改在后缀名后加上.即可绕过。

Pass-09:

NTFS交换数据流::$DATA绕过上传

如果后缀名没有对::$DATA 进行判断,利用 windows 系统 NTFS 特征可以绕过上传。

缺失

$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA

这道题利用的是Windows下NTFS文件系统的一个特性,即NTFS文件系统的存储数据流的一个属性 DATA 时,就是请求 a.asp 本身的数据,如果a.asp 还包含了其他的数据流,比如 a.asp:lake2.asp,请求 a.asp:lake2.asp::$DATA,则是请求a.asp中的流数据lake2.asp的流数据内容。

NTFS交换数据流::$DATA代码分析

$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",".asp
x",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx", ".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

同样用黑名单过滤后缀名。但是程序中没有对::$DATA 进行过滤可以添

加::$DATA 绕过上传。

NTFS交换数据流::$DATA攻击绕过上传

burpsuite 抓包,修改后缀名为 php::$DATA

打开连接时,记得删除后缀::$DATA

Pass-10:

利用windows环境的叠加特征绕过上传

在 windwos 中如果上传文件名 sb.php:.jpg 的时候

会在目录下生产空白的文件名 sb.php

再利用 php 和 windows 环境的叠加属性

以下符号在正则匹配时相等

双引号" 等于 点号.

大于符号> 等于 问号? 小于符号< 等于 星号*

文件名.<   1.a   1.< 1.>

或文件名.<<<    1.php   1.<<<   1.>>>

或文件名.>>>

黑名单源码分析

同样是黑名单匹配,把.去掉 把空格也过滤了。::$data 也过滤了。

利用windows环境的叠加特征绕过上传攻击

首先抓包上传 666.php:.jpg 上传会在目录里生成666.php 空白文件

接着再次提交把666.php 改成 666.>>>

Pass-11:

双写后缀名绕过上传

在上传模块,有的代码会把黑名单的后缀名替换成空

例如 a.php 会把 php 替换成空

但是可以使用双写绕过例如 asaspp,pphphp

即可绕过上传

文件上传双写绕过漏洞分析

同样是黑名单过滤。str_ireplace 对上传的后缀名是黑名单内的字符串转换成空。

文件上传双写绕过攻击

抓包上传,把后缀名改成 pphphp 即可绕过上传

Pass-12:

目录可控%00截断绕过上传

以上都是一些黑名单被绕过的,如果黑名单上传检测后,没有限定后缀名,绕过的方法很多

与黑名单相对的就是白名单,使用白名单验证会相对比较安全,因为只允许指定的文件后缀名

但是如果有可控的参数目录,也存在被绕过的风险。

上传参数目录可控代码分析

代码中使用白名单限制上传的文件后缀名, 只允许指定的图片格式。

但是$_GET['save_path']服务器接受客户端的值,这个值可被客户端修改。

所以会留下安全问题。

文件上传参数目录可控攻击

上传参数可控

当 gpc 关闭的情况下,可以用%00 对目录或者文件名进行截断

php 版本小于 5.3.4

首先截断攻击,抓包上传将%00 自动截断后门内容。

路径可控如果拼接save_path=…/upload/123.php就相当于上传了一个123.phpsb.jpg

接下来想办法吧后面的sb.jpg去掉用%00截段

123.php%00sb.jpg

在此之前,先来了解一下截断上传的原理

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束

所以当url中出现%00时就会认为读取已结束,而忽略后面上传的文件或图片,只上传截断前的文件或图片

可以通过一个例子详解的了解一下

<%
path="upload/web/"
file="1.jpg"
upfilename=path & file '最后的上传地址
%>


将路径改为path="upload/web/1.php%00",那么拼接之后,文件上传时就变成了

"upload/web/1.php%001.jpg",这时上传便将1.php上传进去,而1.jpg则被截断

我理解的就是相对于省略符号,将后面的内容给省略了,相当于MySQL注入语句中的#、--+等

原来截断了1 .jpg,但是1.jpg的内容是被1.php给继承过去了

自己创建1.php

Pass-13:

目录可控POST绕过上传

上面是 GET 请求的,可以直接在 url 输入%00 即可截断

但是在 post 下直接注入%00 是不行的,需要把%00 解码变成空白符

截断才有效。才能把目录截断成文件名

目录可控post上传代码分析

这段代码同样是白名单限制后缀名

$_POST['save_path']是接收客户端提交的值

客户端可任意修改

所以会产生安全漏洞

目录可控上传攻击

文件名可控,通过抓包修改可控的参数,与不同的中间件的缺陷配合使用。

使用%00 截断文件名

再 post 环境下%00 要经过  编码

如果目录当前目录不能解析脚本,可以移动到其他目录再进行截断提交。


原文始发于微信公众号(猫因的安全):文件上传漏洞篇讲义附带upload靶场WP【1-13】

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月9日08:17:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   文件上传漏洞篇讲义附带upload靶场WP【1-13】https://cn-sec.com/archives/1233266.html

发表评论

匿名网友 填写信息