偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

強(qiáng)加密算法下,SQL注入案例

安全 應(yīng)用安全 算法
密碼學(xué)具有各種優(yōu)點(diǎn),包括信息的機(jī)密性。然而,過度依賴密碼學(xué)來保護(hù)應(yīng)用程序是一個(gè)壞主意。今天我們就通過一個(gè)案例研究,來認(rèn)識(shí)一下通過加密的有效載荷識(shí)別和利用SQL注入漏洞。

密碼學(xué)具有各種優(yōu)點(diǎn),包括信息的機(jī)密性。然而,過度依賴密碼學(xué)來保護(hù)應(yīng)用程序是一個(gè)壞主意。今天我們就通過一個(gè)案例研究,來認(rèn)識(shí)一下通過加密的有效載荷識(shí)別和利用SQL注入漏洞。

SQL注入也許很多人都知道或者使用過,如果沒有了解或完全沒有聽過也沒有關(guān)系,因?yàn)榻酉聛砦覀儗⒔榻BSQL Injection。

SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請(qǐng)求的查詢字符串,最終達(dá)到欺騙 服務(wù)器 執(zhí)行惡意的SQL命令。

具體來說,它是利用現(xiàn)有應(yīng)用程序,將惡意的SQL命令注入到后臺(tái) 數(shù)據(jù)庫 引擎執(zhí)行的能力,它可以通過在Web表單中輸入惡意SQL語句得到一個(gè)存在安全漏洞的網(wǎng)站上的數(shù)據(jù)庫,而不是按照設(shè)計(jì)者意圖去執(zhí)行SQL語句。

那SQL注入會(huì)在什么時(shí)候發(fā)生呢?

假設(shè)我們?cè)跒g覽器中輸入U(xiǎn)RL www.sample.com,由于它只是對(duì)頁面的簡單請(qǐng)求無需對(duì)數(shù)據(jù)庫動(dòng)進(jìn)行動(dòng)態(tài)請(qǐng)求,所以它不存在SQL Injection,當(dāng)我們輸入www.sample.com?testid=23時(shí),我們?cè)赨RL中傳遞變量testid,并且提供值為23,由于它是對(duì)數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)查詢的請(qǐng)求(其中?testid=23表示數(shù)據(jù)庫查詢變量),所以我們可以在該URL中嵌入惡意SQL語句。

不過要提前說明一下,我們不會(huì)在本文中討論加密問題,而是只討論應(yīng)用程序缺陷,我們會(huì)先生成加密的有效載荷,然后將其用于識(shí)別和利用SQL注入。

在最近我們接觸到的一個(gè)電子商務(wù)應(yīng)用程序中,觀察了該網(wǎng)站的大多數(shù)請(qǐng)求參數(shù)值已被加密。當(dāng)請(qǐng)求參數(shù)被加密時(shí),很難對(duì)應(yīng)用程序進(jìn)行模糊測試,除非我們可以去除加密,不過這需要知道密鑰和加密算法。

下圖就是我們所找的樣本網(wǎng)站的詳細(xì)信息頁面,該頁面就是以加密格式發(fā)送id(orderid)參數(shù)的。

注意:參數(shù)值(BDKfx3xNKsc =)是加密的,而不是簡單的base64編碼。ID參數(shù)的加密值以base64編碼格式表示。

我們還注意到,如果我們退出應(yīng)用程序,然后以相同的用戶登錄并導(dǎo)航到完全相同的頁面,則加密參數(shù)(nPBri1km2ic =)的值現(xiàn)在不同,如下所示。

正如上圖所示,隨機(jī)密鑰在每個(gè)成功的登錄或會(huì)話ID(cookie的一部分)中用于加密,以某種方式用作密鑰的一部分。這看起來很安全,不過還是讓我們嘗試著SQL注入。

首先,我們嘗試在多個(gè)位置注入單引號(hào)(')以測試輸入驗(yàn)證,但請(qǐng)求參數(shù)被拒絕,因?yàn)檫@些參數(shù)需要加密格式(即有效的密文)。

不過我們?cè)谶@里可以使用購物車的一個(gè)分享功能,此功能允許用戶與其他人共享購物車項(xiàng)目。當(dāng)用戶保存購物車進(jìn)行共享時(shí),會(huì)產(chǎn)生一個(gè)帶有隨機(jī)查詢令牌的鏈接。通過訪問此鏈接(URL),用戶可以訪問彼此的購物車。在購物車被要求保存之前,用戶被要求在購物車上標(biāo)記一個(gè)名字。

