Sql注入之sqlmap+dvwa实例演练

相信很多同学都已经知道了什么是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数据库初始化

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

数据库初始化成功

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

登入dvwa

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

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

设置安全级别

四、开始注入

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

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

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

 

文/实验楼(简书作者)
原文链接:http://www.jianshu.com/p/32dcad967cea
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

本文由 华盟网 作者:congtou 发表,其版权均为 华盟网 所有,文章内容系作者个人观点,不代表 华盟网 对观点赞同或支持。如需转载,请注明文章来源。

0

相关文章

发表评论

电子邮件地址不会被公开。