Web安全测试指南--文件系统

上传:

编号

Web_FileSys_01

用例名称

上传功能测试

用例描述

测试上传功能是否对上传的文件类型做限制。

严重级别

前置条件

1、  目标web应用可访问,业务正常运行。

2、  目标系统存在上传功能,并且有权限访问使用。

3、  已安装http拦截代理(burpfiddlerwebscarab均可)。

4、  目标系统使用http而不是ftp等其它方式实现上传。

5、  具有登录目标服务器后台的账户和权限。

执行步骤

1、  登录目标系统并访问具有上传功能的页面。

2、  尝试上传一个合法文件,比如:

Host: www.example.com

[other HTTP headers]

------------Ij5Ij5cH2GI3cH2ei4GI3Ef1GI3Ij5

Content-Disposition: form-data; name="Filename"

userpic.jpg

[other body content]

3、  burp拦截到的http请求转入burp repeater

4、  burp repeater中将上传文件的文件名后缀改成危险文件的后缀(比如:jspphphtmlexe等等),重新提交,比如:

POST /login.jsp HTTP/1.1  #登录接口

Host: www.example.com

[other HTTP headers]

------------Ij5Ij5cH2GI3cH2ei4GI3Ef1GI3Ij5

Content-Disposition: form-data; name="Filename"

userpic.jsp

[other body content]

5、  登录到目标服务器后台检查结果(非必须)。

6、  burp repeater的文件名中使用截断字符串(%00)尝试再次上传

POST /login.jsp HTTP/1.1  #登录接口

Host: www.example.com

[other HTTP headers]

------------Ij5Ij5cH2GI3cH2ei4GI3Ef1GI3Ij5

Content-Disposition: form-data; name="Filename"

Userpic.jsp[%00].jpg

[other body content]

7、  再次登录到目标服务器后台检查结果(非必须)。

预期结果

步骤46无法上传文件,或者上传后无法实际利用。

测试结果

 

备注

1、  考虑到目标系统可能会做渲染或强制重命名等复杂因素,因此,最好是进行实际利用来判定结果。

2、  如果能够从目标系统的响应信息中构造上传文件的路径,则可以不用登录到目标服务器后台。

3、  本用例只考虑最常见的情况,实际上传漏洞还和业务逻辑、web服务器补丁版本等多个因素有关,需要完善。

 

编号

Web_FileSys_02

用例名称

上传功能测试

用例描述

测试上传模块是否对用户上传的频度和总容量做限制。

严重级别

前置条件

1、  目标web应用可访问,业务正常运行。

2、  目标系统存在上传功能,并且有权限访问使用。

3、  已安装http拦截代理(burpfiddlerwebscarab均可)。

4、  目标系统使用http而不是ftp等其它方式实现上传。

5、  具有登录目标服务器后台的账户和权限。

执行步骤

1、  登录目标系统并访问具有上传功能的页面。

2、  尝试上传一个合法文件,比如:

Host: www.example.com

[other HTTP headers]

------------Ij5Ij5cH2GI3cH2ei4GI3Ef1GI3Ij5

Content-Disposition: form-data; name="Filename"

userpic.jpg

[other body content]

3、  burp拦截到的http请求转入burp intruder

4、  使用burp intruder并发大量上传请求,并观察结果。

预期结果

目标系统返回类似“过于频繁”或“容量达到上限”的错误提示。

测试结果

 

备注

1、  并发请求的数量取值应根据业务安全需求来决定,比如:可上传的总容量和频率设置等。

2、  关于burp intruder的使用参考《常见安全工具使用指南》。