由于這是接受明文輸入的罕見輸入字段之一,所以我們將其編碼為SQLi,XSS。在更深入的檢測中,我們發(fā)現(xiàn)生成的URL中的令牌共享購物車實(shí)際上是我們?yōu)橘徫镘囘x擇的購物車名稱的密碼。

不過請(qǐng)注意,共享購物車功能可不會(huì)輕易受到任何攻擊的影響,但可以用于為給定輸入(明文)生成加密的有效內(nèi)容(密文)?,F(xiàn)在,可以共享購物車功能的鏈接就可以生成一個(gè)加密的攻擊有效載荷來檢查應(yīng)用程序?qū)QL注入,繞過授權(quán)等漏洞行為進(jìn)行驗(yàn)證了。為了測試SQL注入,生成了單引號(hào)(')的加密值。

加密的有效載荷用于模糊僅接受密文值作為輸入的各種應(yīng)用參數(shù)。我們花了一些時(shí)間來打到正確的位置,但是最終,orderitem頁面的ID參數(shù)返回一個(gè)SQL錯(cuò)誤消息,確認(rèn)該漏洞。

該錯(cuò)誤消息證明應(yīng)用程序生成動(dòng)態(tài)查詢,并可能容易受到SQL注入攻擊?,F(xiàn)在是從數(shù)據(jù)庫中提取信息的時(shí)候了,基于UNION的SQL查詢用于從數(shù)據(jù)庫中提取數(shù)據(jù),聯(lián)合運(yùn)算符用于組合兩個(gè)或多個(gè)select語句的結(jié)果。

第一個(gè)任務(wù)是確定作為SQL查詢的一部分返回的列數(shù),使用試錯(cuò),我們?cè)诓樵冎蟹祷亓艘恍┝?30)?,F(xiàn)在是時(shí)候從數(shù)據(jù)庫中提取信息了,我們創(chuàng)建了一個(gè)加密的有效載荷來提取數(shù)據(jù)庫版本信息,如下所示。

然后,把上述有效載荷的輸出生成的密文作為頁面上易受攻擊的ID參數(shù)輸入。

然后我們使用這個(gè)漏洞來構(gòu)建數(shù)據(jù)庫系統(tǒng),最終得到一個(gè)shell。

總結(jié)

由上面的分析可知,用加密參數(shù)來實(shí)現(xiàn)應(yīng)用程序中的安全性其實(shí)并不像想象中的那么安全,比如用強(qiáng)加密算法加密的數(shù)據(jù),惡意攻擊者可以使用加密的有效載荷的方式來進(jìn)行攻擊。 目前,加密仍被認(rèn)為是保護(hù)數(shù)據(jù)免遭篡改或欺騙的有力機(jī)制,不過由于加密執(zhí)行不力和缺乏明確的使用隱私保護(hù),所以仍有可能會(huì)造成相當(dāng)危險(xiǎn)的安全漏洞。

責(zé)任編輯:趙寧寧 來源: 嘶吼網(wǎng)
相關(guān)推薦

2023-10-16 19:05:20

2021-11-22 23:20:01

加密算法架構(gòu)

2023-08-02 07:27:53

2009-08-13 18:12:11

C#數(shù)據(jù)加密

2012-09-13 09:58:38

2023-07-30 17:44:24

CryptoJS加密字符串

2009-08-21 15:02:31

C#加密算法

2011-08-18 12:12:29

2020-12-16 05:46:58

算法加密算法MD5

2009-08-04 11:08:33

ASP.NET數(shù)據(jù)加密

2020-07-30 07:58:36

加密算法

2024-01-10 14:29:08

2015-05-27 16:35:59

2010-09-09 10:06:56

Zigbee協(xié)議棧加密算法

2013-10-17 13:20:34

2020-05-08 11:13:28

Python數(shù)據(jù)技術(shù)

2018-07-10 10:29:27

2024-12-31 08:00:00

SpringBoot開發(fā)加密

2015-06-23 11:11:55

2015-05-11 10:40:08

加密數(shù)字圖像加密加密算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)