本章讲解了部分解析漏洞,包括Nginx解析漏洞, Apache 解析漏洞-低版本,Apache 换行解析-vulhub(换行解析漏洞cve-2017-15715) ,Nginx 文件名逻辑-vulhub
但在靶机搭建时出现部分未知错误,所以只能理论分析
1.Apache 解析漏洞-低版本
#原理分析:
---低版本的Apache存在,2.x;例如:x.php.xxx.yyy,最开始识别后缀yyy,如果不能识别,就向前解析,直到识别。利用场景:如果对方的Apache属于低版本,我们可以利用文件上传,上传一个不识别的文件后缀,利用解析漏洞规则成功解析文件,触发后门代码。
2.Apache 换行解析-vulhub(换行解析漏洞cve-2017-15715)
#上传文件后用bp把文件名后的0d改为0a
#得到200的返回状态
#再访问文件地址
#原理分析:
---Apache2.40-2.4.29版本在解析PHP时,1.php\0A将按照php后缀进行解析,而这里是在编码的时候,将evil.php后面加上十六进制的%0a,在抓包工具里面就是在70后面的一位改为:0a
3.Nginx 解析漏洞-vulhub
在Nginx 1.×最新版 PHP 7.x最新版
上传文件后通过访问文件地址后面
#以PHP执行该文件---文件路径/.php
4.Nginx 文件名逻辑-vulhub
这里优班图无法搭建靶机,所以只能理论分析
#漏洞原理(黑名单)
---其主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。例如,Nginx匹配到.php结尾的请求,就发送给fastcgi进行解析,
---正常情况下(关闭pathinfo的情况下),只有.php后缀的文件才会被发送给fastcgi解析。而存在CVE-2013-4547的情况下,我们请求1.gif[0x20][0x00].php,这个URI可以匹配上正则\.php$,可以进入这个Location块;
---但进入后,Nginx却错误地认为请求的文件是1.gif[0x20],就设置其为SCRIPT_FILENAME的值发送给fastcgi,fastcgi根据SCRIPT_FILENAME的值进行解析,最后造成了解析漏洞。所以,我们只需要上传一个空格结尾的文件,即可使PHP解析之。
编辑器漏洞
#怎么判断网站所使用的编辑器?
---进入网站的后台或者会员中心,看到编辑器的使用情况
---通过网站扫描,发现带有编辑器命名的网站路径
---搜索引擎搜索: inurl:fckeditor(shodan等等),此外,不仅仅是fckeditor,其他编辑器也存在漏洞,可以从编辑器类型(如:ckeditor,ckfind,ueditor,kindeditor等)方向突破。
1.Fckeditor exp 利用
漏洞代码:https://blog.csdn.net/eldn__/article/details/9197521
#复制代码创建PHP文件并放在phpStudy的PHP目录下
#当前路径下执行创建的PHP文件
---php+fck.php+对方网站的ip(不需要HTTP)+对方网站的编辑器的路径
---这个工具是通过上传到网站编辑器里面的一个文件,然后返回文件的路径,你可以访问路径去执行上传的php后门。
通达oA系统安装:https://pan.baidu.com/s/15gcdBuOFrN1F9xVN7Q7GSA 密码enqx
通达OA文件上传
https://www.cnblogs.com/twlr/p/12989951.html#_label0_1
文件上传漏洞总结:
1. 查看中间件,是否存在解析漏洞(iis/apache/nginx)
---有些可以上传未知名后缀,有些只能上传图片(这一步也可以和第二步互换)
2. 文件上传漏洞点的识别
---字典扫描路径,会员中心,更换头像等等
3. 文件上传漏洞分类(代码层面)
---前端
---后端---黑名单,白名单,文件内容/类型及其它
4. 查看是否是CMS漏洞
5. 查找是否存在编辑器漏洞
6. 查找是否有相关的CVE漏洞