首页 » 网站建设 » phpswfupload实例技巧_三十一文件上传马脚之Uploadlabs靶场及CTF题目0110四

phpswfupload实例技巧_三十一文件上传马脚之Uploadlabs靶场及CTF题目0110四

访客 2024-11-02 0

扫一扫用手机浏览

文章目录 [+]

Upload-labs是一个利用php措辞编写,专门网络渗透测试和CTF中碰着的各种上传漏洞的靶场,旨在帮助大家对上传漏洞有一个全面的理解。
目前一共20关,每一关都包含不同的上传办法。

项目地址:https://github.com/c0ny1/upload-labs

phpswfupload实例技巧_三十一文件上传马脚之Uploadlabs靶场及CTF题目0110四

运行环境:

phpswfupload实例技巧_三十一文件上传马脚之Uploadlabs靶场及CTF题目0110四
(图片来自网络侵删)

操作系统:windows、Linux

php版本:推举5.2.17(其他版本可能会导致部分Pass无法打破)

php组件:php_gd2、php_exif(部分Pass须要开启这两个组件)

文件上传漏洞的思维导图如下所示,详细覆盖了我们前面三篇文章的各种方法。

个中,做事端监测内容如下所示:

2.Windows环境快速搭建

本项目供应了一个Windows环境下的集成环境,集成环境绿色免安装,解压即可利用。
下载地址如下:https://github.com/c0ny1/upload-labs/releases

第一步,从Github高下载环境和题目压缩包。

第二步,解压“upload-labs-env-win-0.1.7z”如下图所示。
第一次运行或者每次改变靶机环境的目录时,都要运行一下modify_path.bat文件之后,再运行phpStudy.exe启动环境。

第三步,双击“modify_path.bat”文件运行如下图所示。
modify_path.bat浸染在于修正phpStudy.ini、httpd.conf、php.ini三个配置文件中的路径为最新的路径。

第四步,接着运行phpStudy.exe文件。
PS:如果环境无法运行,请参考phpStudy的文档manual.chm。

第五步,然后可以看到“WWW”文件夹中包括了20道题目,如下图所示。

第六步,启动phpStudy,然后访问地址 http://127.0.0.1/Pass-01/index.php,这样我们的靶场就成功安装好了。

同样,我们可以查看隐蔽代码,点击右上角“显示源码”按钮。

也可以查看每道题目对应的提示,比如第一题的提示显示如下图所示。

二.文件上传漏洞CTF之01-05关Pass-01

第一道题目查看提示,显示这是一个JS本地文件验证的关卡。

办理方法: 须要删除 οnsubmit=“return checkFile()” 函数,再进行上传。

如果直接上传包含一句话木马的“test.php”文件,则会提示如下图所示的缺点。

<?php eval($_POST[eastmount]); ?>

这里我们安装“OWASP Mantra Janus”渗透测试专用浏览器,打开靶场如下图所示。

OWASP Mantra 是由 Mantra 团队开拓,面向渗透测试职员、Web 开拓职员和安全专业职员的安全工具套件 (基于浏览器, 目前是 Chromium 和 Firefox ),包括扩展程序和脚本凑集。

第一步,利用OWASP Mantra Janus浏览器打开,右键点击“利用Firebug查看元素”。

第二步,找到对应代码并删除 οnsubmit=“return checkFile()”。

此时成功上传,如下图所示。

做事器的文件夹也能看到该文件。

当然作为渗透职员,此时我们是看不到目标网站的文件目录。
我们可以考试测验复制图像地址,如下图所示:

第三步,直接用浏览器打开该链接 http://127.0.0.1/upload/test.php,如下图所示,显示空缺,但表示其上传成功。

第四步,打开菜刀,添加地址和密码“eastmount”。

可以获取文件目录,如下图所示。

讲到这里,第一道题目就讲解完毕,紧张是如何绕过JS验证。

Pass-02

第二道题目通过查看提示,创造是MIME文件绕过。

办理方案: MIME绕过文件上传,考试测验对Content-Type进行修正,核心思想是将上传的PHP文件Content-Type修正为“image/jpeg”。

对应的检讨代码如下所示:

