日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

DVWA-XSS(Reflected)(反射型跨站脚本攻击)

發(fā)布時間:2023/12/13 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 DVWA-XSS(Reflected)(反射型跨站脚本攻击) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

XSS,即(Cross Site Scripting)跨站腳本攻擊

XSS漏洞類型:
反射型(非持久):主要用于將惡意代碼附加到URL地址的參數(shù)中,常用于竊取客戶端cookie信息和釣魚欺騙。

存儲型(持久型):攻擊者將惡意代碼注入到Web服務器中并保存起來,只要客戶端訪問了相應的頁面就會受到攻擊。

DOM型:利用瀏覽器的DOM特性,不是向瀏覽器發(fā)請求而是直接通過在本地執(zhí)行從而修改或竊取本地的信息。

現(xiàn)在我們開始XSS反射型練習

Low

源代碼:

array_key_exists() 函數(shù)檢查某個數(shù)組中是否存在指定的鍵名,如果鍵名存在則返回 true,如果鍵名不存在則返回 false。這里鍵名為 name

可以看到,low級別的代碼只是判斷了name參數(shù)是否為空,如果不為空的話就直接打印出來,并沒有對name參數(shù)做任何的過濾和檢查,存在非常明顯的XSS漏洞

我們輸入<script>alert('hack')</script> 直接就執(zhí)行了我們的 js 代碼

Medium

源代碼:

在這里,str_replace()函數(shù)只把“<script>”做了一次過濾,(str_replace()函數(shù)不太完美,因為它區(qū)分大小寫)

但是雙寫,大寫還是可以寫入的,

我們可以直接大寫繞過

我們輸入<SCRIPT>alert('hack')</SCRIPT> ,直接就執(zhí)行了我們的js代碼

現(xiàn)在開始雙寫繞過

過濾代碼:

$name = str_replace( '<script>', '', $_GET[ 'name' ] ),<script>被攔截過濾掉

1、在What's your name? 輸入框內輸入:  <script>alert(123)</script>

提交后,瀏覽器沒有彈出我們預期的彈窗,顯示alert內容,相反,直接把“alert(123)”作為name顯示了出來,說明str_replace()函數(shù)在這里生效:

2、下面嘗試攻擊,在What's your name? 輸入框內輸入:

<sc<script>ript>alert("如果你能看到,說明攻擊成功")</script>

原理:在這里,str_replace()函數(shù)只把“<script>”做了一次過濾,

“  <sc<script>ript>alert("如果你能看到,說明攻擊成功")</script>  ”提交后,
完整的“<script>”字符串被攔截,“<sc”和"ript>"被拼接,服務器端實際接受的是“<script>alert("如果你能看到,說明攻擊成功")</script>"。

High

源代碼:

可以看到,high級別的代碼使用了正則表達式直接把 <*s*c*r*i*p*t 給過濾了,* 代表一個或多個任意字符,i代表不區(qū)分大小寫。所以,我們的<script>標簽在這里就不能用了。

但是我們可以通過img、body等標簽的事件或者iframe等標簽的src注入惡意的js代碼

我們輸入<img src=1 onerror=alert('hack')>
上面輸入的意思是,當圖片顯示錯誤時,然后執(zhí)行 alert('hack') ,
這里我們的src=1肯定顯示錯誤啊,所以就執(zhí)行alert語句

執(zhí)行完后查看網頁源碼,可以看到,我們的代碼插入到了頁面中。

Impossible

源代碼:

htmlspecialchars(string):把預定義的字符 "<" (小于)、">" (大于)、& 、‘’、“” 轉換為 HTML 實體,防止瀏覽器將其作為HTML元素

如果當我們輸入 <script>alert('hack')</script> ,因為htmlspecialchars函數(shù)會將 <和 >轉換成html實體,并且${name}取的是$name的值,然后包圍在<pre></pre>標簽中被打印出來,所以我們插入的語句并不會被執(zhí)行。

可以看出,impossible級別的代碼先判斷name是否為空,不為空的話然后驗證其token,來防范CSRF攻擊。然后再用htmlspecialchars函數(shù)將name中的預定義字符轉換成html實體,這樣就防止了我們填入標簽

總結

以上是生活随笔為你收集整理的DVWA-XSS(Reflected)(反射型跨站脚本攻击)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。