【安全测试】2_客户端脚本安全测试 _XSS和CSRF

📅 发布时间:2026/7/5 19:39:24 👁️ 浏览次数:
【安全测试】2_客户端脚本安全测试 _XSS和CSRF
文章目录一、跨站脚本攻击(XSS)1.1 XSS攻击的原理1.2 XSS攻击的类型1.3 XSS攻击常用的HTML标签1.4 XSS攻击步骤1.5 案例1.5.1 窃取用户Cookie1.5.2 注入外部JS文件1.6 XSS攻击防御1.7 XSS漏洞扫描1.8 总结二、跨站点请求伪造(CSRF)2.1 CSRF攻击原理2.2 CSRF攻击防御2.3 跨站请求删除微博案例三、总结一、跨站脚本攻击(XSS)XSS跨站脚本(cross site script)为了避免与前端css混淆改名为xss。跨站脚本攻击是指攻击者往Web页面里插入恶意Script代码当用户浏览该页面时嵌入的代码会被执行从而达到恶意攻击用户的目的。XSS攻击的危害盗取各类用户账户盗取、注入修改、删除客户端敏感数据网站木马肉鸡(控制受害机攻击别的机器)跨站脚本攻击(XSS)只针对web项目 攻击者通过改变前端页面元素请求地址或注入JS来获取非法数据cookie1.1 XSS攻击的原理1.2 XSS攻击的类型1、存储型将攻击代码存储到数据库每次打开指定的页面自动加载执行。场景留言板、注册2、反射型临时修改页面代码用户打开页面中招。场景图片、连接1.3 XSS攻击常用的HTML标签1.4 XSS攻击步骤1、页面查找XSS漏洞2、注入恶意程序3、客户端访问注入恶意程序的页面4、获取客户端敏感信息或攻击页面查找XSS漏洞-脚本:scriptalert(123)/script-说明:一般作为漏洞测试使用,如果页面支持弹出框执行意味着系统没有过滤和/字符说明存在XSS漏洞1.5 案例1.5.1 窃取用户Cookie1.5.2 注入外部JS文件1.6 XSS攻击防御1、HttpOnly给关键的Cookie都加上HttpOnly属性浏览器将禁止页面的javascript访问带有HttpOnly属性的Cookie2、输入检查检查用户输入的数据中是否包含了一些特殊字符如、、、如果发现存在特殊字符则将这些字符过滤或者编码3、输出检查在变量输出到HTML页面时可以使用编码或者转义的方式来防御XSS攻击1.7 XSS漏洞扫描1、手工检测优点校验结果精准但是对于一个大型Web应用效率比较低重点考虑哪里有输入、输入的数据在什么地方展示。2、软件自动检测优点方便却存在误报或者有些隐蔽的XSS无法检测出。1.8 总结XSS安全测试解决什么问题?避免客户端被注入恶意JS程序或修改标签链接地址导致数据丢失或访问黑客网站。XSS测试人员使用的步骤1、验证页面是否屏蔽了JS的注入 2、如果存在JS注入,提醒开发防护策略二、跨站点请求伪造(CSRF)CSRF ( Cross-site request forgery是指跨站请求伪造理解CSRF攻击攻击者盗用了你的身份以你的名义发送恶意请求或进行某些非常操作2.1 CSRF攻击原理2.2 CSRF攻击防御1、验证码验证码被认为是对抗CSRF攻击最简洁有效的防御方法但是处于用户体验考虑不能给所有的操作都加上验证码2、验证HTTP RefererHTTP Referer可被用于检查请求是否来自合法的“源”Referer引用是HTTP请求header的一部分3、添加token并验证在请求地址中添加token并验证2.3 跨站请求删除微博案例演示步骤: 1.黑客先发布一条微博进行删除操作 2.黑客通过抓包找到删除微博的接口确定传递的参数一般都是id) 3.黑客找到其他用户发布的微博信息并替换请求参数 4.黑客在自己的网站上伪造一个删除别人微博的请求: img th:srchttp://121.43.169.97:1688/delBlog?id101/ 5.黑客在发微博页面输入链接: a href http://121.43.169.97:9999/csrf target_blank点击有惊喜/a并诱惑用户进行点击 6.用户点击诱惑链接之后跳转到黑客网站在黑客网站中触发删除微博的请求进而删除用户资源.三、总结