SQL注入漏洞-SQL盲注
盲注,從字面意思理解就是看不見的注入,其實這還是屬于注入的一種,只是表現(xiàn)形式不同。盲注是不能通過直接顯示的途徑來獲取數(shù)據(jù)庫數(shù)據(jù)的方法。在盲注中,攻擊者根據(jù)其返回頁面的不同來判斷信息(可能是頁面內(nèi)容的不同,也可以是響應(yīng)時間不同)。也就是說執(zhí)行插入的語句后,不管是否執(zhí)行,是否成功,都不會回顯詳細的錯誤信息,不像普通注入一樣那么容易判斷。但是,注入攻擊還是發(fā)生了,只是錯誤信息被屏蔽掉了,請記住這個就好。一般情況下,盲注可分為三類:
- Booleanbase??普通盲注
- Timebase?????? 基于時間的盲注
- Errorbase??? ?? 基于報錯的盲注
LOW實驗的關(guān)鍵代碼:
可以和上一個注入的代碼對比會發(fā)現(xiàn)多了一條語句,盲注之所以比普通注入困難,就是因為這句代碼把返回的錯誤信息屏蔽掉了,攻擊者就無法判斷,因此增加了注入的難度,但這不是根本解決的方法,因為它并沒有阻止注入的發(fā)生,只是把注入的結(jié)果屏蔽而已。
現(xiàn)在可以構(gòu)造攻擊語句,先查詢數(shù)據(jù)庫名、用戶名、數(shù)據(jù)庫版本等基本信息,然后獲取表明列名等數(shù)據(jù)。
其實用的原來的語句是這樣的
UNION?SELECT?1,CONCAT_WS(CHAR(32,58,32),user(),database(),version())
Concat_ws就是一個字符串連接函數(shù),為了更簡單理解就去掉了這個函數(shù),分開測試,并不影響測試結(jié)果。
?
現(xiàn)在可以查詢表名列名和數(shù)據(jù)了,利用的是Mysql的系統(tǒng)函數(shù),很容易查詢出想要的數(shù)據(jù)
查詢表名
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表
表名列名都出來了,查數(shù)據(jù)大家都會,不再贅述。
總結(jié)
以上是生活随笔為你收集整理的SQL注入漏洞-SQL盲注的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解耦合
- 下一篇: linux cmake编译源码,linu