dvwa审计学习
0x00 环境
[TOC]
php环境:5.4.45
mysql环境:5.6.35
dvwa版本:官网最新
0x01 SQL注入漏洞
Low级别漏洞代码
if( isset( $_REQUEST[ 'Submit' ] ) ) {//判断request中的submit是否已设置 |
漏洞点
//此处执行拼接了用户输入的参数,id为字符型注入,需要闭合单引号 |
使用法师的工具中的mysql监控可监控语句
1' and 1=1# |
Medium级别漏洞代码
if( isset( $_POST[ 'Submit' ] ) ) { |
漏洞点
//虽然使用mysqli_real_escape_string函数来转义字符,但此处未使用单引号包裹,导致形成数字型注入,直接写payload即可,数字型注入不需要单引号或者双引号,所以mysqli_real_escape_string函数在此处无效 |
High级别漏洞代码
if( isset( $_SESSION [ 'id' ] ) ) { |
漏洞点:
//此段代码未做过滤,且比LOW文件中的代码多了limit 1,使用#号注释即可,注入为字符型,闭合单引号即可 |
0x02 命令执行漏洞
Low级别漏洞代码
if( isset( $_POST[ 'Submit' ] ) ) { |
漏洞点
//shell_exec执行命令,后面未做过滤,直接拼接字符串,执行多个命令可使用;分割 |
Medium级别漏洞代码
|
漏洞点
// 此处过滤&& 和 ; ,但是未过滤||, |,& |
High级别漏洞代码
if( isset( $_POST[ 'Submit' ] ) ) { |
漏洞点
//以下为过滤的字符,经测试&&、&、;都不可用,|、||,存在绕过的现象 |
0x03 文件上传漏洞
Low级别漏洞代码
if( isset( $_POST[ 'Upload' ] ) ) { |
Medium级别漏洞代码
if( isset( $_POST[ 'Upload' ] ) ) { |
漏洞点
//此处设置类型只能是image/jpeg、image/png,并且文件小于100000 |
High级别漏洞代码
if( isset( $_POST[ 'Upload' ] ) ) { |
漏洞点
//白名单验证文件后缀名必须为jpg、jpeg、png,且只验证最后一个.的后缀名,文件大小小于1000000 |
代码成功执行
0x04 文件包含漏洞
Low级别漏洞代码
// The page we wish to display |
Medium级别漏洞代码
// The page we wish to display |
漏洞点
//过滤http协议和../ 、..\ |
High级别漏洞代码
// The page we wish to display |
0x05 反射型XSS漏洞
Low级别漏洞
header ("X-XSS-Protection: 0"); |
Medium级别漏洞代码
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { |
High级别漏洞代码
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { |
0x06 存储型XSS漏洞
Low级别漏洞代码
if( isset( $_POST[ 'btnSign' ] ) ) {//判断post中的btnsign是否已设置 |
Medium级别漏洞代码
if( isset( $_POST[ 'btnSign' ] ) ) { |
High级别漏洞代码
if( isset( $_POST[ 'btnSign' ] ) ) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Time'Blog!
评论