温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

关于php7.0下Sqli-labs搭建的小问题

发布时间:2020-08-06 15:02:56 来源:网络 阅读:1777 作者:DesM0nd 栏目:安全技术

由于前文中kali版本较新,默认安装的是php7.0(this is the problem)
PHP 5 的使用者可以使用 mysql extension,mysqli 和 PDO_MYSQL ,但是PHP 7移除了mysql extension,只剩下后面两种选择。
因此在Sqli-labs与数据库连接,查询的时候,会出现一些问题。
我们安装Sqli-labs的时候必需把相关数据库的函数改为mysqli的形式

一开始点击setup db的时候,会停留在页面
关于php7.0下Sqli-labs搭建的小问题

进入目录查看代码cd /var/www/html/sqli-labs/sql-connections
目录下方有7个文件
关于php7.0下Sqli-labs搭建的小问题

###步骤

###0x00 修改函数

mysql_xxx()全部修改为mysqli_xxx

使用sed+grep的结合

 sed -i "s/mysql_/mysqli_/g" `grep mysql_ -rl ./`  

###0x01 修改函数参数
由于mysql_error()函数下,连接是可选项,mysqli_error()下,connection变为必需项,因此需要把mysql_error()改为mysql_error($con)

sed -i s/"mysql_error()"/"mysqli_error(\$con)"/g `grep "mysql_error()" -rl ./`

php5.0下mysql_query($sql)即可查询
php7.0下mysql_query($con,$sql)

<?php 
// 假定数据库用户名:root,密码:123456,数据库:RUNOOB 
$con=mysqli_connect("localhost","root","123456","RUNOOB"); 
if (mysqli_connect_errno($con)) 
{ 
    echo "连接 MySQL 失败: " . mysqli_connect_error(); 
} 

// 执行查询
mysqli_query($con,"SELECT * FROM websites");
mysqli_query($con,"INSERT INTO websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN')");

mysqli_close($con);
?>
mysqli下语法为:mysqli_query(connection,query,resultmode);
其中connection和query为必需项,this is what the problem is...

同样使用sed+grep命令把当前目录下所有文件的所有字符串替换

sed -i s/"mysql_query(\$sql)"/"mysqli_query(\$con,\$sql)"/g `grep "mysql_query(\$sql)" -rl ./`  ---一步到位

当时我是先把所有mysql_函数改成了mysqli_函数了,因此用下面的命令
sed -i s/"\$sql)"/"\$con,\$sql)"/g `grep "\$sql)" -rl ./`

这样php7.0对于数据库连接的影响基本可以解决。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI