csrf與xss不同,它稱為跨站請求偽造,它是利用其他頁面的惡意指令碼來載入訪問或操作存在csrf的漏洞的可信**。
1.low級別
核心**如下:
<?php
if( isset(
$_get
[ 'login'
] ) ) ";
echo
"\" />"
; }
else
((is_null
($___mysqli_res
= mysqli_close
($globals
["___mysqli_ston"
]))) ?
false
: $___mysqli_res
); }
?>
沒有加任何過濾和驗證,抓去請求包如下:
發現它是通過get形式提交,因此可以構造如下惡意網頁1.html:
將其如果能讓可信使用者訪問,那麼會自動更改密碼為passowrd。
2.medium級別
核心**:
<?php
if( isset(
$_get
[ 'change'
] ) )
else
} else
((is_null
($___mysqli_res
= mysqli_close
($globals
["___mysqli_ston"
]))) ?
false
: $___mysqli_res
); }
?>
首先想到的是直接偽造reffer頭,但是cookie也要跟著偽造,此時的phpsession卻無法獲取,因此只能換一種其他思路。
還是想著如何進行繞過過濾函式吧。
首先了解下striops函式
stripos() 函式查詢字串在另一字串中第一次出現的位置(不區分大小寫)。
因此訪問的位址裡只要存在host就可以實現過濾的繞過,因此直接構造鏈結檔案為host.html即可。
其中構造的惡意**不變
3.high級別
核心**如下:
<?php
if( isset(
$_get
[ 'change'
] ) )
else
((is_null
($___mysqli_res
= mysqli_close
($globals
["___mysqli_ston"
]))) ?
false
: $___mysqli_res
); }
// generate anti-csrf token
generatesessiontoken
();
?>
high級別中加入了令牌機制,一種思路是獲取user_token,帶user_token提交,第二種思路就是通過xss獲取session,繼而提交惡意請求
DVWA筆記之三 CSRF
csrf與xss不同,它稱為跨站請求偽造,它是利用其他頁面的惡意指令碼來載入訪問或操作存在csrf的漏洞的可信 1.low級別 核心 如下 if isset get login echo else is null mysqli res mysqli close globals mysqli ston...
DVWA系列 CSRF 檔案包含
直接.robots.txt讀取robots.txt檔案 在linux下可訪問 etc passwd 遠端檔案包含 本漏洞需要 php 開啟 allow url fopen on allow url include on 這兩個函式,並且 magic quotes gpc off 嘗試訪問本地的乙個p...
DVWA親測CSRF漏洞
csrf是一種跨站點請求偽造,即使用者在a站點登入後,處於同一客戶端的b站點利用漏洞獲得了a站點的cookie等身份驗證資訊,並偽造成合法身份請求a站點。1 low級別的csrf漏洞利用。將安全級別設定為low,並提交一次修改密碼,通過抓包得到相應的get請求報文。在另一台伺服器上構造乙個網頁,標籤...