DVWA xss部分原始碼分析

2022-03-26 23:11:43 字數 1977 閱讀 5207

官網:

級別low

檢視原始碼:

<?php 

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

// is there any input?

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

?>

分析name變數沒有過濾,直接輸出

payload

/vulnerabilities/xss_r/?name=

分析

lang變數通過document.location.href來獲取url,並沒有過濾就輸入到了option標籤中

級別:medium

檢視原始碼:

<?php 

// is there any input?

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

分析:

如果是impossible難度則decodeuri="",意思就是不解碼,那麼標籤就會被過濾,無法閉合標籤和建立新標籤,所以無法xss

級別:low

檢視原始碼:

<?php 

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

?>

分析:trim()函式 stripslashes() 函式 mysqli_real_escape_string() 函式只是對/型別的處理過濾轉碼,主要是對資料庫的保護並未設計的xss的內容,故可以直接xss

級別:medium

檢視原始碼:

<?php 

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

?>

分析:對message和上乙個一樣,沒希望突破,對name來說preg_replace( '/

payload:

name:message:lmg66

級別:impossible

檢視原始碼:

<?php 

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

// generate anti-csrf token

generatesessiontoken();

?>

分析:

redux原始碼分析(三) 原始碼部分

下面是每個部分的一些解讀 createstore apicreatestore reducer,initialstate enhancer 曾經非常好奇這個函式的第二個引數到底是initialstate還是enhancer,因為見過兩種寫法都有的,以為是版本問題。看了原始碼才發現,都可以的。如果你不...

junit部分原始碼分析

通過對junit的粗略了解,大致的知道了這裡面的幾種模式 junit原始碼與之spring hibnate原始碼相比,就比較簡單了,但是麻雀雖小,五臟俱全,這裡面用到了幾 種設計模式,也是乙個短小精悍 非常完所的乙個框架。下面講乙個它的整體的框架吧 先得到testresult的物件,然後通過它的物件...

junit部分原始碼分析

通過對junit的粗略了解,大致的知道了這裡面的幾種模式 junit原始碼與之spring hibnate原始碼相比,就比較簡單了,但是麻雀雖小,五臟俱全,這裡面用到了幾 種設計模式,也是乙個短小精悍 非常完所的乙個框架。下面講乙個它的整體的框架吧 先得到testresult的物件,然後通過它的物件...