如何从0到1做一次完整的安全测试(下)

发表于:2023-6-19 09:13

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:白鹤    来源:知乎

  10、其他
  ①支持不推荐使用的SSL版本
  只需要开发同学修改配置即可。
  ②Cookie中无HTTPonly属性
  只需要开发同学修改配置即可。
  (二)漏洞复现方式
  1、复现SQL注入漏洞
  打开扫描的scan文件,选择SQL注入-请求/响应--测试,根据请求信息,进行复现。
  分析下这个问题,这个接口主要是将参数sort_fields的值改为date_time%27%3B后,响应信息中出现了数据库的相关信息,说明攻击成功了。(查看数据库相关的报错信息可点击页面的黄颜色ab按钮,一直往下,可查看所有的报错信息)。
  这是一个get请求,可以直接在浏览器中进行复现,先登录系统,直接在url中输出如图GET后到HTTP/1.1之前的参数,前面加上http://host或https://host,拼接起来就是http:/host/manage/report/activity-list?pageXXXXXXXXXXXXXXXsort_fields=%7B%22value%22%3A%22date_time%27%3B%22%2C%22soXXXXXXXXXXXXXXXXXX-20%22,%222021-10-19%22]%7D,即可复现。
  2、复现跨站点请求伪造csrf漏洞
  在实际的项目中,只要测试报告中有csri的漏洞问题,就可以人工去查看post或get接口的请求头,是否包含token和referer。
  如果没有包含,就去尝试复现,理论上,使用post请求去复现,但是目前团队由于无法解决跨域的原因,还没构造出对应的表单,所以复现就直接用get接口了,
  利用get请求复现的方法很简单:
  ①在浏览器中登录系统,找到一个get接口链接A,复制下来。
  ②再去百度,随便搜索一个博客链接B,找到元素的链接B后,右键编辑,直接将B替换为所测。
  ③点击博客上刚刚替换链接对应的文字,如果跳转的页面返回了接口A的信息,则证明攻击成功,存在跨站点请求csr的问题,如果不是,则会返回无权限或接口的其他状态码等等。
  3、复现跨站点脚本攻击xss漏洞
  复现步骤与SQL漏洞复现的步骤几乎一致。
  ①打开扫描的scan文件,选择跨站点脚本编制--请求响应--测试,根据请求信息,进行复现。
  分析下这个问题,这个接口主要是将参数skuName的值改为%3C%2Fscript+%3E%3Cscript%3Ealert%28124%29%3C%2Fscript%3E(decode解码后是:</script+><script>alent(124)</script>)后,响应信息中出现了js脚本信息,说明攻击成功了,(查看数据库相关的报错信息可点击页面的黄颜色ab按钮,一直往下,可查看所有的报错信息)
  这是一个post请求,可通过接口测试工具例如Jmeter或Postman进行复现,请求参数和请求头信息被写入数据库,每次加载页面的时候,都会执行该JS脚本,在页面上可以看到如下的效果。
  补充:
  ①复现反射型XSS漏洞的方式,在get接口请求参数中加入</script><script>alert(123456)</script>即可,看页面是否会输出123456,输出了,则证明执行了脚本文件,存在XSS漏洞。
  ②复现DOM基于文档对象模型漏洞的方式,直接在前端找到元素,修改为</script+><script>alert(124)</script>之后,如果弹出执行窗口,就证明存在漏洞。
  四、总结测试结果形成报告
  (一)发送测试报告
  以邮件的形式发送测试报告,测试报告主要包含两份附件:导出的安全测试报告和手写的测试报告。
  这两份报告的区别:从生成的scan测试文件直接导出来的报告,会显示所有的问题,高中低都会显示,且有些问题是无法复现的。
  而自己手写的测试报告,包含了开发负责人,测试负责人,以及需要修复的漏洞,对比导出的报告,做出了筛选,只列出了需要修复的漏洞,以及对应的接口地址,修复情况等等。
  测试邮件则包含:
  1、项目名称
  2、网址
  3、开发负责人
  4、测试负责人
  5、测试概述(即介绍安全测试的意义)
  7、测试工具
  8、风险等级(包含的漏洞风险等级,以及问题总数)
  9、风险类型(SQL注入,跨站点请求伪造等等)
  10、测试日期
  11、安全审计员
  具体报告的呈现形式取决于项目组,如果大家对模板感兴趣,可以私我领取。
  (二)开发修复漏洞
  待开发同学修复漏洞之后,需要重新验证,验证方法与重现方法一样,可参考重现方法。
  验证完后可在之前的scan文件上,用工具验证一轮。
  (三)回归验证结果
  待所有的问题修复完后,回复一个验证报告。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号