濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 數(shù)據(jù)庫(kù)之SQL注入原理以及過(guò)程的簡(jiǎn)單介紹

數(shù)據(jù)庫(kù)之SQL注入原理以及過(guò)程的簡(jiǎn)單介紹

熱門標(biāo)簽:隨州營(yíng)銷電話機(jī)器人怎么樣 機(jī)器人電話機(jī)創(chuàng)意繪畫 江西南昌百應(yīng)電話機(jī)器人 天音通信電話機(jī)器人 400電話從哪里申請(qǐng)濱州 hbuilder地圖標(biāo)注 高德地圖標(biāo)注商家在哪 400電話申請(qǐng)?jiān)趺纯?/a> 杭州400電話如何申請(qǐng)的

1、產(chǎn)生SQL注入原因

開(kāi)發(fā)代碼的時(shí)候沒(méi)有全面考慮到網(wǎng)絡(luò)安全性,特別是在用戶交互時(shí),沒(méi)有考慮到用戶提交的信息中可能破壞數(shù)據(jù)庫(kù),沒(méi)有對(duì)輸入的數(shù)據(jù)進(jìn)行合法的過(guò)濾。SQL 注入過(guò)程目的性是非常強(qiáng)的,其主要目標(biāo)是 Web 應(yīng)用的后臺(tái)數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)中獲取信息和授予較高的權(quán)限,它先破壞數(shù)據(jù)庫(kù),再對(duì)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行破壞。

2、SQL注入原理

首先要了解web網(wǎng)站的架構(gòu):

Web 網(wǎng)站架構(gòu)總體結(jié)構(gòu)由 Web 服務(wù)器端、客戶終端和通信協(xié)議三大部分組成。

表示層是指用戶交互的界面。用戶在使用時(shí)在表示層輸入需求,然后這個(gè)信息就傳送給服務(wù)器,再傳輸給數(shù)據(jù)庫(kù),服務(wù)器將后臺(tái)反饋的結(jié)果返回給用戶。

邏輯層為表示層提供請(qǐng)求的應(yīng)答,為數(shù)據(jù)層提供參數(shù)需求

數(shù)據(jù)層主要是對(duì)用戶提交的涉及到數(shù)據(jù)查詢做出回應(yīng)

下面以一個(gè)ASP網(wǎng)站為例來(lái)說(shuō)明SQL注入攻擊原理。Web頁(yè)面接收用戶輸入的用戶名(username)和密碼(pwd),并動(dòng)態(tài)生成一個(gè)SQL語(yǔ)句,通過(guò)用戶名(usexname)和密碼(pwd)查詢數(shù)據(jù)庫(kù)中users表,如果該查詢?cè)L問(wèn)成功,將返回一個(gè)用戶記錄信息,且用戶登錄成功。

其中生成SQL語(yǔ)句如下:

    sql="select*from users where name ="'username"' and pwd="'userpwd" "'

    如果攻擊者在登錄頁(yè)面中輸入了下面這樣的數(shù)據(jù):

    Username: 'or'1'='1 or'1'='2 

    Password:  000(任意)

    那么,SQL查詢語(yǔ)句就變?yōu)?

    select*from users where name ="or' 1'=' 1' or'1'='2' and pwd='00'

    where后的語(yǔ)句為 name ="or'1'='1' or'1'='2' and pwd='0'

轉(zhuǎn)換成邏輯語(yǔ)句后,其形式為: 假or真or假and假,則最終結(jié)果為真

最終結(jié)果為真,那么SQL語(yǔ)句的查詢結(jié)果也變成真,

所以上面查詢語(yǔ)句將返回表中所有用戶記錄,攻擊者將以表中第1個(gè)用戶的身份登錄。

如果攻擊者在登錄頁(yè)面中指定了下面這樣的輸入數(shù)據(jù):

    Username:';drop table users一

    Password:  000(任意)

提交數(shù)據(jù)后,提示登錄失敗,但結(jié)果不僅如此,而是數(shù)據(jù)庫(kù)表users將被刪除,任何用戶都無(wú)法登錄。

3、SQL注入攻擊過(guò)程

過(guò)程:

通過(guò)檢查Web頁(yè)而上存在的SQL注入漏洞,構(gòu)建特殊的SQL注入點(diǎn);

