行业知识
【小迪安全】红蓝对抗 | 网络攻防 | V2022全栈培训笔记(WEB攻防31-34 -文件上传)
第31天 WEB攻防-通用漏洞&文件上传&js验证&mime&user.ini&语言特性
知识点:
1、文件上传-前端验证
2、文件上传-黑白名单
3、文件上传user.in妙用
4、文件上传-PHP语言特性
#详细点:
1、检测层面:前端,后端等
2、检测内容:文件头,完整性,二次渲染等
3、检测后缀:黑名单,白名单,MME检测等
4、绕过技巧:多后缀解析,截断,中间件特性,条件竟争等
#本章课程内容:
1、文件上传-CTF赛题知识点
2、文件上传中间件解析&编辑器安全
3、文件上传-实例CMS文件上传安全分析
演示案例:
CTFSHOW文件上传-151到161关卡
151关 前端过滤–直接修改前端允许上传的类型绕过
152关 前后端同时过滤–修改前端代码允许php文件上传–burp抓包修改content-type为image/png绕过
153关 前后端过滤同时严格过滤参数–上传.user.ini配置文件并将内容写为auto_prepend_file=test.txt–上传写有webshell的文件(可以为text也可以为png)–访问index.php即可反弹shell
补充知识:
- 配置文件 :php.ini
- 配置文件(php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和
CLI 版本,每次调用都会读取。(PHP: 配置文件 - Manual)
实际上,除了PHP_INI_SYSTEM以外的模式都是可以通过.user.ini来设置的。而且,和php.ini不同的是,.user.ini是一个能被动态加载的ini文件。也就是说修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。
这里就很清楚了,.user.ini实际上就是一个可以由用户”自定义“的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR
、 PHP_INI_USER”的设置。
其中有两个配置,可以用来制造后门:
auto_append_file ; 指定一个文件,自动包含在要执行的文件前。
auto_prepend_file ;指定一个文件,自动包含在要执行的文件后。 使用方法很简单,直接写在.user.ini中:
auto_prepend_file=test.txt
或者
auto_append_file=test.txt
154155关-JS验证+User.ini+短标签
//前提是开启配置参数short open tags=on//不需要开启参数设置 / /前提是开启配置参数asp tags=on
//不需要修改参数开关 user.ini:auto_prepend_file=test.png test.png: 思路:先尝试图片文件(发现验证不通过)--修改前端代码(存在后端验证)--burp修改文件类型--仍提示文件类型错误(尝试上传user.ini文件)--对png文件中的代码进行过滤(会检查文件中)中的php字段--使用不含php字段的代码(比如 :)156关 JS验证+user.ini+短标签+过滤
过滤 []
user.ini:auto_prepend_file=test.png
test png:
157-158-159JS验证+user ini+短标签+过滤
user.ini: auto_prepend_file=test.png
test.png:
test.png:
169 170 日志包含
构造.user.in利用条件:上传index.php内容随意
上传.user.ini包含日志:auto_prepend_fle=var/log/nginx/access.log
访问地址带后门UA头写入日志:
上传.user.ini是利用文件包含 上传.htaccess是利用文件解析漏洞
第33天 WEB攻防-通用漏洞&文件上传&中间件解析漏洞8似编器安全
知识点:
1、文件上传-二次渣染
2、文件上传-简单免杀变异
3、文件上传-.htaccess妙用
4、文件上传-PHP语言特性
#详细点:
1、检测层面:前端,后端等
2、检测内容:文件头,完整性,二次渣染等
3、检测后缀:黑名单,白名单,MIME检测等
4、绕过技巧:多后缀解析,截断,中间件特性,条件竞争等
#本章课程内容:
1、文件上传-CTF赛题知识点
2、文件上传-中间件解析&编辑器安全
3、文件上传-实例CMS文件上传安全分析
演示案例:
中间件文件解析-lIS&Apache&Nginx
Web应用编辑器-Ueditor文件上传安全
实例CMS&平台-中间件解析&编辑器引用
#中间件文件解析-llS&Apache&Nginx
IIS 6 7文件名目录名
1、文件名:X.asp;.x.jpg
2、目录名:x.asp/x.jpg
3、S7.X与Nginx解析漏洞一致
(该漏洞实现的条件:1中间件类型为IIS且版本对应 2、上传文件能不能修改目录或上传的文件名能增加命名)
(漏洞防护:严格命名规则:基于本地名命名、基于时间命名、基于随机字符命名 上传的文件名固定且目录无法创建则漏洞无法实现)
#Apache换行解析配置不当
1、换行解析-CVE-2017-15715
其2.4.0~2.4.29版本中存在一个解析漏洞
2、配置不当-.htaccess配置不当
AddHandier application/x-httpd-php .php
#Nginx 文件名逻辑解析漏洞
1,文件名逻辑-CVE-2013-4547
影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
注意此处文件名后要加空格
2.解析漏洞-nginx.conf配置不当
由此可知,该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。
#Web应用编辑器-Ueditor文件上传安全
shell addr.
思路:制作图片马–将图片马上传到vps–上述代码保存为html文件,将访问地址修改为编译器地址—访问html文件将图片马地址填入(构造好的http://xxxx/ueditor.jpg?.aspx)–点击submit,直接上传成功,并返回我们的aspx脚本木马路径地址–shell连接
参考文章:https://codeleading.com/article/27805571408/#google_vignette
#实例CMS&平台-中间件解析&编辑器引用
1、中间件配置不当导致文件被恶意解析
2、CMS源码引用外部编辑器实现文件上传
第34天 WEB攻防-通用漏同8&文件上传8黑白盒审计8逻捐&中间件&外部引用
知识点:
1、白盒审计三要素
2、黑盒审计四要素
3、白黑测试流程思路
#详细点:
1、检测层面:前端,后端等
2、检测内容:文件头,完整性,二次渲染等
3、检测后缀:黑名单,白名单,MIME检测等
4、绕过技巧:多后缀解析,截断,中间件特性,条件竟争等
#本章课程内容:
1、文件上传-CTF赛题知识点
2、文件上传-中间件解析&编辑器安全
3、文件上传-实例CMS文件上传安全分析
演示案例
白盒审计-Finecms-代码常规-处理逻辑
白盒审计-CuppaCms-中间件.htaccess
白盒审计-Metinfo–编辑器引用-第三方安全
#白盒审计-Finecms-代码常规-处理逻辑
黑盒思路:寻找上传点抓包修改突破获取状态码及地址
审计流程:功能点代码文件代码块抓包调试验证测试
#白盒审计-CuppaCms-中间件-.htaccess
总结:漏洞产生位置在用户中心上传头像处,因为未对文件内容进行过滤导致可以上传含有后门代码的文件,但是文件上传后会对文件进行重新命名,黑盒测试中会因为不知道上传文件路径文件名导致无法连接shell,白盒测试中则可以看到文件被命名为0x00.php
黑盒思路:存在文件管理上传改名奕破,访问后在突破
审计流程:功能点代码文件-代码块抓包调试验证测试
总结:上传点在后台文件管理–修改名称处–上传出会对文件进行严格过滤且会对文件进行重命名导致上传.user.in和.htaccess上传失败(白名单),在文件管理处可以对文件进行重命名,此处抓包可以抓到重命名的数据包,修改重命名后的文件名可以将png文件修改成php文件,访问发现403,是由于.htaccess配置文件导致media文件夹下php exe php5 等后缀名无法访问,在重命名处改包.// 将文件上传到上一级目录绕过,文件访问正常。第二种绕过思路:直接把.htaccess文件删除。
#白盒审计-Metinfo-编辑器引用-第三方安全
黑盒思路:探针目录利用编辑器漏洞验证测试
审计流程:目录结构-引用编辑器编辑器安全查询-EXP利用验证
总结:目录扫描–扫描出fackeditor目录–判断版本–使用exp上传webshell
#文件上传:
黑盒:寻找一切存在文件上传的功彰应用
1、个人用户中心是否存在文件上传功能
2、后台管理系统是佛存在文件上传功能
3、字典目录扫描探针文件上传构造地址
4、字典目录扫描探针编辑器目录构造地址
白盒:看三点,中间件,编辑器,功能代码
1、中间件直接看语言环境常见搭配
2、编辑器直接看目录机构或搜索关键字
3、功能代码直接看源码应用或搜索关键字