最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Web網(wǎng)絡(luò)安全分析時(shí)間注入攻擊原理

 更新時(shí)間:2021年11月02日 15:10:05   作者:Phanton03167  
這篇文章主要為打擊介紹了Web網(wǎng)絡(luò)安全分析時(shí)間注入攻擊的原理詳解,在學(xué)習(xí)網(wǎng)絡(luò)安全的同學(xué)可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

SQL注入進(jìn)階

1.時(shí)間注入攻擊

時(shí)間注入攻擊的測(cè)試地址:http://127.0.0.1/sqli/time.php?id=1.

訪問該網(wǎng)站時(shí),頁面返回yes,在網(wǎng)址的后面加上一個(gè)單引號(hào),再次訪問,頁面返回no。這個(gè)結(jié)果與Boolean注入非常相似,這里介紹另一種注入方法——時(shí)間盲注。它與Boolean注入的不同之處在于,時(shí)間注入是利用sleep()或benchmark()等函數(shù)讓MySQL的執(zhí)行時(shí)間變長(zhǎng)。時(shí)間盲注多與IF(expr1,expr2,expr3)結(jié)合使用,次if語句含義是:如果expr1是TRUE,則IF()的返回值為expr2;否則返回值則為expr3.所以判斷數(shù)據(jù)庫庫名長(zhǎng)度的語句應(yīng)為:

' and if(length(database())>1,sleep(5),1)--+

上面這行語句的意思是,如果數(shù)據(jù)庫庫名長(zhǎng)度大于1,則MySQL查詢休眠5秒,否則查詢1。

而查詢1的結(jié)果,大約只有幾十毫秒,根據(jù)Burp Suite中頁面的響應(yīng)時(shí)間,可以判斷條件是否正確,結(jié)果如圖34所示。

圖34 利用時(shí)間盲注執(zhí)行sleep()

可以看出,頁面的響應(yīng)時(shí)間是5043毫秒,表明頁面成功執(zhí)行了sleep(5),所以長(zhǎng)度是大于1的,我們嘗試將判斷數(shù)據(jù)庫庫名語句中的長(zhǎng)度改為10,結(jié)果如圖35所示。

圖35 利用時(shí)間盲注判斷數(shù)據(jù)庫庫名長(zhǎng)度

可以看出,執(zhí)行的時(shí)間是16毫秒,表明該頁面沒有執(zhí)行sleep(5),而是執(zhí)行了select 1,所以數(shù)據(jù)庫的庫名長(zhǎng)度大于10是錯(cuò)誤的。通過多次測(cè)試,皆可以得到數(shù)據(jù)庫庫名的長(zhǎng)度。得出數(shù)據(jù)庫庫名長(zhǎng)度后,我們開始查詢數(shù)據(jù)庫庫名的第一位字母。查詢語句和Boolean盲注的類似,使用substr函數(shù),這時(shí)的語句應(yīng)修改為:

' and if(substr(database(),1,1)='t',sleep(5),1)--+

結(jié)果如圖36所示。

圖36 利用時(shí)間盲注獲取數(shù)據(jù)庫名

可以看出,程序延遲了5秒才返回,說明數(shù)據(jù)庫庫名的第一位字母是t,以此類推即可得出完整的數(shù)據(jù)庫的庫名、表名、字段名和具體數(shù)據(jù)。

我們也可以使用Burp進(jìn)行爆破,結(jié)果如圖37所示。

圖37 利用Burp爆破數(shù)據(jù)庫庫名

2.時(shí)間注入代碼分析

在時(shí)間注入頁面中,程序獲取GET參數(shù)ID,通過preg_match判斷參數(shù)ID中是否存在Union等危險(xiǎn)字符,然后將參數(shù)ID拼接到SQL語句中。從數(shù)據(jù)庫中查詢SQL語句,如果有結(jié)果,則返回yes,否則返回no。當(dāng)訪問該頁面時(shí),代碼根據(jù)數(shù)據(jù)庫查詢結(jié)果返回yes或no,而不是返回?cái)?shù)據(jù)庫中的任何數(shù)據(jù),所以在頁面上智慧顯示yes或no,和Boolean注入不同的是,此處沒有過濾sleep等字符,代碼如下所示。

<?php
$con=mysqli_connect("localhost","root","root","test");
// 檢測(cè)連接
if (mysqli_connect_errno())
{
    echo "連接失敗: " . mysqli_connect_error();
}

$id = @$_GET['id'];
if(preg_match("/union/i",$id))
{
    exit("<htm><body>no</body></html>");
}

$sql = "select * from users where `id`='".$id."'";

$result = mysqli_query($con,$sql);

if(!$result)
{
    exit("no");
}

$row = mysqli_fetch_array($result);

if ($row)
{
    exit("<htm><body>yes</body></html>");
}
else
{
    exit("<htm><body>no</body></html>");
}
?>

此處仍然可以用Boolean盲注或其他注入方法,下面用時(shí)間注入演示。當(dāng)訪問id=1' and if(ord(substring(user(),1,1))=114,sleep(3),1)--+時(shí),執(zhí)行的SQL語句為:

select * from users where `id`='1' and if(ord(substring(user(),1,1))=114,sleep(3),1)--+

由于user()為root,root第一個(gè)字符‘r'的ASCII值是114,所以SQL語句中if條件成立,執(zhí)行sleep(3),頁面會(huì)延遲3秒,通過這種延遲即可判斷SQL語句的執(zhí)行結(jié)果。

以上就是Web網(wǎng)絡(luò)安全分析時(shí)間注入攻擊原理的詳細(xì)內(nèi)容,更多關(guān)于Web網(wǎng)絡(luò)安全時(shí)間注入攻擊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

庄河市| 高淳县| 广安市| 新建县| 万州区| 武山县| 香港 | 衢州市| 兴文县| 内江市| 永城市| 惠安县| 屏山县| 囊谦县| 宁陕县| 西宁市| 楚雄市| 勐海县| 武穴市| 集安市| 晋中市| 盐源县| 靖宇县| 柞水县| 滁州市| 林口县| 旬邑县| 丽水市| 中宁县| 桐梓县| 乌拉特中旗| 广饶县| 平陆县| 福海县| 明水县| 林州市| 咸阳市| 徐汇区| 津市市| 彰化县| 高平市|