其次通過(guò)這些特殊的注入點(diǎn)利用Web頁(yè)而動(dòng)態(tài)傳遞參數(shù)的功能,將SQL的語(yǔ)法組合動(dòng)態(tài)傳遞給數(shù)據(jù)庫(kù);

然后根據(jù)數(shù)據(jù)庫(kù)的不同類型,對(duì)數(shù)據(jù)庫(kù)采取不同的處理;

最后執(zhí)行SQL語(yǔ)句,從而達(dá)到攻擊者想要的目的。

判斷注入點(diǎn)。

在含有傳遞參數(shù)的動(dòng)態(tài)網(wǎng)頁(yè)中,判斷是否存在注入漏洞。通常的判斷方法有參數(shù)傳遞的地方輸入?yún)ⅰ癮nd 1=1” ;“and 1=2”

結(jié)果:分別返回不同的頁(yè)面,說(shuō)明存在注入漏洞。

判斷數(shù)據(jù)庫(kù)類型:

①通過(guò)函數(shù)來(lái)判斷數(shù)據(jù)庫(kù)類型:內(nèi)置的函數(shù)的區(qū)別。

舉例,len和length使用and len('a')=1的時(shí)候,返回正常頁(yè)面時(shí),mssql,或mysql。反之則可能會(huì)是oracle和informix。

--# 這兩個(gè)注釋符號(hào)

MSSQSL是--,而MYSQL是#,ACCESS不支持注釋

HTTP://xxx.xxx.xxx/abc.asp?p=YY--

HTTP://xxx.xxx.xxx/abc.asp?p=YY#

SQL Server SA用戶權(quán)限

xp_cmdshell 擴(kuò)展存儲(chǔ)過(guò)程將命令字符串作為操作系統(tǒng)命令 執(zhí)行,并以文本行的形式返回所有輸出。由于xp_cmdshell 可以執(zhí)行任何操作系統(tǒng)命令,所以一旦SQL Server管理員帳號(hào)(如sa)被攻破,那么攻擊者就可以利用xp_cmdshell 在SQL Server中執(zhí)行操作系統(tǒng)命令,如:創(chuàng)建系統(tǒng)管理員。

到此這篇關(guān)于數(shù)據(jù)庫(kù)之SQL注入原理以及過(guò)程的簡(jiǎn)單介紹的文章就介紹到這了,更多相關(guān)SQL注入原理及過(guò)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Java SQL注入案例教程及html基礎(chǔ)入門
  • MyBatis下SQL注入攻擊的3種方式
  • SQL注入的實(shí)現(xiàn)以及防范示例詳解
  • Mybatis-Plus的應(yīng)用場(chǎng)景描述及注入SQL原理分析
  • 如何有效防止sql注入的方法
  • Java使用過(guò)濾器防止SQL注入XSS腳本注入的實(shí)現(xiàn)
  • 實(shí)例介紹SQL注入以及如何解決
  • 有效防止sql注入的方法演示

標(biāo)簽:保定 鶴崗 葫蘆島 常德 石嘴山 昆明 招商 沈陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《數(shù)據(jù)庫(kù)之SQL注入原理以及過(guò)程的簡(jiǎn)單介紹》,本文關(guān)鍵詞  數(shù)據(jù)庫(kù),之,SQL,注入,原理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《數(shù)據(jù)庫(kù)之SQL注入原理以及過(guò)程的簡(jiǎn)單介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于數(shù)據(jù)庫(kù)之SQL注入原理以及過(guò)程的簡(jiǎn)單介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    南充市| 鄂托克前旗| 南开区| 安泽县| 乐业县| 额济纳旗| 甘孜县| 海晏县| 武定县| 柞水县| 承德市| 桃园市| 肇东市| 公主岭市| 比如县| 无棣县| 邮箱| 盐城市| 新野县| 鲁山县| 稷山县| 浦城县| 临清市| 通海县| 通州区| 师宗县| 海伦市| 肃北| 仪征市| 夹江县| 钦州市| 阳东县| 来凤县| 永丰县| 上饶县| 桐柏县| 卢氏县| 龙胜| 滦南县| 茂名市| 略阳县|