Less-38-41

                                             Less-38

基於錯誤_GET_單引號_字符型_堆疊注入

這裏有修改系統變量的幾種方法,可以考慮注入時涉及文件操作時先修改權限。

MySQL裏設置或修改系統變量的幾種方法

如果遇到Mysql loadfile 不成功,請看Less-7進行解決

注入過程

mysqli_multi_query() 函數執行一個或多個針對數據庫的查詢。多個查詢用分號進行分隔。(有這個才能進行堆疊)
分號我們可以加入注入的新的語句

堆疊注入需要依靠前文所寫的各種注入方式來獲取數據庫的信息,在這裏只演示如何插入新的數據。

?id=1';insert into users(id,username,password) values(38,'less38','hello')--+

再看數據表中的內容:可以看到 less38 已經添加。

順便看下核心源碼吧:

一、mysql與mysqli的概念相關:

1、mysql與mysqli都是php方面的函數集,與mysql數據庫關聯不大。

2、在php5版本之前,一般是用php的mysql函數去驅動mysql數據庫的,比如mysql_query()的函數,屬於面向過程3、在php5版本以後,增加了mysqli的函數功能,某種意義上講,它是mysql系統函數的增強版,更穩定更高效更安全,與mysql_query()對應的有mysqli_query(),屬於面向對象,用對象的方式操作驅動mysql數據庫。mysqli有兩種方式:一種是面對對象的,一種是面向過程的。

二、mysql與mysqli的區別:

1、mysql是非持繼連接函數,mysql每次鏈接都會打開一個連接的進程。

2、mysqli是永遠連接函數,mysqli多次運行mysqli將使用同一連接進程,從而減少了服務器的開銷。mysqli封裝了諸如事務等一些高級操作,同時封裝了DB操作過程中的很多可用的方法。

mysqli的使用:
1.mysqli的面向過程的使用:

$conn = mysqli_connect('localhost', 'root', '123', 'db_test') or ('error');

$sql = "select * from db_table";

$query = mysqli_query($conn,$sql);

while($row = mysqli_fetch_array($query)){

echo $row['title'];

}

2.mysqli的面向對象的使用:

$conn = new mysqli('localhost', 'root', '123', 'db_test');

$sql = "select * from db_table";

$query = $conn->query($sql);

while($row = $query->fetch_array()){

echo $row['title'];

}

 

代碼裏面涉及到了很多mysql函數,需要自行學習解決。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章