sqli-labs靶场搭建与踩坑心得

我总感觉工具用多了,脑子也变简单了,特别是sql注入这一块上,用工具两三条命令就能爆信息,不比你吭哧吭哧一个一个爆快多了嘛。这样的后果是过于依赖工具,如果真的叫我手工注入,我反而有点脑袋昏昏,不知道从哪里下手才好。不行啊,我赶快去搭建了sqli-labs靶场练手,强迫自己好好复习一下手工注入思路。

sqli-labs是github上的一个专门用来学习sql注入的开源项目,上一次更新已经是10年前了。作者Audi-1的个人博客自从2014年后也不再更新,不过我还是在infosec上找到了关于作者的一些信息,他是个来自荷兰的印度裔安全研究员。除此之外,他还在youtube以dhakkan3为名,开设sqli-labs的视频讲解,不过最近一次更新也是9年前了。希望这位大佬一切安好!

靶场搭建我还是用的常规方法,通过phpstudy。不过因为这个项目很久没更新了,当前版本的PHP并不适用,要在phpstudy里选择php5.2.17nts版本,不然连接数据库会报错。但没想到,改完低版本php后,靶场还是报错:

Could not connect to DB, check the creds in db-creds.inc: Client does not support authentication protocol requested by server; consider upgrading MySQL client

这里报错是因为,MySQL从5.8开始默认caching_sha2_password为身份验证插件,但5.7及之前的版本,身份验证插件默认是mysql_native_password。看来不仅是PHP要向下兼容,MySQL也要。

我在stackoverflow上看到可以通过Mysql Installer把MySQL改为Use Legacy Authentication Method。如下图,但是报错依旧:

后来找了一番,是通过新建一个用户解决的:

CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

GRANT ALL ON *.* TO 'user'@'%';

FLUSH PRIVILEGES;

然后将这个新建的用户名和密码填入靶机的配置文件db-creds.INI,重启phpstudy,就OK了。

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注