CTF Web XSS攻击
XSS漏洞原理
XSS全称:跨站脚本(Cross Site Scripting)
攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript代码,导致管理员/用户访问时触发,从而达到攻击者的目的。
主要原因还是服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的。
事实上该漏洞在实战中还是需要搭配其他攻击手段来使用,单独利用XSS漏洞可能只能获取用户的Cookie资料
漏洞类型
XSS类型 | 存储型 | 反射型 | DOM型 |
---|---|---|---|
触发过程 | 1. 黑客构造XSS脚本 2. 正常用户访问携带XSS脚本的页面 |
正常用户访问携带XSS脚本的URL | 正常用户访问携带XSS脚本的URL |
数据存储 | 数据库 | URL | URL |
谁来输出 | 后端Web应用程序 | 后端Web应用程序 | 前端JavaScript |
输出位置 | HTTP响应中 | HTTP响应中 | 动态构造的DOM节点 |
是否持久 | 是 | 否 | 否 |
漏洞防御
对输入和URL参数进行过滤(白名单和黑名单)
检查用户输入的数据中是否包含一些特殊字符,如<、>、’、“等,发现存在特殊字符,将这些特殊字符过滤或者编码。HTML实体编码
字符串js编码转换成实体html编码的方法(防范XSS攻击)
https://www.cnblogs.com/dearxinli/p/5466286.html对输出内容进行编码
在变量输出到HTML页面时,可以使用编码或转义的方式来防御XSS攻击。消除危险插点
应尽量避免直接在现有的JavaScript中插入用户可控的数据;
如果标签属性接受URL作为它的值,应避免嵌入用户的输入;
设置set-cookie为httponly或secure
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 R1ck's Portal!
评论