DVWA-笔记系列1之Brute Force-LOW

0x01 DVWA简介

DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。

DVWA共有十个模块,分别是Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA(不安全的验证码)、SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)。

需要注意的是,DVWA 1.9的代码分为四种安全级别:Low,Medium,High,Impossible。初学者可以通过比较四种级别的代码,接触到一些PHP代码审计的内容。

0x02 DVWA的搭建方法

DVWA的搭建方法很简单请大家自行参考Freebuf上的这篇文章《新手指南:手把手教你如何搭建自己的渗透测试环境。

0x03 Brute Force

Brute Force及暴力破解,就是利用字典对账号密码进行穷举,进而猜出用户的口令,是比较常见的一种攻击手法。

下面就对Brute Force两个等级的PHP代码进行解析,高级的部分由于我python太菜了,这里会参考fb上的文章,当然是发个链接出来,因为没有得到原作者的允许,不敢转载。

0x04 LOW

这个是安全级别最低的一个等级,其服务端核心代码如下:

这个代码简单,只是对Login进行了简单的校验即用php的isset函数判断Login参数是否被设置,没有任何的防爆破机制,而且从它的SQL语句的编写可以看出该登陆点存在注入,可以通过构造特定的SQL语句绕过他的验证机制。下面是具体的方法:

Burpsuite爆破

Burpsuite是一款很好的渗透测试工具,当初听学长说,他搞渗透一般只用两个工具即Burp和SQLMAP,而老子渗透都是一咕噜工具一快上的,也许这就是大牛的世界吧。下面是具体步骤。

1.1burp抓包

1.2 使用Burp的Intruder模块,即在Proxy模块处Ctrl+I,接着是设置攻击参数,如下图所示。

这里我们把攻击参数设置为password,接着是设置Payload即加载字典

1.3设置payload

点击Intruder模块中的Payloads功能,在这里加载我们的密码字典,然后点击左上角的Intruder,在选取Start Attack启动攻击

1.3攻击过程和结果

点击Start Attack之后,Burp就会开始对密码进行爆破,接下来我们只需要找Lenth中与众不同的那个就可以得到他的正确口令了。

SQL注入绕过

Low代码中的sql语句构造是这样的:

而他的判断语句是这样的:

讲一下上面的代码吧,首先先通过mysqli_query执行SQL语句,返回一个资源标识符,如果查询执行不正确则返回 FALSE。接着通过判断语句判断查询的结果是否正确,即输入的账号密码是否正确与返回的结果是否只有一行。

讲完了代码,知道了原理,我们构造绕过的SQL语句就很容易了,首先,我们只要让$query中的SQL语句在查询执行的时候返回True就行了,这里我们只要在$user中闭合单引号,然后使用mysql注释符号注释掉掉后面 AND password语句就可了,在利用mysql的LIMIT 限制他的查询输出,综上所述,我们构造的语句如下:

CC' OR 1=1 LIMIT 0,1#

使用效果如下:

成功绕过。

0x05 总结

上面写的都是总结,本来想把low和medium两个等级都写完了,然后刚写完这个发现自己头晕了,歇会先。今晚或者明天再更。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180420G0M66700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券