栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA代码审计XSS及Filter动态代理过滤

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA代码审计XSS及Filter动态代理过滤

JAVA代码审计XSS及Filter动态代理过滤
1.介绍
最近写了个小玩意儿,主要功能为用户信息管理,例如新增 删除 添加等。但在没写过滤之前,全是xss

所以拿出来给大家进行简单分析,后续通过动态代理进行过滤。

2.代码分析
这里就只分析用户添加的页面了,可以看到在未做任何过滤的情况触发XSS

在add.jsp页面发现了Servlet

之后跟进该Servlet,通过获取用户输入进行发送到Service,Service在发送到Dao进行处理


Dao层用的是JDBCtemplate实现,经过测试发现如果使用PreparedStatement连接数据库的话,PreparedStatement会过滤掉常见的XSS代码

但是PreparedStatement过滤一般常用的确实可以,但是鸡肋一点的话,就很轻松绕过了。
//鸡肋点的语句…

在AddServlet可以看到,最后进行了重定向,而ListUser就是首页

resp.sendRedirect("/Students/ListUser");

跟进AddServlet之后,可以发现该Servlet执行了findALL(),该方法其实就是service层–>Dao层的查询全部用户信息。并存储到了list中。之后设置setAttribute之后进行了请求转发到list.jsp

跟进list.jsp之后,可以发现将用户的信息使用JSTL遍历出并显示。全程毫无过滤。

3.Filter动态代理过滤
这里本人简单写了一下过滤。只过滤了< >标签。后续可以根据自己需求进行改进。

写的很简单,就不多说了。
@WebFilter("/*")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {

}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    ServletRequest servlet = (ServletRequest)Proxy.newProxyInstance(servletRequest.getClass().getClassLoader(), servletRequest.getClass().getInterfaces(), new InvocationHandler() {
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

            if(method.getName().equals("getParameter")){
                String value = (String)method.invoke(servletRequest,args);//获取输入的value
                value = value.replaceAll(">","*");//将值替换
                value = value.replaceAll("<","*");
                return value;
            }else{
                System.out.println("没有匹配成功");
            }

            return method.invoke(servletRequest,args);
        }
    });
    filterChain.doFilter(servlet,servletResponse);
}

@Override
public void destroy() {

}

之后可以发现过滤成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号