前言
關於xss基礎內容請檢視:
實驗平台採用dwva v1.10
xss(reflected)反射性xss漏洞
xss( reflected)
1.low
<?phpheader ("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...
開口練音標
從中秋放假開始,根據自願原則,我們開始了集中學習音標。在這個過程中,學到了很多,同時,也暴露出了很多問題。剛開始的時候,自以為自己以前學過國際音標,再次學習音標應該不是什麼難事。當真正開始接觸的時候才發現不是那麼回事兒。雖然也沒有別人說的那麼邪乎吧,但多多少少還是有些不同之處的。這次接觸的是美式音標...