文件上传入门知识
首先是两张网图
靶机包含漏洞类型分类
判断上传漏洞类型的方法
木马分类
一句话木马
代码短,只有一行代码
使用场景多,可单独生成
安全性高,隐匿性强,可变形免杀
又称小马,网马,后门,即利用简单少量代码实现命令执行、文件管理
php一句话木马
@ 表示后面即使执行错误,也不报错,所以可加可不加
asp一句话木马
<%execute (request(“value”))%>
aspx一句话木马
<%@ Page Language=“Jscript”%>
<%eval(Request.Item[“value”])%>
木马变形:
1.函数替换
php中除了eval,还有其他函数也可以执行代码,比如assert函数
命令执行函数system、passthru、exec、shell_exec等
如
2.双变量绕过
如
当成功把这个木马写进去时,需要在post时同时传入a和b两个参数
然后post时,a=assert&b=phpinfo(),这样就会执行phpinfo()这个函数命令
3.字符串变形绕过
4.定义函数绕过
5.回调函数绕过
6.类绕过
7.编码绕过
8.特殊字符干扰绕过
9.无字符特征码绕过
图片马
1.制作图片马:CMD
具体命令:
copy 1.jpg/b + shell.php/a tupianma.jpg
(其中b表示以二进制文件,a表示以ASCII文件)
也可以在属性那边把一句话木马写进去
大马
功能多,代码量大
具体利用方法
判断方法
首先我们通过一个网站上传一个非法格式的文件
- 在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。或者是点了上传按钮后立即返回结果,那可能就是js前端验证
- 如果网页未弹窗,而在页面弹窗,或是上传后页面会加载一下,此时则考虑后端验证
JS前端校验
1.直接禁用网页的JS脚本
2.把php后缀改成他需要的后缀形式,bp抓包后再改回去
3.更改过滤条件
后端验证
MIME类型验证
概念
MIME(Multipurpose Internet Mail Extensions)多用途网络邮件扩展类型,可被称为Media type或Content type,
它设定某种类型的文件当被浏览器打开的时候需要用什么样的应用程序,多用于HTTP通信和设定文档类型例如HTML。
之所以叫多用途网络邮件扩展类型,因为它最早被用于电子邮件系统,后用于浏览器
常见类型
文件后缀 | Mime类型 | 说明 |
---|---|---|
.flv | flv/flv-flash | 在线播放 |
.html或.htm | text/html | 超文本标记语言文本 |
.rtf | application/rtf | RTF文本 |
.gif | image/gif | GIF图形 |
.jpeg或.jpg | image/jpeg | JPEG图形 |
.au | audio/basic | au声音文件 |
.mid或.midi | audio/midi或audio/x-midi | MIDI音乐文件 |
.ra或.ram或.rm | audio/x-pn-realaudio | RealAudio音乐文件 |
.mpg或.mpeg或.mp3 | video/mpeg | MPEG文件 |
.avi | video/x-msvideo | AVI文件 |
.gz | application/x-gzip | GZIP文件 |
.tar | application/x-tar | TAR文件 |
.exe | application/octet-stream | 下载文件类型 |
.rmvb | video/vnd.rn-realvideo | 在线播放 |
.txt | text/plain | 普通文本 |
.mrp | application/octet-stream | MRP文件(国内普遍的手机) |
.ipa | application/iphone-package-archive | IPA文件(IPHONE) |
.deb | application/x-debian-package-archive | DED文件(IPHONE) |
.apk | application/vnd.android.package-archive | APK文件(安卓系统) |
.cab | application/vnd.cab-com-archive | CAB文件(Windows Mobile) |
.xap | application/x-silverlight-app | XAP文件(Windows Phone 7) |
.sis | application/vnd.symbian.install-archive | SIS文件(symbian平台) |
.jar | application/java-archive | JAR文件(JAVA平台手机通用格式) |
.jad | text/vnd.sun.j2me.app-descriptor | JAD文件(JAVA平台手机通用格式) |
.sisx | application/vnd.symbian.epoc/x-sisx-app | SISX文件(symbian平台) |
事实上,在burpsuite抓包后,数据包里的Content-Type指定的就是上传的这个文件的MIME类型
遇到这种检测类型,抓包之后更改PHP木马的MIME类型即可完成上传
黑名单绕过
题目不允许上传.asp,.aspx,.php,.jsp后缀文件时可以考虑,黑名单中有这几个文件格式,但是并没有限制上传.php5,.phtml,.pht,.phps等格式的文件,在apache的httpd.conf文件中写入了
AddType application/x-httpd-php .php .phtml .phps .php5 .pht
时,这些文件也会被识别为php文件
所以把文件后缀改成php5等即可绕过
.htaccess绕过
这里找到了网上一篇讲的很清楚的博客
CTF丨.htaccess文件的利用,没有比它更全面的文章了!_黑客技术 (hackdig.com)
.htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
简单来说,我们可以使用.htaccess文件重新配置当前文件的解析后缀,在绕过的时候,我们可以上传一个.htaccess文件来覆盖解析规则,使其他后缀名被解析为php文件,从而达到上传木马的效果
其余的可以去看看upload-labs的刷题笔记