XSS跨站脚本(中危漏洞) - 总结
JS注入/网页前端注入
概念基础
-
XSS的原理:服务器没有对用户输入的数据进行过滤/服务器对用户输入的数据过于信任,导致用户输入的恶意代码被执行
-
XSS的危害:获取管理员cookie/提权,网站篡改,敏感信息泄露,钓鱼,网站挂马,客户端攻击,传播蠕虫
-
XSS的防御:用户输入和Web输出均进行过滤,过滤特殊字符<>,",#,特殊标签,JS动作等等;限制用户输入数据的类型/长度;黑白名单;通过使cookie和系统IP绑定,来降低cookie泄露后的危险
XSS分类及判断
DOM型:只是基于前端本地的攻击类型,和服务器没有交互,根据是否和服务器产生了交互来进行判断。
存储型:攻击者将恶意代码通过注入存储在服务器数据中,持久性存在,所有访问受害网站的用户均会受到攻击,危害性大。根据是否持久性存在于网站来进行判断。
反射型:攻击者将恶意JS代码与网站URL或传参进行拼接,实现一次性攻击,当攻击完成后该恶意代码不会存储在服务器数据中,根据刷新后是否能触发XSS以及和服务器是否产生了交互来判断。
xSS攻击手法及思路
-
在网页搜索栏,登录框等等,寻找传参?*=;然后在传参处直接写入标签,根据页面源代码的结果,构造相应的路过语句。如果在功能点未找到可利用传参,可以查看页面源代码是否存在隐藏的传参,其次可以抓包在cookie,referer,UA头处进行尝试。
XSS绕过手法细节
常用XSS标签:JS动作是否加双引号取决于所在标签
<script>alert(1)</script>
<input onfocus="alert(1)">
<img src=* onerror=alert(1)>
<a href="javascript alert(1)">*</a>
<svg onfocus="alert(1)">*</svg>
<select onclick="alert(1)">*</select>
<video><source onerror="alert(1)">*</video>
<iframe onclick=alert(1)>*</iframe>
<body onload=alert(1)>*</body>
<audio src=* onmouseover=alert(1)>
常用XSS闭合符
-
单引号,双引号,括号,极少量的中括号,组合使用的类型
常用XSS绕过手法
-
大小写
-
更换JS代码的等价写法/等价函数
-
闭合标签
-
等价符
-
伪协议
-
URL编码
-
双写
-
实体编码
-
脏数据
-
更换非黑名单标签/更换非过滤标签
-
注释绕过
-
同域站点包含(已废弃),例如XSS挑战之旅中的包含第一关实现XSS攻击
本文作者:HKalpa
本文链接:https://www.cnblogs.com/HKalpa/p/17220006.html
版权声明:本作品采用本人所有操作均在实验环境下进行,用于其它用途后果自负,作者不承担相应的后果。中国大陆许可协议进行许可。