Web学习33

  1. 知识点
  2. 案例
    1. 中间件文件解析-IIS&Apache&Nginx
    2. Web应用编辑器-Ueditor文件上传安全
    3. 实例CMS&平台-中间件解析&编辑器引用
  3. 思维导图

知识点

1、文件上传-二次渲染(重要)
2、文件上传-简单免杀变异
3、文件上传-.htaccess妙用
4、文件上传-PHP语言特性

详细点:
1、检测层面:前端、后端等
2、检测内容:文件头,完整性,二次渲染等
3、检测后缀:黑名单,白名单,MIME检测等
4、绕过技巧:多后缀解析,截断,中间件特性,条件竞争等

本章课程内容:
1、文件上传-CTF赛题知识点
2、文件上传-中间件解析&编辑器安全
3、文件上传-实例CMS文件上传安全分析

案例

中间件文件解析-IIS&Apache&Nginx
Web应用编辑器-Ueditor文件上传安全
实例CMS&平台-中间件解析&编辑器引用

中间件文件解析-IIS&Apache&Nginx

CVE-2017-15715漏洞相关文章:https://vulhub.org/#/environments/httpd/CVE-2017-15715/

中间件是Apache的,PHP版本5.5

在php后面加上0a

访问刚刚传入的地址evil.php%0a就打印出来phpinfo了。

apache cve2017利用条件:
1、是这个中间件
2、黑名单验证(在黑名单的后缀不让上传 php jsp等)
但是你上传的是php%0a可以绕过黑名单,这个后缀也可以正常解析脚本代码
白名单可能不行(在白名单里面才可以上传 jpg png gif等)
1.jpg.php%0a 没考虑最后一个点为后缀,白名单就可以绕过

Apache HTTPD 位置后缀解析漏洞

上传一张带有后门代码的图片,命名为2.php.png,这样就可以绕过后缀的检测,还可以以php的格式解析

这个不算漏洞,这是配置不当造成的

Apache HTTPD 解析漏洞利用条件:
1、是这个中间件
2、文件命名需要基于本地上传为准

Nginx 文件名逻辑漏洞(CVE-2013-4547)
相关文章:https://vulhub.org/#/environments/nginx/CVE-2013-4547/

中间件是nginx

然后上传一个带后门的图片就可以了

注意:这里的文件名字在最后要加一个空格

成功getshell

总结:
1、文件名逻辑-CVE-2013-4547
影响版本:Nginx 0.8.41 ~ 1.4.3/1.5.0~1.5.7
2、解析漏洞-nginx.config配置不当
由此可知,该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。

nginx符合中间件即可测试

Web应用编辑器-Ueditor文件上传安全

<form action="http://192.168.46.139/net/controller.ashx?action=catchimage"
encype="multipart/form-data"method="POST">
<p>shell addr.<input type="text" name="source[]" /></p>
<input type="submit" value="Submit" />
</form>

实例CMS&平台-中间件解析&编辑器引用

1、中间件配置不当导致文件被恶意解析
2、CMS源码引用外部编辑器实现文件上传

思维导图

一个网站文件上传是来源于这个编辑器的文件上传,那么这个测试思路是什么呢?
直接找编辑器有没有安全漏洞

文件上传漏洞的思路:
看中间件:看中间件有没有报出安全问题
看文件上传来自编辑器还是来自程序员的代码