本地部署Sqli-labs

本文详细介绍Sqli-labs的两种搭建方式:一是通过github、apache2、php5.*和mysql本地环境部署,但需注意版本兼容及依赖问题;二是推荐的docker搭建虚拟环境,步骤简单,直接拉取镜像即可运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sqli-labs

作为一个练习sql注入的绝佳靶场, 有时候搭建起来真让人头疼..(特别是电脑系统渣渣的我)

 

这里搭建有两种方法: 

一、github+apache2+php5.*+mysql 本机环境部署

这种搭建比较麻烦, 要考虑到版本兼容型以及库的依赖问题...

打个比方, 比如我的电脑是linux系统,  之前安装好了apache2, 在选择php的时候要用5.*的版本, 虽然现在php5的版本可以通过tar.gz下载而得, 但是博主遇到了需要依赖问题, 比如libjpeg-dev这些古老的库,  所以本人采用这种方法最后并没有成功....

话不多说, 大概说一下思路:

1.  首先用apt安装apache2:  sudo apt-get install apache2

这个过程是傻瓜式安装,  如读者想锻炼动手能力的话, 可以下载源代码编译安装之.

 

2.  安装php5.*的环境, 注意, 这里解释一下为什么要用5.*的版本,  因为Sali-labs中的php脚本是用php5版本完成的, 若用             php7的版本,  两个版本差异还是很大的。 打个比方, 本人遇到的问题就是,  php5连接mysql用的函数是mysql_connect();       而php7版本是废弃了这个函数改用mysqli_connect()的,  一个地方出错, 就会一生二, 二生三, 三生万物........

安装方法,  我尝试过改镜像源(还是最新的7.*版本)和源代码编译安装(依赖太多)的方法..最终没有安装成功

不过在自己的云服务器上安装成功了,  可能是系统问题把...

附上php7版本时, 需要修稿的源码函数:

 

3. 最后是通过github克隆项目:  git@github.com:Audi-1/sqli-labs.git

到指定目录下, 用命令:  sudo  git clone git@github.com:Audi-1/sqli-labs.git  将项目下载到指定目录:

 

4.  mysql安装就不老生常谈了..具体参阅网上

 

5. 配置Sqli-labs

修改文件sql-connections/db-creds.inc的mysql的配置, 主要是用户名和密码:

 

6. 运行

运行就使用url地址访问: localhost:80/sqli-labs

点击 Setup/reset Database for labs 初始化数据库.

然后就可以点击下面的分支进行练习了!

 

 

 

二、docker搭建虚拟环境 (推荐)

1. sudo  docker  pull acgpiano/sqli-labs  拉取镜像

 

2. 用镜像运行一个容器:  sudo docker run -d -P  acgpiano/sqli-labs

得到容器的id和映射的端口

 

3. 使用url:  localhost:32772  访问即可 

 

4. 若想访问网站的源代码怎么办?

可以使用:  sudo docker  exec  -it  e5bc  /bin/bash  已shell进入docker容器

sqli-labs网站的源代码在目录: /var/www/html下

 

 

 

 

### 如何解决本地环境中sqli-labs无法访问的问题 #### 配置环境与依赖项 确保 PHP 和 MySQL 正常运行是解决问题的关键。如果遇到 `Call to undefined function mysql_connect()` 错误,则表明当前使用的 PHP 版本不再支持旧版的 MySQL 扩展[^1]。 对于 PHPStudy 用户,在确认 PHP 环境正常工作的同时,还需保证未安装独立版本的 MySQL 服务以免造成端口冲突[^3]。当发现 MySQL 启动即停的情况时,应排查是否有其他程序占用了 MySQL 默认使用的 3306 端口,并考虑调整 MySQL 的监听端口号来规避此问题。 #### 修改数据库连接设置 针对 sqli-labs 中具体的数据库连接失败情况,应当检查并更新 `\sqli-labs\sql-connections` 路径下 `db-creds.inc` 文件中的数据库凭证信息至匹配个人环境配置: ```php <?php // 给定MySQL连接用户名和密码 $dbuser = '自定义用户名'; $dbpass ='自定义密码'; $host = 'localhost'; // 或者 IP 地址 如果不是在同一台机器上 $dbname = "security"; $dbname1 = "challenges"; ?> ``` 此处 `$dbuser`, `$dbpass` 应替换为实际创建的安全账户凭据;而主机名通常保持为 `'localhost'` 即可,除非 Web 服务器与数据库位于不同设备之上[^4]。 #### 测试与验证部署成果 完成上述更改之后重启所有相关服务(Web Server, Database),通过浏览器尝试访问已部署好的 sqli-labs 页面,观察是否存在任何新的报错消息。若一切顺利则说明问题已经得到妥善处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值