美文网首页sqlmapIT课程分享
Sql注入之sqlmap+dvwa实例演练

Sql注入之sqlmap+dvwa实例演练

作者: 蓝桥云课 | 来源:发表于2016-10-27 15:14 被阅读1718次

    相信很多同学都已经知道了什么是sql注入,也明白为什么会发生sql注入。也可以通过在输入框和url中“手工”注入,来实现绕过登录、非法修改这样有趣又实用的功能。但这些还远不能让我们感觉到sql注入的巨大威力。

    你也一定听过各种各样的新闻报道xxx网站被黑,上百万用户数据泄露。想知道它们是如何获得这些数据的吗?不讲过多原理,就和实验楼【Sql注入之sqlmap+dvwa实例演练】项目教程一起来实操“拖库”。

    sqlmap是当前最火热的自动化SQL注入工具,可以扫描、发现并利用给定URL的SQL注入漏洞。而DVWA是一套包含了一些常见安全漏洞的靶机web应用。矛和盾都在手,一起通过该项目的实际演练来感受sql注入的实际威力吧。

    一、sql注入原理

    注入式攻击可行的根本原因在于数据与程序/指令的混合。在sql注入中,精心构造的输入数据将“溢出”原本它的数据域范围,成为sql语句控制域的一部分,进而改变和控制sql语句的行为。

    利用sql注入漏洞的步骤可分为:

    • 找注入点(在哪里注入)
    • 构造注入内容(如何注入)

    注入点:

    根据注入的原理,可判断出有与服务器数据交互的地方都有可被注入的可能。Web应用的用户输入方式比较多,其中一些用户输入方式是很明显的,如HTML表单。但还有许多不明显的交互方式例如隐藏的HTML表单输入、HTTP头部、cookies、甚至异步的AJAX数据交互请求。常见的注入点有GET请求(url参数)和POST请求(表单数据)。我们可以通过burp suite这类代理、抓包工具来全面分析可注入点。

    注入类型:

    注入字符串构造方式或者说注入类型有5种,分别是:

    • 布尔型注入
    • 报错型注入
    • 基于时间延迟注入
    • 可联合查询注入
    • 可多语句查询注入

    这5种方式基本涵盖了绝大多数的注入攻击实例,掌握了这5种方式可以说能够很好的查找和利用sql注入了。

    其中前3种一般用来获取DBMS的相关信息和sql注入检测;后两种用来大量获取数据库中的数据。

    sqlmap在检测和注入时自动使用到了以上几种构造方式。

    二、sqlmap的安装和使用

    什么是SQLmap?

    SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。

    ubuntu的软件源中不包含sqlmap,去github下载源码速度较慢,我们使用kali的源来下载和安装以节省时间。

    $ wget http://labfile.oss.aliyuncs.com/courses/645/kali_aliyun_source.txt
    $ sudo cat /etc/apt/sources.list >> kali_aliyun_source.txt
    $ sudo cp kali_aliyun_source.txt /etc/apt/sources.list
    $ sudo apt-get update
    $ sudo apt-get install sqlmap
    

    安装过程可能出现无法验证软件包的错误提示,不会影响后续实验,可以忽略跳过。安装完毕后,在终端中输入sqlmap -u '.'测试下是否能正常使用:

    安装成功安装成功

    看到黄色的Banner说明安装成功。

    三、dvwa的部署和使用

    DVWA是什么?

    DVWA(Dam Vulnerable Web Application)是用PHP+Mysql 编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含SQL注入、XSS、盲注等常见的一些安全漏洞。

    实验楼的这个项目课程已经从dvwa官网下载并添加了简单的部署脚本,按照以下步骤部署dvwa到实验楼环境中:

    $ wget http://labfile.oss.aliyuncs.com/courses/645/dvwa_deploy.tar.gz
    $ tar -zxvf dvwa_deploy.tar.gz
    $ ./deploy.sh
    

    接着打开浏览器,在地址栏输入localhost/dvwa/setup.php访问初始设定页面,点击图中的按钮初始化数据库。

    dvwa数据库初始化dvwa数据库初始化

    初始化成功后的结果如下:

    数据库初始化成功数据库初始化成功

    初始化之后,页面将跳转到登录页,输入默认用户名admin和密码password登入系统。

    登入dvwa登入dvwa

    下一步需要设置dvwa系统的难度级别,由于它是一个专门的演练系统,因此针对不同的使用场景设计了4种攻击难度级别。

    登入系统后,点击DVWA Security选项即可看到设置页面。将难度设置为low之后,点击submit让设置生效。有兴趣的同学也可以设置中高难度来学习和练习一些passby技巧。

    设置安全级别设置安全级别

    四、开始注入

    这一步是动手实战开始注入,主要分为以下两个步骤:

    • 注入点扫描;
    • 注入点利用;

    关于具体的操作方法和详细代码,点击这里就可以查看了~

    相关文章

      网友评论

        本文标题:Sql注入之sqlmap+dvwa实例演练

        本文链接:https://www.haomeiwen.com/subject/wdrudttx.html