本人事先声明,这些知识只是为一些想从事网络安全工程师的小伙伴,提供体系化的学习思路。
如果学习者学习后,进行非法行为,与本人无关。
告诫:对于一些兴趣学习者,低调学习,别瞎搞,容易喜提免费住宿大礼包。
如果有错误的地方欢迎指正,作者在收到信息后会及时修正,欢迎与作者共同学习进步。
补充内容请看:
总:利用思路:常规类、cms类、编译器类、其他类/cve |
找中间件的目的就是去找解析漏洞,找文件上传点(可以使用网站字典扫描工具,扫描出文件上传点,还有一些常见的文件上传点,例:会员中心等。) |
常规类:
扫描获取上传、会员中心上传、后台系统上传、各种途径上传 |
CMS类:
已知CMS源码 |
编译器类:
Ckeditor |
Fckeditor |
Kindeditor |
xxxeditor |
其他类/CVE:
代码审计 |
平台/第三方应用等 |
1、基础知识 |
什么是文件上传漏洞? |
文件上传漏洞有那些危害? |
文件上传漏洞如何查找及判断? |
文件上传漏洞有哪些需要注意的地方? |
关于文件上传漏洞在实际应用中的说明? |
笔记:
在文件上传的地方可能会有文件上传漏洞 |
上传后门文件->获取网站权限(提权)(高危漏洞) |
文件上传漏洞判断(黑盒查找:目录、敏感文件扫描;网站给的信息:会员中心;文件后台:webshow;白盒查找:代码审计) |
对文件上传的类型进行区分(对症下药) |
常见定位类型网站的命令:site、curl |
不同格式文件上传:文件上传后缀(php代码->jpg格式下无法执行) |
常见的漏洞练习靶场:vulhub |
常见的php代码:<?php phpinfo();?>(回显出php所有相关信息) |
解析漏洞:让图片解析成脚本(就是上传一个jpg,执行时被当作php格式执行)->(搭建平台产生解析漏洞)(下面笔记有常见的解析漏洞) |
文件上传:一般不支持上传脚本格式的文件(存在文件格式验证) |
2、验证/绕过 |
前端——js类防护 |
后端——黑名单、白名单、内容及其他 |
笔记:
js过滤(前端验证:用户可以抓包(网站源码)禁用对应功能) |
有些网站抓不到数据包的原因是:该网站在本地的运行,不向服务器发送数据包 |
在上传文件操作的时候,抓包修改文件名后缀,显示文件上传失败,有可能已经上传成功了,只是不会回显文件路径。 |
注意观察网站所显示的页面,上面会有思路。(cms有关网站) |
时间戳(自己查询相关网络安全知识) |
黑名单:
特殊解析后缀 |
.htaccess解析 |
大小写绕过 |
点绕过 |
空格绕过 |
::$$DATA绕过 |
配合解析绕过 |
双后缀名绕过 |
笔记:
文件常见验证:后缀名(黑名单、白名单)、文件类型(MIME信息)、文件头(内容头信息) |
黑名单(常见的脚本格式:asp、php、jsp、aspx、cgi、war ):明确不让上传的格式后缀 |
MIME:检测文件类型 |
php可以是使用php3、php5(特殊解析后缀)等方法绕过(这个需要网站支持这个功能、需要在后台文件里取消有关php的注释) |
.htaccess解析(如果网站未限制这个后缀文件的上传,可以利用这个漏洞进行两次文件上传,获取资产) |
把后缀名进行大小写改动,实现绕过 |
在后缀名后面加上空格或点,实现绕过(在上传到对方网站服务器中会把空格强制去除) |
::$$DATA绕过:在文件前面加上::$$DATA,网站服务器会把它后面的文件当作文件流执行->保留原文件的后缀名格式->进行执行文件 |
有些网站在编写过滤代码的时候,未考虑全面,只进行了一次过滤(未递归过滤),这样我们就可以利用这个漏洞,进行文件名后缀叠加 |
白名单:
MINE绕过 |
%00截断 |
0x00截断 |
0x0a截断 |
笔记:
白名单(jpg | png | zip | rar | gif):明确可以上传的格式后缀 |
在加绕过代码的时候,出错的原因可能是url编码问题、版本问题 |
建立在地址信息上 |
%00进行url编码(get会自动解码,post不会自动解码) |
内容及其他:
文件头检测 |
二次渲染 |
条件竞争 |
突破getmagesize |
突破exif_imagetype |
笔记:
图片马->图片和恶意代码结合的产物,(手工、命令)合成 |
利用文件包含漏洞,执行后门代码 |
检测函数,网站通过检测上传文件的代码信息,(文件头信息) |
二次渲染(未验证之前,就把文件上传到指定的路径,在进行验证):将文件上传到服务器,服务器进行(保存、删除)图像的放大、缩小,会又逻辑安全(文件其实已经在服务器上:先上传、后验证)可以配合资源占用->千次访问。 |
(文件名、文件夹名)修改、 |
使用数组进行绕过,函数检查文件名的end(a.php/.jpg)检测的jpg,实际是php |
3、漏洞/修复——解析漏洞、cms漏洞、其他漏洞(编译器漏洞、CVE等漏洞、安全修复) |
笔记:
(文件 上传漏洞)搭建平台漏洞,在收集信息的时候发现对方的搭建平台有CVE漏洞,就可以进行利用 |
利用nmap -Vs url 扫描对方端口,可能会扫到对方网站的搭建平台 |
Iis6.0 文件夹:image/qq.jpg | image.asp/qq.jpg qq.jpg就会被当作asp解析 |
文件 image.jpg | image.asp;.jpg 或 xxx.asp;xxx.jpg此文件就会被当作asp执行 |
也可以或为php格式执行 |
解析漏洞:
Iis6/7.x |
Apache |
Nginx |
笔记:
存在解析漏洞,可以实现反逆转 |
apache解析漏洞:低版本漏洞,配置安全漏洞(鸡肋漏洞) |
1.php.xxx 会被当作1.php文件执行(产生原因:apache在解析文件的时候是先解析文件的最后后缀,如果不识别的话,它就会向前解析,知道解析成功) |
操作:docker -compose ifconfig->用于查看靶场的端口 |
可以去尝试一下vulhub中apache的换行解析漏洞 |
Nginx的解析漏洞和iis7的解析漏洞是一样的 |
CMS漏洞:
某cms上传1 |
某cms上传2 |
某cms上传3 |
笔记:
通达oa的使用案例 |
如果识别出网站使用的程序(cms名称)之后,就可以到网上搜索相关漏洞进行对比、利用。 |
编译器漏洞:
Fackeditor |
Ewebeditor |
Ckeditor |
Kindedit |
ueditor(漏洞利用) |
笔记:
不是重点,利用一些工具进行测试,寻找网站是否使用编译器,根据版本和网上现有的漏洞,就可以进行攻击。 |
CVE等漏洞:
CVE-2015-5254 |
CVE-2017-12615 |
CVE-2019-2618 |
笔记:
中间件漏洞 上面的cve漏洞是比较典型的漏洞,可以进行复现,学习。 |
安全修复:
方案:添加补丁、升级中间件的版本等 |
4、WAF绕过 |
WAF绕过:
Safedog |
bt(宝塔) |
xxx云盾 |
笔记:
文件上传WAF绕过 |
Content-Disposition:一般可修改 |
Name:表单参数值,不可修改 |
Filename:文件名,可修改 |
Content-Type:文件MINE,视情况修改 |
安全防护软件(文件上传)常见的绕过方法: |
防匹配-数据溢出(xxx…;)、符号变异-(’ ‘’ ;)、数据截断(%00 ; 换行)、重复数据(参数多次) |
数据溢出:可以在Content-Disposition、Name:表单参数值、Filename:文件名,中间加入垃圾数据,让数据溢出;达到waf绕过。 |
waf防护软件在匹配的时候,可能匹配的时“”|‘’中的字符串,如果“”| '' 不完整的话,可以它就不会检测。 |
符号变异->常见的是 ;换行 |
对方在验证的时候使用的是一次验证,还是递归、循环 |
/****/ 可以一试 |
fuzz:利用burpsuite软件+字典进行测试 |