[讨论]mssql注入如何绕过过滤
议题作者:inking信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
今天测试了学校里面的一个站点,发现<,>,都被过滤了而且()也被过滤了,不知道怎么绕过
比如我提交dingzhong.asp?id=146386%20and%20user>0;--
返回:
Microsoft OLE DB Provider for SQL Server error '80040e14'
第 1 行: 'user0' 附近有语法错误。
/bt2/dingzhong.asp, line 36
--------------------------------
大于号直接被删除了,括号也是一样的情况,试了一下((来代替(也不行
>不行就<,或者=
或者转成HEX ls的 [s:263]
1楼说的对,针对<和>我是用=号来代替的,但是它过滤了[],(),{}这些好像就不能用函数了吧,而且诸如0<>(select count(*) from...)的也不能用了.不过有几个扩展是不需要括号的,比如;exec master..xp_cmdshell 'dir' ;虽然过滤了exec,但是通过返回的错误我提交了eexec就绕过了.但是由于不是sa权限,所以命令是执行不了,后来想手工列目录,但是由于还是需要括号,结果还是失败...他的过滤难就难在直接删掉了url里的括号,要是转换成其它的那也许还可以想个办法,而自己对数据库的语言又不是很熟悉,所以实在没有办法了.
我现在唯一得出的结果是:
1.利用use master暴出了一个表
2.利用union查询查处该表里有个user列,其它的再查不出了
3.本来想用union暴出user里面有什么东西,但是由于页面显示不了字段,查源代码也没有
4.用户名是dbo,但是不是sa权限
over 找找别的地方吧,比如说类似搜索、登录的地方。 post and get [quote]引用第5楼hacklife于2007-11-07 11:28发表的 :
搞不懂在说什么 不过找个好用点的工具应该可以搞定的吧 嘿嘿
偶也不是太懂 [s:263][/quote]
呵呵,也就是过滤程序对提交的url进行了字符搜索,一旦有括号就删掉,然后再执行数据库查询,没了括号大部分语句都没有用了.
比如我提交[url]http://test.com/index.asp?id=1[/url] a(((())))nd 1)([]{}=1;--
的效果和提交[url]http://test.com/index.asp?id=1[/url] and 1=1
是一样的
这个漏洞现在已经通知管理员了,最后也没有拿下服务器,只是利用注入漏洞update(update不需要括号,大家都知道^_^)了数据,构造了xss漏洞,没拿下服务器很是不爽呵呵 转成HEX。。 '没过滤吗?
update x set x=0x........................
backup database pubs to disk='C:\Documents and Settings\All Users\「开始」菜单\程序\附件\1.hta'
嘿嘿,根据你描述的可以拿的。 C:\Documents and Settings\All Users\「开始」菜单\程序\启动\1.hta 打错了
页:
[1]