$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { 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 = '文件类型禁绝确,请重新上传!
'; } } else { $msg = UPLOAD_PATH.'文件夹不存在,请手工创建!
'; }}

接下来我们利用BurpSuite进行数据包拦截及修正。

配置过程详见这篇文章:https://blog.csdn.net/Eastmount/article/details/98469967

第一步,配置浏览器代理。

新建代理:右上角图标"new tab"–>“tools”–>“poxy”–>“Foxyproxy standard”–>“options”–>“add new poxy”–>“确定”。

然后设置为本地代理“127.0.0.1”,端口号为“8080”。

第二步,打开BurpSuite并设置Proxy,同样为“127.0.0.1:8080”。

第三步,上传包含一句话木马的图片“mm1.jpg”,如下图所示。

第四步,通过BurpSuite抓包获取干系信息。

可以看到里面包含了PHP一句话木马的代码。

第五步,将“mm1.jpg”后缀修正为“mm1.php”,点击“Forward”按钮。

第六步,成功上传了该“mm1.php”文件如下图所示,接着复制图像地址。

第七步,将复制的地址用浏览器打开,http://127.0.0.1/upload/mm1.php。

上传成功之后,通过Caidao软件可以获取目标做事器的文件目录。

Pass-03

查看提示是“禁止上传 .asp|.aspx|.php|”

查看源代码创造过滤了点、大小写、空格、data,这里考试测验php345绕过,也可用Apache解析漏洞。

PHP345文件绕过上传

PHP3代表PHP版本3,用于文件绕过检测。
一样平常的软件都是向下兼容,PHP3代码,PHP5同样兼容能够实行。
以是会将包含一句话木马的“fox.php”文件修正为“fox.php5”文件,从而正常上传。

Apache解析漏洞

Apache是从右到左判断解析,如果为不可识别解析,就再往左判断。
比如1.php.xxx对Apache来说xxx是不可解析的,以是就会解析成1.php,这便是该漏洞的实现事理。

第一步,如果直接上传“test.php”文件,则会提示如下缺点:

第二步,将文件名“test.php”修正为“test.php4”,创造成功上传。

第三步,接下来复制图片地址(http://127.0.0.1/upload/201912161548204885.php4)并进行访问。

第四步,利用Caidao工具即可获取做事器目录。

Pass-04

查看提示是禁止php345上传和大小写漏洞。

如果连续上传“test.php4”文件,则会提示缺点。

办理方案: 这里我们利用“.htaccess”文件绕过上传。

.htaccess文件或者“分布式配置文件”供应了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,个中的指令浸染于此目录及其所有子目录。

大略来说,htaccess文件是Apache做事器中的一个配置文件,它卖力干系目录下的网页配置。
它的功能有:网页301重定向、自定义404缺点页面、改变文件扩展名、许可/阻挡特定的用户或目录的访问、禁止目录列表、配置默认文档等。
这里我们须要用到的是改变文件扩展名,新建一个“.htaccess”文件,代码如下:

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

这里是把fox名字的文件全都以php来运行,须要分外文件进行创建,如Notepad++。

首先上传这个“.htaccess”文件。

再上传一个“eastmount.jpg”文件,它会将这张图片以php来解析。

复制图片地址,然后用浏览器打开,显示如下图所示,它因此php格式解析的,而不显示成一张jpg图片。
之前上传的“mm1.jpg”因此图片办法打开。

eastmount.jpg

mm1.jpg

接着打开中国菜刀,获取了该做事器的目录。

Pass-05

查看提示禁止了“.htaccess”文件绕过。

查看源代码,创造它少了大小写转换的代码。

$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $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); //首尾去空 if (!in_array($file_ext, $deny_ext)) { $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext; if (move_uploaded_file($temp_file, $img_path)) { $is_upload = true; } else { $msg = '上传出错!
'; } } else { $msg = '此文件类型不许可上传!
'; } } else { $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!
'; }}

办理方案: 利用大小写绕过方法。
虽然提示中禁止了“.pHp”中间大写,但没有禁止末位的大写,以是这里利用“.phP”。
把稳,好的防御代码会获取后缀名并全部转换为小写,再定义黑白名单进行校验。

首先,上传“test1.phP”文件。

创造文件成功上传。

接着复制图像地址打开如下图所示,它包含了一句话木马“<?php eval($_POST[eastmount]); ?>”,末了利用Caidao工具即可获取做事器文件目录。

三.文件上传漏洞CTF之06-10关Pass-06

第6关的提示信息如下所示:

查看源代码,创造首位去空的代码没有了,这里考试测验加空格。

$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $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 = $_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 if (!in_array($file_ext, $deny_ext)) { $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext; if (move_uploaded_file($temp_file,$img_path)) { $is_upload = true; } else { $msg = '上传出错!
'; } } else { $msg = '此文件不许可上传'; } } else { $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!
'; }}

考试测验上传包含一句话木马的图片文件“mm2.jpg”。

如果通过BurpSuite抓包,直接将“mm2.jpg”修正后缀为“mm2.php”,则会提示如下缺点。

这里须要增加空格,即“mm2.php ”,BurpSuite修正如下图所示。

点击“Forward”按钮,此时成功上传。

接着复制图片地址并打开,末了连接Caidao工具即可。

Pass-07

提示信息为“禁止上传所有可以解析的后缀”。

查看源代码,创造这句代码不在了。

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

接着上传一张图片“mm2.jpg”,通过BurpSuite抓包,我们将文件名“mm2.jpg”修正为“mm3.jpg.”,如下图所示。

成功上传之后如下图所示。

我们复制图片地址(http://127.0.0.1/upload/mm3.php.)并用浏览器打开。

接着采取Caidao连接。

成功获取做事器的文件目录。

Pass-08

查看提示还是常规的方法绕过。

查看源代码创造去除“::$DATA”文件的语句没有了,这里考试测验加入“::$DATA”。

::$DATA绕过只能用于Windows,大略来说,便是在数据后面加上::$DATA实现绕过,fox.php::$DATA返回fox.php数据。

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

上传一个“mm2.jpg”图片,然后通过BurpSuite抓包修正为“mm8.php::$DATA”。

上传成功之后如下图所示:

复制图片地址http://127.0.0.1/upload/201912161714288617.php::$data,并删除后面的“::$data”进行访问。

打开Caidao工具并考试测验连接。

成功获取目标的文件夹目录,如下图所示:

Pass-09

查看提示创造该关值许可上传图片后缀的文件。

查看源代码,创造15行文件不一样,路径拼接的是处理后的文件名,于是布局“fox.php. .”(点+空格+点),考试测验进行绕过。

上传一张“mm2.jpg”的图片,考试测验修正为“mm2.php. .”进行绕过。

上传成功之后,复制图片地址(http://127.0.0.1/upload/mm2.php.)并访问。
把稳,“mm2.php.”后面没有点也能成功访问,这都是Windows的一些特性。

Pass-10

查看提示创造该当是过滤后缀。

查看源代码,这里是将问题后缀名更换为空,也便是“php.php”会变成“php.”,但是这里只过滤一次。
查看第8行代码,创造它把文件后缀名更换为空。

这里把稳写法,“phphpp”、“pphphp”上传比较。

第一步,考试测验上传一个文件“php123.phphpp”。

第二步,上传成功,复制图像地址并打开。

第三步,此时图片的地址变为“http://127.0.0.1/upload/123.hpp”,访问如下图所示。

第四步,“php123.phphpp”变成了“123.hpp”,它把后缀“php”过滤了,剩一个“hpp”。
如果我们的后缀设置为“pphphp”,然后再进行拼接上传。

上传成功之后的地址为“http://127.0.0.1/upload/123.php”。

末了再调用Caidao工具即可获取目录。

四.总结

写到这里,这篇根本性文章就此结束,末了希望这篇根本性文章对您有所帮助。
统共包括包括10关,其技能分别是:

第一关:JS验证绕过

第二关:MIME绕过

第三关:php345绕过

第四关:.htaccess绕过

第五关:大小写绕过

第六关:空格绕过

第七关:点绕过

第八关:::$DATA绕过

第九关:点+空格+点拼接绕过

第十关:双文件绕过

作者作为这个领域的菜鸟,希望与您共同进步。
如果网络安全系列文章对您有所帮助,将是我分享的最大动力。
该系列会写上100+篇,希望之后自己能入门。
还有便是这个专栏要不要收不收费呢?哈哈~目前还是喜好免费文章,网上很多安全的视频都非常贵,我也希望通过这个系列能帮到更多的初学者,但如果作者某一天真收费了(不会很贵),也请海涵。

标签:

相关文章

PHP实现文字转图片的代码与应用

图片处理技术在各个领域得到了广泛应用。在PHP编程中,文字转图片功能同样具有很高的实用价值。本文将针对PHP实现文字转图片的代码进...

网站建设 2025-03-02 阅读1 评论0

NAN0017探索新型纳米材料的奥秘与应用

纳米技术作为一门新兴的交叉学科,近年来在材料科学、生物医学、电子工程等领域取得了举世瞩目的成果。其中,NAN0017作为一种新型纳...

网站建设 2025-03-02 阅读3 评论0

L26368XO代码其背后的创新与突破

编程语言在各个领域发挥着越来越重要的作用。在众多编程语言中,L26368XO代码以其独特的优势,成为了业界关注的焦点。本文将深入剖...

网站建设 2025-03-02 阅读1 评论0

HTML字体背景打造个化网页设计的关键元素

网页设计已经成为现代网络传播的重要手段。在众多网页设计元素中,字体和背景的搭配尤为关键。本文将从HTML字体背景设置的角度,探讨其...

网站建设 2025-03-02 阅读1 评论0