前言:
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