Web網(wǎng)絡(luò)安全分析堆疊查詢注入攻擊原理
1.堆疊查詢注入攻擊
堆疊查詢注入攻擊的測試地址:http://127.0.0.1/sqli/duidie.php?id=1。
堆疊查詢可以執(zhí)行多條語句,多語句之間以分好隔開。堆疊查詢注入就是利用這個(gè)特點(diǎn),在第二個(gè)SQL語句中構(gòu)造自己要執(zhí)行的語句。首先訪問id=1',頁面返回MySQL錯(cuò)誤,在訪問id=1'--+,頁面返回正常的結(jié)果。這里可以使用Boolean注入、時(shí)間注入,也可以使用另一種注入方式——堆疊注入。
堆疊注入的語句為:
';select if(substr(user(),1,1)='r',sleep(3),1)--+
從堆疊注入語句中可以看到,第二條SQL語句就是時(shí)間盲注的語句,執(zhí)行結(jié)果如圖37所示。
圖38 利用堆疊注入獲取數(shù)據(jù)
后面獲取數(shù)據(jù)的操作與時(shí)間盲注的一樣,通過構(gòu)造不同的時(shí)間注入語句,可以得到完整的數(shù)據(jù)庫的庫名、表名、字段名和具體數(shù)據(jù)。執(zhí)行以下語句,就可以獲取數(shù)據(jù)庫的表名。
';select if(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)='e',sleep(3),1)--+
結(jié)果如圖38所示。
圖39 利用堆疊注入獲取表名
2.堆疊準(zhǔn)入代碼分析
在堆疊注入頁面中,程序獲取GET參數(shù)ID,使用PDO的方式進(jìn)行數(shù)據(jù)查詢,但仍然將參數(shù)ID拼接到查詢語句,導(dǎo)致PDO沒起到預(yù)編譯的效果,程序仍然存在SQL注入漏洞,代碼如下所示。
<?php header('Content-type:text/html;charset=utf-8');
try
{
$conn = new PDO("mysql:host=localhost;dbname=test", "root", "root");//連接數(shù)據(jù)庫,初始化一個(gè)pdo對象
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//設(shè)置一個(gè)屬性
$id = @$_GET['id'];
$sql = "select * from users where `id`='".$id."'";
echo "<hr />";
echo "當(dāng)前執(zhí)行語句為:".$sql;
echo "<hr />";
$stmt = $conn->query($sql);
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach($stmt->fetchAll() as $k=>$v)
{
foreach ($v as $key => $value)
{
echo $value;
}
}
$dsn = null;
}
catch(PDOException $e)
{
echo "error";
}
$conn = null;
?>
使用PDO執(zhí)行SQL語句時(shí),可以執(zhí)行多語句,不過這樣通常不能直接得到注入結(jié)果,因?yàn)镻DO只會返回第一條SQL語句執(zhí)行的結(jié)果,所以在第二條語句中可以用Update更新數(shù)據(jù)或者使用時(shí)間盲注獲取數(shù)據(jù)。訪問dd.php?id=1';select if(ord(substring(user(),1,1))=114,sleep(3),1);%23時(shí),執(zhí)行的SQL語句為:
select * from users where `id`='1';select if(ord(substring(user(),1,1))=114,sleep(3),1);#
此時(shí)SQL語句分為另外兩條,第一條select * from users where `id`='1'是代碼自己的select查詢,而select if(ord(substring(user(),1,1))=114,sleep(3),1);#則是我們構(gòu)造的時(shí)間盲注語句。
以上就是Web網(wǎng)絡(luò)安全分析堆疊查詢注入攻擊原理的詳細(xì)內(nèi)容,更多關(guān)于Web網(wǎng)絡(luò)安全堆疊查詢注入攻擊的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Web網(wǎng)絡(luò)安全分析二次注入攻擊原理詳解
這篇文章主要為大家講解介紹了Web網(wǎng)絡(luò)安全分析二次注入攻擊原理的詳解,有需要相關(guān)學(xué)習(xí)的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
網(wǎng)站存在啊D注入工具的SQL注入點(diǎn)的修復(fù)方法
我的網(wǎng)站還有我給老師做的單片機(jī)網(wǎng)站相繼被黑,從他那得知,他用的是“啊D注入工具”,先找我的網(wǎng)站是否存在可注入點(diǎn),如果有,進(jìn)行注入,能夠破解得到后臺密碼2012-12-12
Web網(wǎng)絡(luò)安全解析寬字節(jié)注入攻擊原理
這篇文章主要介紹了Web網(wǎng)絡(luò)安全解析寬字節(jié)注入攻擊原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11
Web網(wǎng)絡(luò)安全漏洞分析XSS常用語句及編碼繞過詳解
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全漏洞分析XSS常用語句及編碼繞過詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11
防止利用系統(tǒng)漏洞輕輕松松繞過你的驗(yàn)證碼的方法
防止利用系統(tǒng)漏洞輕輕松松繞過你的驗(yàn)證碼的方法...2007-03-03
網(wǎng)絡(luò)安全常見問題隱患及其應(yīng)對措施詳解
這篇文章主要為大家介紹了網(wǎng)絡(luò)安全常見問題隱患及其應(yīng)對措施詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
Web網(wǎng)絡(luò)安全分析SQL注入繞過技術(shù)原理
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全分析SQL注入繞過技術(shù)原理的詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11

