WEB漏洞—文件上传之解析漏洞编辑器安全

发布时间 2023-07-10 14:29:06作者: 执小汐

本章讲解了部分解析漏洞,包括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解析之。

编辑器漏洞

常见的编辑器 Fckeditor exp利用 Ueditor 漏洞利用

#怎么判断网站所使用的编辑器?

---进入网站的后台或者会员中心,看到编辑器的使用情况

---通过网站扫描,发现带有编辑器命名的网站路径

---搜索引擎搜索: 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漏洞