關於php7.0下Sqli-labs搭建的小問題
阿新 • • 發佈:2018-10-28
localhost set errno local into 除了 -o 進入目錄 小問題 由於前文中kali版本較新,默認安裝的是php7.0(this is the problem)
PHP 5 的使用者可以使用 mysql extension,mysqli 和 PDO_MYSQL ,但是PHP 7移除了mysql extension,只剩下後面兩種選擇。
因此在Sqli-labs與數據庫連接,查詢的時候,會出現一些問題。
我們安裝Sqli-labs的時候必需把相關數據庫的函數改為mysqli的形式 全部修改為
PHP 5 的使用者可以使用 mysql extension,mysqli 和 PDO_MYSQL ,但是PHP 7移除了mysql extension,只剩下後面兩種選擇。
因此在Sqli-labs與數據庫連接,查詢的時候,會出現一些問題。
我們安裝Sqli-labs的時候必需把相關數據庫的函數改為mysqli的形式
一開始點擊setup db的時候,會停留在頁面
進入目錄查看代碼cd /var/www/html/sqli-labs/sql-connections
目錄下方有7個文件
###步驟
###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對於數據庫連接的影響基本可以解決。
關於php7.0下Sqli-labs搭建的小問題