溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于php7.0下Sqli-labs搭建的小問題

發(fā)布時間:2020-08-06 15:02:56 來源:網(wǎng)絡(luò) 閱讀:1769 作者:DesM0nd 欄目:安全技術(shù)

由于前文中kali版本較新,默認安裝的是php7.0(this is the problem)
PHP 5 的使用者可以使用 mysql extension,mysqli 和 PDO_MYSQL ,但是PHP 7移除了mysql extension,只剩下后面兩種選擇。
因此在Sqli-labs與數(shù)據(jù)庫連接,查詢的時候,會出現(xiàn)一些問題。
我們安裝Sqli-labs的時候必需把相關(guān)數(shù)據(jù)庫的函數(shù)改為mysqli的形式

一開始點擊setup db的時候,會停留在頁面
關(guān)于php7.0下Sqli-labs搭建的小問題

進入目錄查看代碼cd /var/www/html/sqli-labs/sql-connections
目錄下方有7個文件
關(guān)于php7.0下Sqli-labs搭建的小問題

###步驟

###0x00 修改函數(shù)

mysql_xxx()全部修改為mysqli_xxx

使用sed+grep的結(jié)合

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

###0x01 修改函數(shù)參數(shù)
由于mysql_error()函數(shù)下,連接是可選項,mysqli_error()下,connection變?yōu)楸匦桧棧虼诵枰裮ysql_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 
// 假定數(shù)據(jù)庫用戶名:root,密碼:123456,數(shù)據(jù)庫:RUNOOB 
$con=mysqli_connect("localhost","root","123456","RUNOOB"); 
if (mysqli_connect_errno($con)) 
{ 
    echo "連接 MySQL 失敗: " . mysqli_connect_error(); 
} 

// 執(zhí)行查詢
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_函數(shù)改成了mysqli_函數(shù)了,因此用下面的命令
sed -i s/"\$sql)"/"\$con,\$sql)"/g `grep "\$sql)" -rl ./`

這樣php7.0對于數(shù)據(jù)庫連接的影響基本可以解決。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI