pasckr 发表于 2016-5-12 17:54:42

一个罕见的MSSQL注入漏洞案例分析






    http://cimage.tianjimedia.com/uploadImages/20160303171737886.jpg
这里作者准备分享一个在去年Google赏金计划中发现的相当罕见漏洞,也是作者在整个渗透测试生涯中唯一一次遇到的。
目标网站使用了微软 SQL Server 数据库并且其中一个存在 SQL 盲注。你问我怎么知道的?当然是通过触发真/假条件判断的。
这里没什么特别的地方,就是一个常见的 SQL 注入测试,但随后问题来了:
1. 手工测试表明存在 SQL 盲注漏洞
2. 但扫描器/SQLMap 不起作用
3. 好像使用了存储过程方法(不确定)
我尝试了多种方法提供 POC 但没有一种能够成功,再进一步研究后发现,应用程序只会对用户权限提交的整数值进行响应。
对此我一点办法也没有,直到发现了 v1d0q 提供的一个方法 https://rdot.org/forum/showthread.php?t=826 (ps:俄语,小编表示看不懂啊(ノ=Д=)ノ┻━┻)
当时这对我来说是种全新的方法,但令人惊讶的是这样真的管用!
进一步阅读后发现,我实际上是在尝试查询 MSSQL 里是否存在 Transact-SQL 其返回类型为 int或 smallint。通常,返回类型都有自己自身的值。例如:
@@LANGID 默认通常为 0 (英语)
@@TEXTSIZE 可能比 1000 大
继续进行测试,我尝试使用其他 Transact-SQL 语句来确保结果不为假,的确最终大部分的查询语句都返回为真:)
在提交了这个有限的 POC 给网站的所有者后,非常幸运的他们确认了这个漏洞并给予奖励!
http://cimage.tianjimedia.com/uploadImages/20160303171737481.jpg
下面是在一台测试服务器上进行的实验:
http://cimage.tianjimedia.com/uploadImages/20160303171737807.jpg
http://cimage.tianjimedia.com/uploadImages/20160303171737637.jpg
http://cimage.tianjimedia.com/uploadImages/20160303171737216.jpg
http://cimage.tianjimedia.com/uploadImages/20160303171737873.jpg
页: [1]
查看完整版本: 一个罕见的MSSQL注入漏洞案例分析