ctf基本的文件上传与绕过学习
时间:2023-11-01 20:07:02
绕过客户端校验前台脚本检测扩展名上传webs hell
原理:
当用户选择文件点击上传到客户端时,客户端没有向服务器发送任何信息
通过检测当地文件来判断是否可以上传,这种方法被称为前台
脚本检测扩展名。
绕过前台脚本检测的扩展名,即将要上传的文件的扩展名改为脚本检测
通过测量规则的扩展名 BurpSuite 工具,截取数据包,扩展数据包中文件的名称
改回原来的,达到绕过的目的
实验:打开要上传的页面,上传要上传的木马文件lurb.php,点击上传。
页面显示错误
返回上传页面,点击浏览,选择要上传的木马文件lubr.jpg(把lubr.php重命名
lubr.jpg)
上传用burpsuite抓包,将.jpg改为.php,点击’forward发送数据包,绕过。
绕过 Content-Type 上传检测文件类型
原理:当浏览器将文件上传到服务器时,服务器将文件上传到服务器Content-Type检测类型,如白名单允许,可正常上传,否则上传失败。绕过Content–Type文件类型检测是指使用BurpSuite 数据包中文件的截取和修改Content-Type类型,使其符合白名单的规则,达到上传的目的。
实验:
打开要上传文件的页面,上传木马lubr.php。报错
利用burpsuite抓包更改Content-Type由application/octet-stream改为148
image/gif。点击’forward发送数据包。
绕过服务器端扩展名检测上传
原理:当浏览器向服务器端提交文件时,服务器端将根据设定的黑白名单检测浏览器提交的文件扩展名。如果上传的文件扩展名不符合黑白名单的限制,则不会上传,否则上传将成功。
一句话木马的文件名 lubr.php,改成lubr.php.abc。首先,当服务器验证文件扩展名称时,验证是.abc,只要扩展名符合服务器端黑白名单的规则,就可以上传。此外,在浏览器端访问文件时,Apache若无法分析.abc扩展名将向前寻找可分析的扩展名,即.php。一句话,木马可以通过中国菜刀分析连接。apache分析文件名行分析
实验:打开要上传文件的页面,上传木马文件lubr.php。上传报错
返回上传页面,点击浏览,选择要上传的木马文件lubr.php.abc(由lubr.php重命名lubr.php.abc),点击上传
00截断上传
原理:00截断是指程序员在编写程序时不严格过滤文件的上传路径,产生0x00上传截断漏洞。
实验:打开需要上传的网页,选择需要上传的木马文件xxx.php.jpg’上传.
burp suite抓包。
单击“hex点击标签页【hex】,进入16进制源码界面。
找到【lubr.php.jpg】对应的16进制源码,将【lubr.php】后【.】对应的【2e】改为【00】
点击【forward】,可成功上传文件
结构图片木马上传绕过
原理:验证使用一般文件内容getimagesize()函数检测将判断文件是否是有效的文件图片。如果是,允许上传,否则不允许上传。这个例子是将一句话插入一个合法的图片文件中,然后用中国菜刀远程连接。
实验:
随便找一张图片,把要上传的木马放在同一个文件夹下。cmd,进入木马所在的文件夹
输入copy pic.jpg/b lubr.php/a PicLubr.jpg,将【lubr.php】插入到【pic.jpg】中。
上传图片木马并访问。
Apache 上传文件分析漏洞
原理:Apache识别文件的类型是从右到左识别的。如果你不知道扩展名称,你会向前识别,知道你可以识别它
的扩展名
实验
不能上传的xx.php文件更名为xx.php.abc上传即可
Fckeditor漏洞上传webshell
原理:Fckeditor在2.4.以下是直接上传任何文件的上传页面,可以直接上传webshell
实验:
打开网站判断是否有fckeditor403禁止编辑器访问,说明目录存在
00截断上传,先上传一个jpg类型文件,上传一个asp文件报错。burp suite00截断上传抓包。
设置代理,重新上传类型ASP的文件webshell.asp.jpg(把webshell.asp重命名webshell.asp.jpg即可),击upload”按钮
burpsuite 抓到包 进到hex选项卡更改00截断
将.jpg的.的hex’2e‘改为00
切换为raw模式,空间变成如图所示,单击forward”按钮(多单击几次),继续发送请求数据包
切换为history
标签,选择截获的数据包,然后单击reponse发现文件的上传路径为/UserFiles/Image/”
取消浏览器的代理设置,刷新上传页面webshell.asp.jpg该文件已成功上传并命名webshell.asp。