《mysql注入天书》之
SQLI和sqli-labs介绍
SQLI,sql injection,我们称之为sql注入。何为sql,英文:Structured Query Language,叫做结构化查询语言。常见的结构化数据库有MySQL,MS SQL ,Oracle以及Postgresql。Sql语言就是我们在管理数据库时用到的一种。在我们的应用系统使用sql语句进行管理应用数据库时,往往采用拼接的方式形成一条完整的数据库语言,而危险的是,在拼接sql语句的时候,我们可以改变sql语句。从而让数据执行我们想要执行的语句,这就是我们常说的sql注入。
原理性的东西我们这里就不进行详细的讲解了,从sqli-labs以下的每一个关卡中,你能真正体会到什么是sql注入。Ps:有些朋友对工具比较熟悉,例如sqlmap,可以从sqlmap的日志中分析每个关卡的原理。但是我个人建议先去了解原理,再去使用工具。这样在使用工具的时候你也能深刻的理解工具起到了什么样的作用。更近一步你应该想着如果让你自己写代码实现攻击,你应该如何写。
Ps:因为本项工作我是在多个平台和多个浏览器下进行测试的,所以截图等可能会有不同的环境,但是都能说明原理。这里就不要吹毛求疵了。图片刚开始有很多都是chrome下截取的,后来发现不是很好看,所以在图片上面的url全部粘贴。尽量用firefox,有hackbar。
Sqli-labs下载
Sqli-labs是一个印度程序员写的,用来学习sql注入的一个游戏教程。博客地址为:
http://dummy2dummies.blogspot.hk/,博客当中有一些示例,国内很多博客内容都是从该作者的博客翻译过来的。同时该作者也发了一套相关的视频,在youtube上可以查看。ps:印度人讲英语口音太重了。。。。凑合着听懂点。
此处考虑到有些朋友不会翻墙,遂分享到国内地址。
http://pan.baidu.com/s/1bo2L1JT
Ps:不想看视频的可以直接忽略视频,口音实在脑门疼,此处本来想自己录视频的,但现在来看,时间比较有限
Sqli-labs项目地址---Github获取:https://github.com/Audi-1/sqli-labs
(考虑到安全性问题,就不搬运这个了)
Sqli-labs安装
需要安装以下环境
-
apache+mysql+php
-
Tomcat+mysql+java(部分关卡需要)
如果可以的话,推荐在windows和linux下分别安装:
Windows下可以用wamp、phpstudy、apmserv等直接安装,linux下可在网上搜索教程进行安装。例如ubuntu下,新手基本靠软件中心和apt-get 进行安装。这里就不赘述环境的安装了。
我的测试环境是windows下用wamp直接搭建的,linux平台用ubuntu14.04,apache+mysql+php
同时,在后面的几个关卡中,需要用到tomcat+java+mysql的服务器,此处因已经安装apache+mysql+php,所以我们需要安装tomcat+jre+java连接mysql的jar,具体过程不详细讲解。
Sqli-labs安装
将之前下载的源码解压到web目录下,linux的apache为 /var/www/html下,windows下的wamp解压在www目录下。
修改sql-connections/db-creds.inc文件当中的mysql账号密码
将user和pass修改你的mysql 的账号和密码,访问127.0.0.1的页面,点击
进行安装数据库的创建,至此,安装结束。我们就可以开始游戏了。