前言:
sqli是一个印度程序员编写的,用来学习sql注入的一个游戏教程
sqli这个靶场对php7.0是不兼容的(因为一些函数在php7中被删除了),所以搭建的时候要下载php5,如果你的系统要下载php5有点麻烦的话,可以看我文章的最后,那里有解决方法。
正文:
- 下载 sqli 靶场 https://github.com/Audi-1/sqli-labs
- linux系统:解压缩到 /var/www/html/ 目录下(如果安装apache时改变了路径,就解压到改变的路径下)
mv 文件名 /var/www/html/ #移动文件 tar -zxvf 文件名 #解压文件
3. 修改 sqli-labs-master/sql-connerctions/db-creds.inc 文件
<?php //give your mysql connection username n password $dbuser =‘root‘; $dbpass =‘root‘; #修改为你的数据库密码 $dbname ="security"; $host = ‘localhost‘; $dbname1 = "challenges"; ?>
4. 然后点击 setup/reset Database for labs
5.出现以下内容,就说明sqli靶场搭建完成了,小伙伴们可以愉快的游戏了
6.若出现以下页面,是由两种原因
- 未正确访问该页面
- sqli 靶场和 php 版本不兼容
解决办法:
未正确访问页面:
http://127.0.0.1:8080 (http://IP:端口)
http://localhost/sqli/ (http://localhost/域名)
可以按照以上两种方式进行访问
sqli靶场与php版本不兼容:
1. 把 php 版本降到 5.6 以下
2. 对sqli靶场代码进行更改
序号 | 更换 | 替换为 |
1 | mysql_query($ sql) | mysqli_query($ con,$ sql) |
2 | mysql_error() | mysqli_error($ con) |
3 | mysql_fetch_array($ result) | mysqli_fetch_array($ result,MYSQLI_BOTH) |
4 | mysql_fetch_array($ result1) | mysqli_fetch_array($ result1,MYSQLI_BOTH) |
5 | mysql_connect($ host,$ dbuser,$ dbpass) | mysqli_connect($ host,$ dbuser,$ dbpass) |
6 | mysql_real_escape_string($ value) | mysqli_real_escape_string($ con,$ value) |
7 | mysql_select_db($ dbname,$ con) | mysqli_select_db($ con,$ dbname) |
ps:您必须更改所有课程的 index.php,课程中的其他php文件以及sql-connections文件夹中存在的所有php文件。
然后分享一个sqli靶场的过关宝典,希望对大家有所帮助。 链接:https://pan.baidu.com/s/1yGFUik9KYE2QbpW_JL85ag 提取码:04jf