web安全入门(第七章-1)文件上传漏洞--解析、验证、伪造
一、客户端检测
1,客户端校验:一般是在网页上写一段Js脚本,用Js去检测,校验上传文件的后缀名,有白名单也有黑名单。
2,判断方式:通过抓包来判断,如果还未抓住包,就弹出不准上传,那么就是前端验证,否则一般就是服务端验证
3,突破方法前端验证非常不可靠,通常可通过两种方式绕过:~关闭JS尝试绕过~传正常文件通过burp修改数据包就可以绕过(推荐)
4,黑白名单机制:黑名单:不允许上传什么白名单:只允许上传什么白名单比黑名单更安全
二、服务端检测
1,服务端检测几个常见的手段:检查Content-Type (内容类型)检查后缀 (检查后缀是主流)检查文件头2,制作图片马(隐写)~找一张正常的照片(最好用小图片,越小越好)例如:1.jpg~新建一个文本文档(内容<?php eval($_REQUEST['a']);?>一句马)例如:1.txt~打开cmd运行下边命令代码:copy 1.jpg/b + 1.txt 123.jpg/b的意思是以二进制加载,最后会合成一个名为123.jpg的图片另外:如何拿出源文件?改123.jpg为123.zip直接解压即可,很多ctf的初级隐写难度一句话木马的核心:就是用户传参的数据当作代码执行webshell 管理工具: (网站木马)webshell =>网站会话[拥有网站权限]getshell =>获取会话能被解析的文件扩展名列表:php: php、 phtml、php3、php4、php5jsp: jap、jspx、jspfasp: asa、cer、aspxext: exee先判断是否前端检测-然后在检测是不是后缀检测-在看是不是黑名单
三、文件上传绕过类型:
1.前端检测使用burp抓包,上传一个非法文件,如果抓到数据包,说明是后端校验,如果没抓到数据包,说明是前端校验。2.Content-Type方式绕过使用burp,上传图片马,直接更改类型php
3.黑名单绕过使用burp,上传图片马,直接更改类型,如上传不成功,可以phtml大部分可以使用::$DATA绕过
4..htaccess文件绕过这个文件是中间件看的。.htaccess是什么?.htaccess文件也被称为分布式配置文件,提供了针对目录改变配置的方法,在一个特定的文档目录中放置一个包含一个或多个指令到的文件,以作用于次目录及其所有子目录。.htaccess功能:文件夹密码保护、用户自定义重定向、自定义404页面,扩展伪静态话、禁止特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,很可惜,这个功能默认是不开启的。例如:AddType application/x-httpd-php .jpg 这个指令代表有.jpg文件会当做php解析将这句代码放进txt文件,将文件名修改成功.htaccess,然后上传它就可以了。我们无法将文件名命名为.htaccess,那么应该怎么办?使用cmd的重命名ren 1.txt .htaccess
5.后缀大小写绕过windows后缀是不区分大小写的。解析时一般也不区分大小写。Web容器除非非常老,不然都不区分大小写
6.文件后缀(空/空格)绕过在文件名后留一个空格,然后上传上去空格会自动的省略,在系统操作中,php空格=php但是在字符串匹配的时候php空格!=php7.文件后缀(点)绕过windows有一个特性,会自动去掉后缀名留最后的.8.::$DATA(Windows文件流绕过)(这里利用到了NTFS交换数据流(ADS),ADS是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流。通俗的理解,就是其他文件可以“寄宿”在某个文件身上,而在资源管理器中却只能看到宿主文件,找不到寄宿文件。)肯定不懂这个意思是什么吧,现在cmd运行一个(藏文件的小福利)echo abcd>>a.txt:b.txt 将abcd写入a.txt:b.txt,很明显生成一个a.txt,将b.txt寄宿到a.txt文件上。使用notepad 1.txt:b.txt,将寄宿文件揪出来 然后在试试a.txt::$DATA ::$DATA就是默认不修改文件流的情况,所以生成一个正常的a.txt。利用windows特性,可在后缀名中加::$DATA 绕过。
9.构造文件后缀绕过php. .
10.双写文件后缀绕过会出现删后缀,,,所以要双写后缀,,不会出现删文件。
四、实战注意(主要黑名单)
1,简单的前端黑白名单限制可以通过上边的两种方法
2,图片马burp抓包改回后缀进行绕过
3,服务端黑名单,将后缀改为 php. php_ php4 phptml php空格 在上传
4,htaccess文件绕过简单的说,htaccess文件就是web容器的配置文件,web容器会根据htaccess文件的内容去执行,我们可以改内容:例如: AddType application/x-httpd-php .jpg这个代码指令代表着.jpg文件会当做php来解析,但是仅限于当前文件夹用法:新建1.txt文件,将代码写入,打开cmd,运行下列命令:ren 1.txt .htaccess //更名后是没有文件名字的注意:但是这个功能是默认不开启的,可以试试,但是伪静态网页一定会开5,win系统后缀是不分大小写,而且解析容器也一般不分。可以改一下后缀大小写
6,win文件流绕过(隐写)打开cmd:echo abcd //输出abcdecho abcd >> 1.txt //新建1.txt,内容为abcdecho abcd >> 1.txt:b.txt //新建b.txt,内容为abcd,且藏在1.txt中//系统中只能看到1.txt打开b.txt:(cmd中)notepad //打开记事本notepad 1.txt //用记事本打开1.txtnotepad 2.txt:b.txt //打开隐藏在1.txt中的b.txt注意:此时的1.txt中必须为空,不能保存东西扩展:(1)事实上,新建的文件夹,完整的语句是这样的:echo abcd >> 2.txt::$DATA 这是建立一个2.txt文件,平时写echo abcd >> 1.txt 系统默认补全(2)echo abcd >> 1.txt 没有1.txt新建,若有则将abcd追加至元文件(3)如何结合上传文件:上传1.jpg,burp抓包,改为1.php::$DATA,保存在服务器为1.php7,实战中,不知道什么检测,建议直接用图片马,可以避免很多麻烦
8, 连接自己的一句马:url/上传马.php?a=phpinfo(); //“;”不要忘记,经典一句马内容:<?php @eval($_REQUEST['a']);?>
文件上传常见问题汇总
1.文件上传对渗透测试的意义
文件上传属于获取Getshell的一种方法,属于最常规获取webshell的方法,所以寻找上传点比进入后台还重要,如果前台上传点你直接上传上去一个一句话木马,整个站你就拿下来了。2.文件上传需要做信息收集吗?
当然需要信息收集,信息收集中对web容器和用的动态语言和动态语言版本对文件上传非常有用,一个ASP的站,你传一个PHP的马,如果说没有特殊设置,那么这个马是不可能执行(但是有些情况下,他设置了解析,也是可以解析的)然后web容器也会存在一些解析漏洞,如iis6.0畸形解析、CGI解析漏洞3.文件上传是不是只会检测后缀?
并不是,有些文件上传还会去检测文件内容4.黑名单和白名单哪个安全?
相对而言,白名单更安全一点5.如果只能上传图片,这个上传点是不是没用?
并不是,好歹你还是有文件上传上去的,如果网站存在本地包含或者解析漏洞,你传上去的图片马就可以大放光彩了。6.只是windows有::$DATA吗?
是的呀7.windows忽略大小写,linux?
Linux并不会忽略大小写,比如访问一个网站,将URL里面文件夹得名字改一个小写字母为大写,如果正常访问那一般是windows,如果访问出现问题一般是linux(快速检测不一定准)8.双写绕过常见吗?
双写绕过并不是特别常见,但是也是遇到过,你上传得文件得文件名就可以看出来能否双写绕过9.没有源码怎么测试文件上传漏洞?
这个可能是同学们最关心的问题,因为大多数情况下,都不会有目标站点的源码。所以黑盒怎么测试妮?先传一个正常图片,然后看看这个地方上传是否有用,然后再传一个jpg后缀的图片马,看看对内容会不会检测,然后再尝试改包,看看是不是前端验证,然后尝试下看看是黑名单还是白名单机制,然后最后尝试条件竞争。10..htaccess文件绕过这个常见吗?
虽然这个默认不是开启的,但是开启了伪静态的网站都会开启,所以遇到伪静态可以直接尝试,不过没用遇到也是可以尝试的,也许管理员开启了妮~多尝试11.后缀大小写绕过可能存在吗?
当然可能啦,老的ASP站比较容易遇到12.文件后缀(空和点)绕过适用于什么环境?
仅仅用于windows13.00截断和%00截断有区别吗?
没有任何区别,%00 仅仅是00的URL编码而已14.00截断有限制条件吗?
高版本php不存在,5.4.45以上似乎就没有了15.有没有把图片打成base64保存到数据库的操作?
有这个操作,但是我试过,我做开发的时候干过这个操作,但是这样会让数据库超级大,而且感觉影响了数据库的性能16.条件竞争实战可行性?
实战是可以行的,之前遇到过一个非法网站,然后他就存在条件竞争(不过一般5分钟没跑出来就放弃把)17.IIs6.0畸形解析漏洞(一)怎么利用?
Asa cer 这个很明显是绕过黑名单机制的18.IIs6.0畸形解析漏洞(二)怎么利用?
这里是绕过白名单机制的,利用;进行绕过19.IIs6.0畸形解析漏洞(三)怎么利用?
当你拥有建立文件夹且可以命名的时候利用20.IIS6.0感觉很老呀现在还多吗?
ASP的站大部分都是这个版本,也有些IIS6.0修复了解析漏洞,也不用太执着21.CGI解析漏洞仅仅用于Nginx吗?
不是这样子额的,CGI解析漏洞在IIS7.5、IIS7.0中也存在,我实战遇到过的大部分都是IIS7.X比较多22.文件上传漏洞就只有靶场的这23个吗?
当然不是啦,只不过这23个是比较常见的啦23.文件上传是不是必须要图片马?
也并不是必须,但是我建议使用图片马,因为图片马可以绕过好多防护机制24.我图片马做了,但是上传上去连接不了怎么办?
你先看看你的图片马是不是太大了,图片马大了会影响执行,所以我建议使用小图片做图片马,我自己真的用的图片马,都是QQ表情,一个图片才10kb.第二个要检测的就是看看图片马是否正常运行,建议在本地先试试25.动态脚本语言不同,他们的一句话木马可以通用吗?
当然不可以啦,难道你觉得英语和中文还有日语可以通用吗?每个动态脚本语言都有自己的一句话木马,函数可能连名字都是差不多的,但是语句肯定不一样(百度查一查就有了)
web安全入门(第七章-1)文件上传漏洞--解析、验证、伪造相关推荐
- 文件上传漏洞-解析、验证、伪造1
文章目录 文件上传漏洞: webshell: 文件上传漏洞的原因: 文件上传常见检测: 靶场实战 1.前端验证绕过 2.Content-Type方式绕过 3.黑名单绕过 4. .htaccess文件绕 ...
- 文件上传漏洞 解析、验证、伪造(二)
注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!! 后端校验的黑名单机制比较危险 1.大小写绕过 2.点空绕过 3.NTFS文件流绕过::$DATA 4.htacces ...
- 文件上传漏洞 解析、验证、伪造(一)
注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!! 文件上传:把自己电脑上的文件传到服务器上 文件上传是个功能 任意文件上传就是漏洞了 一句话木马<?php e ...
- 文件上传漏洞 解析、验证、伪造(三)
注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!! 1.文件上传是个功能,任意文件上传(漏洞) 2.无法提交shell但是可以提交其他的文件,例如HTML(上传存储型x ...
- 文件上传漏洞-解析、验证、伪造2
我们接着上一篇博客文章对upload_labs上传漏洞的讲解: 文章目录 %00截断绕过 %00截断绕过(二) 图片马绕过 getimagesize图片类型绕过 php_exif模块图片类型绕过 二次 ...
- 文件上传漏洞 — 解析、验证、伪造
绕过黑名单 前端验证绕过 看看前段白名单允许上传什么后缀名的文件 写个一句话木马,后缀名改成白名单里的后缀名 <?php eval($_REQUEST['a'])?> 上传时抓包修改后缀名 ...
- 文件上传漏洞-解析、验证、伪造3
接上一篇内容 IIS6.0解析漏洞(一) 我们现在要讲的第一个是IIS6.0的解析问题: iis6.0除了将ASP后缀当成ASP进行解析的同时,当文件后缀名字为.asa .cer .cdx也会当做as ...
- Flask Web开发入门(十)之图片上传(使用Flask-Upload)
在Flask Web开发入门(八)之文件上传中,我们探讨了Flask框架下的文件上传,本章我们将使用Flask插件Flask-Uploads示例说明的图片上传与展现如何实现 开始之前,我们先简单看下F ...
- kindeditor在服务器上上传图片显示叉叉,什么原因?,kindeditor=4.1.5 文件上传漏洞利用...
kindeditor<=4.1.5 文件上传漏洞 - Kindeditor <=4.1.5 file upload vulnerability and use 漏洞存影响版本:小于等于4. ...
最新文章
- java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...
- [Linux] PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载
- mysql中的G标志实现纵向显示
- Samsung Pay体验札记:或推支付新浪潮
- 微信小程序:生命周期
- html打开自动点击,如何把一段JS点击触发改为页面打开后就自动触发?
- 如何用Pygame写游戏(二十二)
- python学习day-4 集合与函数
- linux ip onboot,linux onboot no
- Python 解决面试题47 不用加减乘除做加法
- 数学建模之层次分析法
- 写大数据简历的黄金法则及项目经验
- 97. ExtJS之EditorGridPanel afteredit属性
- 通达信自编的选股公式如何使用
- Android 选择国家对应区号 中英双版
- mysql汽车租赁管理系统
- 39个大数据可视化工具 数据研究必备
- 安卓结构能转换成苹果借口吗_别错过!这可能是苹果近几年最精彩的发布会了...
- 今天开始做战斗,回合制战斗代码实现第一篇,从头开始,简单的2d回合制游戏
- mount卡住不动解决思路
热门文章
- Mysql8.0.28-winx64安装
- 常用逻辑门电路及其运算表达式
- 阅读笔记 - 20220409
- 基于JAVA传统文化知识竞赛系统计算机毕业设计源码+系统+数据库+lw文档+部署
- 使用IE浏览器,禁止访问,显示 Internet Explorer增强安全配置正在阻止来自下列网站的从应用程序中的内容
- 给文火慢炖的“少儿美术”加点料
- [Win10+Excel365]尽管已启用VBA宏,Excel还是无法运行宏
- 产业区块链发展周报(10.11—10.16)| 陀螺研究院
- oracle截取6位,Oracle函数获取IDCARD中年龄
- 百度推广系列之广告词编写必杀技