当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 突破一流信息监控拦截系统进行SQL注射

MSSQL
最簡便的備份MySql資料庫方法
MS SQL 数据库备份和还原的几种方法
深入浅出SQL系列教程之SQL语言简介
Asp备份与恢复SQL Server
实战MSSQL 2000数据库之MSSQL Server安装
五种提高SQL Server性能的方法
SQL Server数据库备份和恢复措施
INSERT语法使用技巧一例
sql注入防范方法
操作数据库结构Sql语句
精妙SQL语句介绍
SQL Server常见连接错误
SQL如何备份并压缩备份文件?
Access数据库升迁SQLServer
SQL Server中如何计算农历
SQL SERVER Agent服务使用技巧小结
SQL SERVER使用嵌套触发器
“SQL Server不存在或访问被拒绝”问题的解决
SQL Server 管理常用的SQL和T-SQL(二)
谈SQL Server 2005中的T-SQL增强

MSSQL 中的 突破一流信息监控拦截系统进行SQL注射


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 63 ::
收藏到网摘: n/a

 

by lake2 (http://lake2.0x54.org)
上回渗透一站点,SQL Injection测试时返回这个页面(图1)

 

我晕,原来服务器上装了一个叫“一流信息监控拦截系统”的BT玩意儿,扫兴!查查它老底先。

Google一下“一流信息监控拦截系统”。原来这是广州××信息科技公司开发的内容监控系统,用来监控拦截非法信息的,当然也包括SQL注射。它主页上软件功能介绍赫然写着:“软件可以全面拦截任何的SQL注入式的攻击,就算多差的程序都不用担心了”。嘿嘿,大哥,牛皮不要吹得太大哟,不然怎么好下台啊。

看他把话说得那么绝,我一定要给他点颜色瞧瞧。呵呵,不是说只有想不到没有做不到么,嗯,让我想想先。网上没有找到那软件下载,算啦,就直接在网站上测试好了。

经过几回合测试,我发现那个软件是拦截独立的关键词,也就是拦截字符串“and”,而不会拦截包含“and”的字符串如“island”。提交http://xxx/x.asp?x=island 1=2时没问题,而提交http://xxx/x.asp?x=a and 1=1时就被拦截了。

呵呵,明白了吧,实际上程序要判别到底是不是完全匹配真正拦截的字符串是空格+关键词+空格(本例中就是“ and ”)。如果用ASP代码表示的话就是:

If Instr(1 , StrQuest , “ and “ , 1) Then
    Response.Write( “一些废话” )
    Response.End
End If

拦截原理搞懂了,问题是怎么突破呢?往下看。

关键字是要注射要用到的,乱动不得,就只有从空格入手了。呵呵,想想什么东东可以代替空格啊,对,就是Tab!现在我修改URL用tab代替and前后的两个空格,呵呵,看看图2吧(Tab -->“%09”,空格 -->“%20”)。

Yeah,成功啦!传说中的一流信息监控拦截系统被我们绕过去了。哈哈,那个什么系统正好是个漏洞百出的Web程序,呵呵,继续如法炮制进行SQL注射拿管理员帐号密码得WebShell,那些都是体力活了,略过略过。

有了WebShell,执行“net user”命令又被他拦截了(这个可恶的家伙……),呵呵,小case啦,那就执行“net  user”(中间两个空格)吧^_^

当然这种用Tab代替空格突破限制的方法也不仅仅局限于“一流信息监控拦截系统”,只要是类似的过滤方法就行。比如说青创文章系统(Version 1.5.2.23.7.0),它就是这种过滤方法,但是还过滤了“_”,而它的每个表都是article_xxx的形式,结果还是不能进行猜解。罢休!

最后顺便说下,一流信息监控系统“可以实时监控用户上传到服务器的每一张图片”、“对使用服务器的用户进行关键字监控,无论是通过 FTP方式上传或web方式上传的文件都可以准确监控,将不法用户的行为记录在案”等功能,好像侵犯隐私权了……