記錄一次有意思的XSS過濾繞過


  我的朋友趙一天今晚給我發了一個站,跟我說他xss繞不過去,讓我試試。我正好無事,就幫她看看咯。

    通過趙一天發我的站點,說實話,我自己學到了很多東西,感謝大佬的教誨。今天分享出來:

    站點:xxx.com/sou

      

 

當我嘗試:

  xxx.com/souaaaa

    

 

我們查看源碼或者f12 Ctrl+f搜索aaaa:

頗為震驚,搜索結果有400多條。。

    

 

 

首先是我們發現第一處利用是<input>標簽,下面的都是href=""中利用

    繼續往下看看aaaa還在哪些標簽里面:

下面大部分都是a標簽。。

    

 

 

 

繼續往下看:

我們發現aaaa在我們的js中。

 

 

ok我們整理好了,我們輸入的aaaa在input,a和js中輸出了。

  現在我們以input元素為例子嘗試去xss攻擊:

    首先我先嘗試閉合標簽:

       

 

然后查看源碼:

真刺激,我們輸入的>被轉義成了全角的>

    

 

無法利用了

換個姿勢我們還能" onxx=

我們試試:

    

 

查看源碼:

   

 

沒有對onxxx進行過濾,慶幸的是咱們可以onxxx

  這里就用onmouseover了。那么我們直接 "%20onmouseover=alert(1)"

       

 

我們發現沒有彈窗。。看看怎么回事吧。。

  

""(1)""

觀察發現,過濾了alert這個彈窗事件,括號變成了中午的括號:

 我這里采取的措施:把alert事件改成

 

 

過濾了alert

 我們嘗試其他彈窗方法,confirm和prompt,因為過濾了括號,所以使用``(反引號進行利用):

  嘗試: 

       

 

查看源碼:

    

 

 

prompt沒被過濾掉,反引號被過濾了。。頭大了 。

  然后我嘗試對其進行各種編碼再次查看源碼:

    

變成這個樣子,現在我們來總結下我們的過濾問題: 

 1.全局的過濾了(),當攻擊者輸入()將會轉義成中文的括號

2.當攻擊者對()進行編碼處理直接不顯示信息被過濾

 3.當攻擊者輸入>會被轉義成全角的>

  首先從這里看來我們無法明面上進行彈窗xss了。。

  那么我們使用另一種思路

   從onxxx=下手

    onxxx=內容=<script>內容</script>

    我首先選擇document節點,因為過濾了()所以我不能document.getElementById(id)肯定會被過濾。。。

   那么我現在想加載document還想要不被過濾?怎么做? 選擇一個不使用()的不就可以了嗎。

    我嘗試:看看是否可以

    

 

     

 

 

除了這種方法我們還有其他辦法執行嗎?

答案是肯定有:" onmouseover="var ccc=11111;document.body.innerHTML=ccc//

  

 

成功閉合

 

對於xss我們的感覺就是必須得彈窗,這里沒彈窗,我們的目標,不彈窗誓不罷休:

我們知道location.hash這個屬性

  今天我們要講解一個新知識點,docuemt.URL

 document.URL屬性包含頁面完整的URL比如:{協議}://{用戶名}:{密碼}@{主機名}:{端口號}/{路徑}/{文件}?{參數}

他的功能和location.hash類似,我們可以#xss payload利用:

  我們如下:" onmouseover=document.body.innerHTML=document.URL "#<img src=1 onerror=alert(1)>

在最新版本IE下:

 

為什么我不用var xx=xss payload;document.body.innerHTML=xx是因為<>被轉義了。。

 

現在這是一種彈窗方式,還有一種就是JS下的。

 

JS下的彈窗,我首選location.href:

 

 

 

簡直了到處過濾

沒辦法了還是使用我們之前的姿勢吧:"; document.body.innerHTML=document.URL// #<img src=1 onerror=alert(123)> 

 JS下利用

 

記錄學習下,蠻有意思的。。。如果有其他思路歡迎留言。

 

 

 

 

 

 

 

 

  

 

 

    

 

 

 

 

      

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM