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攻击

XSS的攻击技巧

posted @ 2023-03-15 20:57  HKalpa  阅读(38)  评论(0编辑  收藏  举报