Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试

前言

SQLI,sql injection,我们称之为sql注入。何为sql,英文:Structured Query Language,叫做结构化查询语言。常见的结构化数据库有MySQL,MS SQL ,Oracle以及Postgresql。Sql语言就是我们在管理数据库时用到的一种。在我们的应用系统使用sql语句进行管理应用数据库时,往往采用拼接的方式形成一条完整的数据库语言,而危险的是,在拼接sql语句的时候,我们可以改变sql语句。从而让数据执行我们想要执行的语句,这就是我们常说的sql注入。

安装步骤

1、phpstudy安装
2、sqli-labs下载解压至指定目录下
3、sqli-labs初始化数据库

安装好PHP study,并且打开apache,mysql环境。

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第1张图片

 点击软件管理,下载PHP  注:版本下载五点几的

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第2张图片

 点击网站,local host后面的管理,再点击编辑,修改sqli-labs对应的位置

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第3张图片

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第4张图片

打开sqli-labs-master在里面中找到sqli-connections并以记事本的方式打开db-creds.inc,将dbpass改为root(MySQL数据库密码)

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第5张图片

此时在浏览器上搜索127.0.0.1/sqllabs就会显示如下界面

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第6张图片

先点击Setup/reset Database for labs使其自动创建数据库,创建表并填充数据后是这样的页面

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第7张图片

 注:必须将PHP版本降至5.2及以下,因为php7版本以上抛弃了mysql_系列函数,转用mysqli系列函数,所以用php7版本以上安装的时候就会报错

登录Dumb

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第8张图片

 使用order by来查看列

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第9张图片

 列不一致报错,查的四列,实际只有三列

输入:localhost/Less-1/?id=1 'union select 1,2,3–+

Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第10张图片

可以看出第二列是用户名,第三列是密码

开始进行绕过操作

由于上面出现的问题,我们想要绕过的话,就不让出现边界,也就是改变from的值(但是要保证是个单词,并且需要延长,还不能报错)
唯一好处就是mysql是支持科学计数法的,来设置

由于1e1是科学计数法,mysql识别并且单独列出来一列,而且“1e1”可以和from连接在一起使用,系统会认为这是两个命令,所以这样既没有报错,同时也绕过了正则。但是也样并没有完全解决。
当我这样输入要绕过的时候,他提示了“Operand should contain 1 column(s)”你查询的列超范围了

localhost/Less-1/?id=1 'union select 1,group_cocat(username,0x3a,password)from users)--+
Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试_第11张图片

 如图用科学计数法实现了绕过。

你可能感兴趣的:(sql,数据库,安全)