XSS闖關之第四關
阿新 • • 發佈:2018-05-15
網絡安全 web安全 XSS 入門級 開啟第四關
查看源代碼
這裏我們看到,我們傳入進去的值又經過了兩個函數的參與。
函數說明:
Str_replace(“>”,””,$str),此函數將變量str中的字符>轉換為空,轉換時區分大小寫。同理將<裝換為空,然後在經過htmlspecialchars()函數,將一些預定義符號轉換為html實體。
通過這幾個函數的過濾轉化,我們前三關的payload肯定對不能用的。所以接下來我們需要做的就是,在沒有符號“<>”的情況下,並且語句不被htmlspecialchars()函數影響的情況下構建payload。
所以我們在這裏可以構造一個輸入到文本框後出現相應的事件。我們的payload:
“ onfocus=alert(1) autofocus=”
這樣我們輸入的payload沒有被函數過濾,並且經過htmldpecailchars()函數轉換並不影響最 input文本框。所以輸入後文本框內容就變成了:
<input name=keyword value=””onfocus=alert(1) autofocus=””>
Onfocus事件:定義的事件將在對象獲得焦點時觸發,這裏指input標簽獲得焦點。
Autofocus屬性:input標簽的屬性,當頁面加載input標簽,自動獲得焦點。
焦點:這裏指你的光標的位置,也就是說當你的光標出現在input文本框這裏,將進行onfocus事件的發生。
我們的結果:
方法不唯一,歡迎加入你的體會。
總結:每段代碼有它的安全機制,同樣也有它的局限性,這關的代碼雖然感覺寫的很不錯,但是,往往還是能被利用並繞過。你使用了過濾符號的機制,而我可以繞過你的過濾攻擊你。這裏過濾<>符號,攻擊的時候就不使用帶有這樣符號的paylod就可以
查看源代碼
這裏我們看到,我們傳入進去的值又經過了兩個函數的參與。
函數說明:
Str_replace(“>”,””,$str),此函數將變量str中的字符>轉換為空,轉換時區分大小寫。同理將<裝換為空,然後在經過htmlspecialchars()函數,將一些預定義符號轉換為html實體。
通過這幾個函數的過濾轉化,我們前三關的payload肯定對不能用的。所以接下來我們需要做的就是,在沒有符號“<>”的情況下,並且語句不被htmlspecialchars()函數影響的情況下構建payload。
所以我們在這裏可以構造一個輸入到文本框後出現相應的事件。我們的payload:
這樣我們輸入的payload沒有被函數過濾,並且經過htmldpecailchars()函數轉換並不影響最 input文本框。所以輸入後文本框內容就變成了:
<input name=keyword value=””onfocus=alert(1) autofocus=””>
Onfocus事件:定義的事件將在對象獲得焦點時觸發,這裏指input標簽獲得焦點。
Autofocus屬性:input標簽的屬性,當頁面加載input標簽,自動獲得焦點。
焦點:這裏指你的光標的位置,也就是說當你的光標出現在input文本框這裏,將進行onfocus事件的發生。
方法不唯一,歡迎加入你的體會。
總結:每段代碼有它的安全機制,同樣也有它的局限性,這關的代碼雖然感覺寫的很不錯,但是,往往還是能被利用並繞過。你使用了過濾符號的機制,而我可以繞過你的過濾攻擊你。這裏過濾<>符號,攻擊的時候就不使用帶有這樣符號的paylod就可以
請開啟<第五關>
XSS闖關之第四關