DWVA XSS部分練手闖關

2021-10-02 13:03:45 字數 2285 閱讀 1807

前言

關於xss基礎內容請檢視:

實驗平台採用dwva  v1.10

xss(reflected)反射性xss漏洞

xss( reflected)

1.low

<?php 

header ("x-xss-protection: 0");

if( array_key_exists( "name", $_get ) && $_get[ 'name' ] != null

) ?>

分析** 不存在任何過濾直接輸入:

成功彈窗!

preg_replace()函式執行乙個正規表示式的搜尋和替換

利用非script標籤繞過

4.impossible

<?php 

//is there any input?

if( array_key_exists( "name", $_get ) && $_get[ 'name' ] != null

)

";}//

generate anti-csrf token

generatesessiontoken();

?>

xss(dom) dom型xss

1.low

<?php 

header ("x-xss-protection: 0");

if( array_key_exists( "name", $_get ) && $_get[ 'name' ] != null

) ?>

不存在任何過濾直接利用!

payload:

成功出發彈窗!

strip_tags() 函式剝去字串中的 html、xml 以及 php 的標籤。

addslashes() 函式返回在預定義字元之前新增反斜槓的字串。

str_replace() 函式以其他字元替換字串中的一些字元(區分大小寫)。

看到$message被多次過濾而$name值未過濾我們可以通過$name傳遞,前端限制了$name長度我們可以通過審查元素增加它的長度

提交得到彈窗!

addslashes() 函式返回在預定義字元之前新增反斜槓的字串。

strip_tags() 函式剝去字串中的 html、xml 以及 php 的標籤。

htmlspecialchars() 函式把預定義的字元轉換為 html 實體。

上面三個函式都是對$messag進行過濾

preg_replace()正則匹配對$name進行過濾 所以我們想辦法繞過$name這邊的過濾就ok

3.impossible

<?php

if( isset( $_post[ 'btnsign'] ) )

//generate anti-csrf token

generatesessiontoken();

?>

推薦優秀的類似文章

冬練三九,夏練三伏

00 乙個非常簡單的練習題,如果你懂了所讀,就能立刻給出答案。這樣乙個習題幾乎總是能被 口算 出來。10 乙個簡單的練習題,會使你回顧一下你所學,但是並不難。你最多需要花費1分鐘。筆和紙或許能派上用場。20 乙個中等的練習題,來測試一下你對所學的理解,但是你可能需要花費15至20分鐘來完整的完成之。...

dp 雜練 專練 round2

上次題似乎有點水 大概到noi之前會進行一些針對自己薄弱點的專項訓練吧 bz oj1419re disg ood 額.dp i j 表示re d剩i張 bla ck剩j 張的期望 每次期望 概率 轉移就行 注意如果期望在 0以下就 不取了 空間不夠 所以滾 一下 code by liuchenrui...

開口練音標

從中秋放假開始,根據自願原則,我們開始了集中學習音標。在這個過程中,學到了很多,同時,也暴露出了很多問題。剛開始的時候,自以為自己以前學過國際音標,再次學習音標應該不是什麼難事。當真正開始接觸的時候才發現不是那麼回事兒。雖然也沒有別人說的那麼邪乎吧,但多多少少還是有些不同之處的。這次接觸的是美式音標...