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

MSSQL
ACCESS改为SQL需要注意哪几个地方
把sql数据和access数据整合成一个数据集
SQL中Print语句的烦恼
关于SQL server中字段值为null的查询
得出SQL语句的执行时间的方法
如何在SqlServer与oracel中进行分页的讨论!
分页SQLServer存储过程
怎么清除sql server日志
Sql数据库MDF数据文件数据库恢复
SQL Server存储图像数据的策略与方法
sql server关于函数中如何使用Getdate()
将使用Access的论坛迁移到SqLServer中
ACCESS:跨数据库查询的SQL语句
SQLSERVER扩展存储过程XP_CMDSHELL的简单应用
在SQL Server中快速删除重复记录
调整SQLServer2000运行中数据库结构
SQL Server中查询时显示行号的方法
从数据库中随机抽N条记录
确保所有的非空(Non-NULL)值都是唯一的
使用视图控制用户对数据访问

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 89 ::
收藏到网摘: 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方式上传的文件都可以准确监控,将不法用户的行为记录在案”等功能,好像侵犯隐私权了……