51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

SQL注入和XSS攻击的原理及防御方法,请分析360安全卫士官网或其Web服务中可能存在的Web安全风险点,并提出测试策略。

360助理安全研究实习生(漏洞挖掘与利用)——北京难度:中等

答案

1) 【一句话结论】:SQL注入通过用户输入绕过Web验证执行恶意SQL,XSS通过注入脚本在用户浏览器执行,360官网需重点测试搜索、登录、用户评论等输入点的风险,测试策略需覆盖参数化验证、数据库盲注、错误信息分析及CSP/CORS配置验证。

2) 【原理/概念讲解】:老师先讲SQL注入:“SQL注入的核心是Web应用将用户输入直接拼接进SQL查询语句,导致恶意SQL逻辑被执行。举个简单例子,假设官网登录接口的SQL是SELECT * FROM users WHERE username=? AND password=?,正常输入admin和123会查询匹配记录。但如果用户名输入' or '1'='1 --,SQL语句变成SELECT * FROM users WHERE username='' or '1'='1 --' AND password='123',--注释掉条件,结果总为真,绕过验证。防御上用参数化查询,把用户输入当作参数传递,数据库处理时不拼接SQL,比如SQL变成SELECT * FROM users WHERE username=? AND password=?,参数' or '1'='1 --'被当作字符串,不会执行恶意逻辑。” 然后讲XSS:“XSS(跨站脚本)是用户输入的恶意脚本被浏览器执行。比如官网搜索框,输入<script>alert('360被黑了')</script>,其他用户访问搜索结果页时,脚本在浏览器执行,弹出警告。防御用输出编码(把<转&lt;等)或内容安全策略(CSP)限制资源加载。比如搜索结果页的HTML是<div>${searchTerm}</div>,正常输入hello显示hello,输入脚本会被转义成&lt;script&gt;alert(1)&lt;/script&gt;,浏览器不执行。”

3) 【对比与适用场景】

攻击类型定义特性使用场景注意点
SQL注入恶意构造SQL语句绕过Web验证,执行恶意数据库查询直接修改数据库内容,绕过身份验证登录、搜索、用户信息查询等涉及数据库的接口需数据库权限,防御需参数化查询/预编译
XSS用户输入的脚本被浏览器执行,在用户端运行获取会话、窃取数据、篡改页面搜索结果、用户评论、登录弹窗等用户可见的输入输出不需权限,防御需输出编码+CSP

4) 【示例】

  • SQL注入示例:登录请求http://360.cn/login?username=admin' or '1'='1&password=123,正常admin验证失败,输入' or '1'='1后,SQL绕过,返回登录成功页面。
  • XSS示例:搜索框输入<img src=x onerror=alert(1)>,搜索结果页显示时,浏览器执行onerror事件中的脚本,弹出警告。

5) 【面试口播版答案】:“SQL注入是用户输入被直接拼接进SQL语句,导致恶意查询执行,比如登录时输入' or '1'='1 --绕过验证。防御用参数化查询。XSS是注入脚本在用户浏览器执行,比如搜索框输入<script>alert('xss')</script>。针对360官网,测试重点在搜索框、登录表单、用户评论等输入点,策略包括:1. 用Burp Suite抓取登录接口请求,修改用户名/密码为' or '1'='1 --,看是否绕过验证(如返回登录成功);2. 检查数据库(如用户列表、日志)是否有新增用户(验证SQL注入是否成功);3. 测试XSS时,输入反射型(搜索结果页)和存储型(评论),看脚本是否执行,验证CSP是否生效(如Content-Security-Policy: default-src 'self'; script-src 'self';)。”

6) 【追问清单】

  • 问题:如何测试360官网的SQL注入盲注?
    回答要点:用Burp Suite的Intruder工具进行参数暴力测试,结合时间盲注(如username=admin' and if(ascii(substring(database(),1,1))=97, sleep(5), 1)--)或布尔盲注,观察响应时间变化。
  • 问题:CSRF结合XSS的风险如何测试?
    回答要点:构造CSRF令牌(模拟用户会话),结合存储型XSS(如用户评论功能),验证是否导致会话劫持或数据泄露。
  • 问题:CSP配置如何验证?
    回答要点:通过浏览器开发者工具(F12)的“应用”标签查看响应头,确认Content-Security-Policy字段,或输入受CSP限制的脚本(如<script src=evil.com>),看是否被阻止。

7) 【常见坑/雷区】

  • 忽略盲注测试:仅用明文测试,未考虑数据库无错误提示时的盲注方法。
  • 忽略CSRF结合XSS:未测试CSRF令牌是否被篡改,导致XSS脚本执行时触发会话劫持。
  • 未覆盖存储型XSS:仅测试反射型XSS(如搜索结果),未检查用户评论、用户信息编辑等存储型场景。
  • 混淆SQL注入和命令注入:命令注入执行系统命令(如system('ls')),SQL注入执行SQL,需明确区分。
  • 防御措施不验证:仅说用参数化查询,未说明如何验证数据库是否已参数化(如查看SQL日志或代码)。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1