aboood
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
1.路径遍历漏洞
1.1 存在漏洞方法
从源代码中可以看出路径参数未做任何的过滤限制,简单的判断文件是否存在或者是否为目录,读取文件内容全部内容经过base64编码返回前端,使用payload:http://localhost:8080/path_traversal/vul?filepath=d:/test.txt,D盘下的测试文件被成功读取。
1.2 安全方法
在安全方法中对文件路径参数增加了过滤方法pathFilter,如果文件路径开头为/字符或者存在..连续字符出现就返回空字符串,但是这种过滤只是简单的应对措施,如果是Windows操作系统上以盘符开始的路径,就显得无能为力。
2.文件上传漏洞
2.1singleFileUpload方法(漏洞方法)
查看方法源代码,文件上传到方法中,未判断文件的类型、扩展名等信息,也未对生成文件的文件名进行重置,只是直接将文件上传到文件保存目录中,使用测试文件成功长传。
2.2uploadPicture方法(安全方法)
uploadPicture方法比singleFileUpload方法在安全方面增加许多措施,设定的只能是图片类文件上传,多道过滤措施防止恶意文件上传成功,建议在实际应用中还应将上传文件的文件名重置为随机字符串。
首先是对上传文件扩展名的白名单过滤,名单之外的扩展名上传都会失败。
其次是判断MIME类型是否是允许上传的类型,(MIME媒体类型(简称MIME类型)是描述报文实体主体内容的一些标准化名称,比如,text/html、image/jpeg)。
最后是对上传图片实际内容的判断,如果图片可以正常读取,就判断其为允许上传文件,否则上传失败。
3.XSS跨站脚本漏洞
3.1reflect方法(漏洞方法)
漏洞演示代码为常见的反射型xss漏洞,参数未做过滤,直接显示在前端页面。
3.2store方法和show方法(漏洞方法)
两个方法演示了存储型xss漏洞的原理,store方法将未经过滤的参数直接存储于cookie中,show方法在cookie中将存储的漏洞参数直接显示在页面上。
3.3safe方法(安全方法)
从代码中可以看到在漏洞方法的基础上增加了encode过滤方法,对参数中的特定字符进行html转义,可以有效地杜绝xss漏洞的产生。
4. XXE漏洞( 即MXL外部实体注入漏洞)
4.1xmlReaderVuln方法(漏洞方法)
查看源代码时可以看到XMLReaderFactory生成XMLReader解析XML文档时,未做任何安全防护措施,导致在解析XML文档导致漏洞存在,使用payload攻击目标程序,DNSLOG成功记录到解析记录。
4.2xmlReaderSec方法(安全方法)
通过设置xmlreader的setFeature方法,控制解析器的行为禁止外部引用,避免漏洞的发生。
4.3DocumentBuilderVuln01方法(漏洞方法)
带回显得漏洞演示代码,使用payload可以读取到测试文件内容。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
