ctf题目php文件上传如何绕过_ctf基本的文件上传与绕过学习

本文详细介绍了几种绕过PHP文件上传校验的方法,包括客户端脚本检测扩展名、Content-Type检测、服务器端扩展名检测、00截断和Apache解析漏洞。通过实验步骤展示了如何使用Burp Suite等工具进行文件上传漏洞的利用和绕过。
摘要由CSDN通过智能技术生成

fb1ac8f2ab7676b8065bb92aba415765.png

绕过客户端校验前台脚本检测扩展名上传webs hell

原理:

当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何

消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台

脚本检测扩展名。

绕过前台脚本检测扩展名,就是将所要上传文件的扩展名更改为符合脚本检

测规则的扩展名,通过 BurpSuite 工具,截取数据包,并将数据包中文件扩展名

更改回原来的,达到绕过的目的

实验:打开要上传的页面,上传要上传的木马文件lurb.php,点击上传。

a5354c2a6da5e605a9ef381acdc62ba6.png

页面显示错误

0a1688d6052221172dfe4a646807abce.png

返回上传页面,点击浏览,选择要上传的木马文件lubr.jpg(把lubr.php重命名

lubr.jpg)

4d85731d489913e49f7013c69af0311b.png

上传用burpsuite抓包,将.jpg改为.php,点击’forward’发送数据包,进行绕过。

841a63b69851673bb83d57a563a578ac.png

1439d842e0728bc5b9060cbcba410c61.png

4b105abdbe70ecf075c562fec9b047c2.png

绕过 Content-Type 检测文件类型上传

原理:当浏览器在上传文件到服务器的时候,服务器对所上传文件的Content-Type类型进行检测,如果是白名单允许的,则可以正常上传,否则上传失败。绕过Content–Type文件类型检测,就是用BurpSuite 截取并修改数据包中文件的Content-Type类型,使其符合白名单的规则,达到上传的目的。

实验:

打开要上传文件的页面,上传木马lubr.php。报错

7ffe6833f18ba1fa55bfa548a6a91654.png

c50a0ad1562b8a95c9ca99fe35c184d8.png

利用burpsuite抓包更改Content-Type由application/octet-stream改为148

image/gif。点击’forward’发送数据包。

8c9692134a07f58611aa8ce259ee5015.png

2760c6a982d45ab36043300d6c4d3ead.png

b08cf38688e1ca274c61f74aa9294b0b.png

绕过服务器端扩展名检测上传

原理:当浏览器将文件提交到服务器端的时候,服务器端会根据设定的黑白名单对浏览器提交上来的文件扩展名进行检测,如果上传的文件扩展名不符合黑白名单的限制,则不予上传,否则上传成功。

将一句话木马的文件名 lubr.php,改成lubr.php.abc。首先,服务器验证文件扩展名的时候,验证的是.abc,只要该扩展名符合服务器端黑白名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了.abc扩展名,会向前寻找可解析的扩展名,即.php。一句话木马可以被解析,即可通过中国菜刀连接。apache解析文件名从后往前解析

实验:打开要上传文件的页面,上传木马文件lubr.php。上传报错

9a48bbca7459a0325bd5402050724115.png

b933eb65c2f197c8522662a6d18df05c.png

返回上传页面,点击浏览,选择要上传的木马文件lubr.php.abc(由lubr.php重命名lubr.php.abc),点击上传

f914e3aefbd7c06c7e02fa9250659d7e.png

e26903f769acf0b1f2633ccca9af57a0.png

00截断上传

原理:利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。

实验:打开需要上传的网页,选择需要上传的木马文件‘xxx.php.jpg’上传.

f7b03ec563415a02e0b5b11258167cb6.png

burp suite抓包。

07a4a73d2b3afe17b9f3dfdefadeb53c.png

单击“hex”标签页,点击【hex】,进入到十六进制源码界面。

538d3fb615f289479548aa7e6064d64d.png

找到【lubr.php.jpg】对应的十六进制源码,将【lubr.php】后【.】对应的【2e】改为【00】

c6d8f516f85da001d0f0e94d844ed5af.png

点击【forward】,即可成功上传文件

f6417e9bdba5f1809aa973e18910bf3c.png

构造图片木马上传绕过

原理:一般文件内容验证使用getimagesize()函数检测,会判断文件是否是一个有效的文件图片,如果是,则允许上传,否则的话不允许上传。本实例就是将一句话木马插入到一个【合法】的图片文件当中,然后用中国菜刀远程连接。

实验:

随便找一个图片,与所要上传的木马放置于同一文件夹下。打开cmd,进入木马所在文件夹

4b90281be5e82b061efc61dea6e54bca.png

输入copy pic.jpg/b+lubr.php/a PicLubr.jpg,将【lubr.php】插入到【pic.jpg】中。

48b359596db550da05b33dbf47d22111.png

上传图片木马,并访问。

2b3533245be90c1e248d8610cadddc6c.png

Apache 解析漏洞上传文件

原理:Apache识别文件类型是从右向左识别的,如果如遇不认识的扩展名会向前一次识别,知道遇到能别

的扩展名

实验

将原本不能上传的xx.php文件更名为xx.php.abc上传即可

4fbaccebd9dda007525da81ac322e81d.png

Fckeditor漏洞上传webshell

原理:Fckeditor在2.4.2以下存在一个直接上传任意文件的上传页面,可直接上传webshell

实验:

打开网站判断是否有fckeditor编辑器出现403禁止访问,说明此目录存在

79dffa249e467e6c608871efa94aa6d0.png

00截断上传,先上传一个jpg类型文件,再上传一个asp文件报错。burp suite抓包进行00截断上传。

e80cdd477ed03b8269531e0ed8551142.png

907ebd59ba85130f594b3c17a8a0b9dd.png

ced2cd494552597192ca25aaa081a715.png

设置代理,再次上传类型为ASP的文件webshell.asp.jpg(把webshell.asp重命名webshell.asp.jpg即可),击”upload”按钮

277f028661b4ba3e939667fc73d772ef.png

burpsuite 抓到包 进到hex选项卡更改00截断

16163cd6e148f275345fbc719dfb683f.png

将.jpg的.的hex’2e‘改为00

286d3d4b6e7f5be8417f434396c85d65.png

切换为raw模式,空格变为如图样子,单击“forward”按钮(多单击几次),继续发送请求数据包

65206b48338ad237ad42d366e786f8a0.png

切换为history

标签,选择截获的数据包,然后再单击“reponse”标签页,发现文件的上传路径为“/UserFiles/Image/”

e80ac2ced4f1da1e9e654c057324ed69.png

取消浏览器的代理设置,刷新上传页面,可以看到webshell.asp.jpg文件已经上传成功,并命名为webshell.asp。

d5104759aed48f33578799d549f8a94e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值