DVWA通关教程

1.首先先把难度调为low,进行brute force

首先审计代码

' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '
' ); if( $result && mysqli_num_rows( $result ) == 1 ) { // Get users details $row = mysqli_fetch_assoc( $result ); $avatar = $row["avatar"]; // Login successful echo "

Welcome to the password protected area {$user}

"; echo ""; } else { // Login failed echo "

Username and/or password incorrect.
"; } ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res); } ?>

$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';"  关注这条代码,当admin'or'1'='1,这条代码变成了$query  = "SELECT * FROM `users` WHERE user = '$admin'or'1'='1' AND password = '$pass';"同时这个query就符合$result && mysqli_num_rows( $result ) == 1 这条判断语句的形式,登陆成功。

DVWA通关教程_第1张图片

2.medium

 先打开代码审计发现,中级相对于低级多了一个加密mysqli_real_escape_string

mysqli_real_escape_string() 函数转义在 SQL 语句中使用的字符串中的特殊字符

所以使用bp爆破,将网页发给bp

 使用爆破功能intruder,将代码发送到这个板块,并使用出一个字典对密码进行爆破

DVWA通关教程_第2张图片

输入进去显示正确

DVWA通关教程_第3张图片 

 3.high

首先审计页面代码,发现high级别相对于上一级别多了一个token,登录验证的时候需要验证四个参数 username password login  use-token

注:token和sessionId原理相同,是对key和key对应的用户信息进行加密后的加密字符,登录成功后,会在响应主体中将{token:'字符串'}返回给客户端。客户端通过cookie、sessionStorage、localStorage都可以进行存储。再次请求时不会默认携带,需要在请求拦截器位置给请求头中添加认证字段Authorization携带token信息,服务器端就可以通过token信息查找用户登录状态。

对于有token来防护csrf的,可以使用到这个功能进行爆破,因为每次用户的token都是随机的。

选择攻击模式为pitchfock,并且给要破解的token项带上美元符号

然后进行设置参数,首先现把攻击线程设置为1,因为Recusive-Group不支持多线程工作,之后将Redirections设置为always。之后回到payload设置参数,第一个参数按照一般形式设置,第二个参数选择Recoursive。

之后回到options选择grep-extract界面选择添加DVWA通关教程_第4张图片

进行调整如下所示,然后将token复制回去,上一个界面就可以开始攻击了。不过多赘述。

命令注入 

1.命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻击手段。PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一。

命令连接符

command1 && command2   先执行command1后执行command2

command1 | command2     只执行command2

command1 & command2    先执行command2后执行command1

这四个级别的区别是

1.没有做过滤。

2.做了基础过滤

3.做了比较强的过滤

4.从逻辑上改了,将ip切割为四个部分,且都为数字。

Low

ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

先审计代码,发现没有任何隐藏。基本上都是直接ping

直接简单的代码上就可以了

127.0.0.1&&net user

127.0.0.1&&ipconfig

DVWA通关教程_第5张图片

 2.middle

首先分析源代码

$substitutions = array( '&&' => '', ';' => '', );表示这两个符号已经被拖入黑名单了

但是&一个符号也可以表示相同的意思

这里需要注意的是”&&”与” &”的区别:

注:Command 1&&Command 2

先执行Command 1,执行成功后执行Command 2,否则不执行Command 2

Command 1&Command 2

先执行Command 1,不管是否成功,都会执行Command 2

所以一个也成立DVWA通关教程_第6张图片

 high

分析代码就会发拉入黑名单的符号多了'&'  => '',
        ';'  => '',
        '| ' => '',
        '-'  => '',
        '$'  => '',
        '('  => '',
        ')'  => '',
        '`'  => '',
        '||' => '',

但仔细观察|后面是有一个空格的也就是说其实并没有把|符号过滤掉,其实过滤掉的是|加空格。

使用127.0.0.1|dir代码进行攻击

你可能感兴趣的:(linq,p2p,c#)