SQL注入漏洞-SQL盲注
盲注,從字面意思理解就是看不見的注入,其實這還是屬于注入的一種,只是表現形式不同。盲注是不能通過直接顯示的途徑來獲取數據庫數據的方法。在盲注中,攻擊者根據其返回頁面的不同來判斷信息(可能是頁面內容的不同,也可以是響應時間不同)。也就是說執行插入的語句后,不管是否執行,是否成功,都不會回顯詳細的錯誤信息,不像普通注入一樣那么容易判斷。但是,注入攻擊還是發生了,只是錯誤信息被屏蔽掉了,請記住這個就好。一般情況下,盲注可分為三類:
- Booleanbase??普通盲注
- Timebase?????? 基于時間的盲注
- Errorbase??? ?? 基于報錯的盲注
LOW實驗的關鍵代碼:
可以和上一個注入的代碼對比會發現多了一條語句,盲注之所以比普通注入困難,就是因為這句代碼把返回的錯誤信息屏蔽掉了,攻擊者就無法判斷,因此增加了注入的難度,但這不是根本解決的方法,因為它并沒有阻止注入的發生,只是把注入的結果屏蔽而已。
現在可以構造攻擊語句,先查詢數據庫名、用戶名、數據庫版本等基本信息,然后獲取表明列名等數據。
其實用的原來的語句是這樣的
UNION?SELECT?1,CONCAT_WS(CHAR(32,58,32),user(),database(),version())
Concat_ws就是一個字符串連接函數,為了更簡單理解就去掉了這個函數,分開測試,并不影響測試結果。
?
現在可以查詢表名列名和數據了,利用的是Mysql的系統函數,很容易查詢出想要的數據
查詢表名
union?select?1,table_name?from?information_schema.tables?where?table_schema=0x64767761?limit?0,1
?查詢列名
union?select?1,column_name?from?information_schema.columns?where?table_name=0x7573657273?and?table_schema=0x64767761
column_name要查詢的存儲列名
table_name=0x7573657273這里多了一個這個,這是表名的十六進制,也就是users表
表名列名都出來了,查數據大家都會,不再贅述。
總結
以上是生活随笔為你收集整理的SQL注入漏洞-SQL盲注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解耦合
- 下一篇: 手机全部零件名称图片_【直播课】一条记录