软件安全缺陷测试报告
1. 缺陷标题:SQL注入漏洞
测试平台:Windows 10, Google Chrome 91.0
测试步骤:
- 打开The Internet主页。
- 点击“Login”链接,进入登录页面。
- 在用户名输入框中输入
admin' OR '1'='1
,在密码输入框中输入任意值。 - 点击“Login”按钮。
期望结果:系统应验证输入的用户名和密码,防止恶意注入,提示用户名或密码错误。
实际结果:成功登录,显示管理员页面。
分析:可能是由于用户输入未进行有效的过滤和转义,直接嵌入到SQL查询中导致。
2. 缺陷标题:跨站脚本攻击(XSS)漏洞
测试平台:macOS 11.2, Safari 14.0
测试步骤:
- 打开The Internet主页。
- 点击“Contact Us”链接,进入联系页面。
- 在留言输入框中输入
<script>alert('XSS');</script>
。 - 点击“Submit”按钮。
期望结果:系统应过滤输入内容,防止脚本执行。
实际结果:提交后页面弹出一个包含“XSS”的警告框。
分析:可能是由于用户输入未进行有效的过滤和转义,直接在页面中渲染导致。
3. 缺陷标题:跨站请求伪造(CSRF)漏洞
测试平台:Windows 10, Firefox 89.0
测试步骤:
-
打开The Internet主页。
-
登录用户账户。
-
在另一标签页中打开一个包含以下HTML代码的页面并加载:
<form action="https://the-internet.herokuapp.com/secure_area" method="POST"> <input type="hidden" name="username" value="attacker"> <input type="hidden" name="password" value="password"> <input type="submit"> </form> <script> document.forms[0].submit(); </script>
-
提交表单。
期望结果:系统应要求用户重新验证身份或包含CSRF令牌以防止请求伪造。
实际结果:表单提交成功,用户身份被替换。
分析:可能是由于系统未正确实现CSRF保护机制,缺少验证请求来源的有效性。
4. 缺陷标题:不安全的直接对象引用(IDOR)
测试平台:Windows 10, Google Chrome 91.0
测试步骤:
- 登录用户账户。
- 打开“个人资料”页面,记录当前用户ID,例如
https://the-internet.herokuapp.com/user/123
. - 修改URL中的用户ID为其他用户ID,例如
https://the-internet.herokuapp.com/user/124
。
期望结果:系统应验证用户身份,禁止访问其他用户的资料。
实际结果:成功访问其他用户的个人资料页面。
分析:可能是由于系统未正确验证用户的访问权限,直接使用用户提供的ID访问数据。
5. 缺陷标题:敏感数据泄露
测试平台:Windows 10, Google Chrome 91.0
测试步骤:
- 打开The Internet主页。
- 查看页面源代码或在开发者工具中查看网络请求。
- 找到包含敏感信息的请求或响应数据。
期望结果:敏感信息应被适当加密或隐藏。
实际结果:在页面源代码或网络请求中发现明文传输的用户名和密码。
分析:可能是由于系统未对敏感数据进行加密传输,直接以明文形式传递。