某微SQL注入分析
0 条评论前言
提交的某微sql注入被公开了,网上有不少分析了,看了几篇文章,没有分析到要点。
这里来解释一下。
漏洞分析
sql注入触发点是在mobile/plugin/browser.jsp
这里对keyword 有一次url解码
在weaver.mobile.webservices.common.BrowserAction 中也有一次解码操作
并且在此类的某些功能中,还有着sql拼接操作,keyword参数经过三次url编码,绕过了其安全过滤,并拼接到sql语句中,导致sql注入。
sql注入也就到这里分析完了,那么还有两个问题,怎么绕过权限的?怎么后续利用?
绕过权限
看一下旧的权限判断
判断为/mobile/后
会有黑白名单的校验,
白名单无所谓,那么黑名单怎么绕过呢?
黑名单使用的是
path.indexOf(url)
来判断是否相等,如果我们能构造出特殊的url,即可绕过。
但是,在这之前以及使用过super.path(path) 来标准化url了,
看看逻辑
这里存在一个逻辑问题,先是去掉//,再去掉空格,
如果我们的路径是 /%20/,标准化过后即为 //
绕过indexof的判断。
新的逻辑已经修复了
利用
这个功能下,很多是可回显的,我们只要通过联合注入,构造所需返回的数据,找到一个String返回点即可,
某微大部分情况下是sqlserver,并支持堆叠注入,但是其防御机制将;、--+等符号给过滤了,我们怎么进行堆叠注入呢?
实际上,sqlserver堆叠注入并不需要 ;
所以,相应构造即可堆叠注入。