首页 > 编程语言 >学习笔记-java代码审计-xss

学习笔记-java代码审计-xss

时间:2022-11-13 08:46:44浏览次数:68  
标签:xss java String request 笔记 replace content StringUtils

java代码审计-xss

0x01 漏洞挖掘

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    response.setContentType("text/html");
    String content = request.getParameter("content");
    request.setAttribute("content", content);
    request.getRequestDispatcher("/WEB-INF/pages/xss.jsp").forward(request, response);
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Xss Test</title>
</head>
<body>
<div>
    ${content}
</div>
</body>
</html>

一个简单的小demo,xss本质上就是浏览器执行了域外的代码,出现的场景比较多,需要具体情况具体分析

0x02 漏洞防御

可以使用esapi的encoder

import org.owasp.esapi.ESAPI;

String content = request.getParameter("content");
content = ESAPI.encoder().encodeForHTML(content);
content = ESAPI.encoder().encoderForJavaScript(content); //防御dom xss使用jsencode

也可以自行进行htmlencode

import org.apache.commons.lang.StringUtils;

private String htmlEncode(String content) {
    content = StringUtils.replace(content, "&", "&amp;");
    content = StringUtils.replace(content, "<", "&lt;");
    content = StringUtils.replace(content, ">", "&gt;");
    content = StringUtils.replace(content, "\"", "&quot;");
    content = StringUtils.replace(content, "'", "&#x27;");
    content = StringUtils.replace(content, "/", "&#x2F;");
    return content;
}

0x03 参考链接

http://liehu.tass.com.cn/archives/1427

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

标签:xss,java,String,request,笔记,replace,content,StringUtils
From: https://www.cnblogs.com/haidragon/p/16885380.html

相关文章

  • 学习笔记-java代码审计-sqli
    Java代码审计-sqli0x01漏洞挖掘jdbc在上古时期,人们往往这么从数据库获取数据。publicUsergetUserById(Stringid)throwsSQLException{Connectionconnectio......
  • 学习笔记-java代码审计-ssrf
    java代码审计-ssrf0x01漏洞挖掘java发送http请求的方式还是比较多的,下面是原生的:Stringurl=request.getParameter("url");URLu=newURL(url);//1.URL,直接打开......
  • 学习笔记-java代码审计-ssti
    java代码审计-ssti0x01漏洞挖掘Velocity@RequestMapping("/ssti/velocity")publicStringvelocity(@RequestParam(name="content")Stringcontent){Velocity......
  • 学习笔记-java代码审计-命令执行
    java代码审计-命令执行0x01漏洞挖掘Stringcmd=request.getParameter("cmd");Runtimeruntime=Runtime.getRuntime();//Runtime.getRuntime.execProcessBuilder......
  • 学习笔记-java代码审计-文件操作
    java代码审计-文件操作0x01文件上传这段代码来自菜鸟教程:privatestaticfinalStringUPLOAD_PATH="/tmp/upload";privatebooleanuploadWithFileUpload(HttpServ......
  • 学习笔记-java代码审计-反序列化
    Java代码审计-反序列化0x00漏洞挖掘业务代码简单来说,找readObject/readUnshared就好了protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresp......
  • 学习笔记-java代码审计-环境搭建+前置知识
    Java代码审计-环境搭建+前置知识0x00中间件tomcat因为个人比较矫情,不想在mac搭java的开发环境,就想着有没有本地写代码然后部署到虚拟机上运行。毕竟java是静态语言,在编......
  • 学习笔记-java代码审计-表达式注入
    java代码审计-表达式注入0x01漏洞挖掘spelspel表达式有三种用法:注解@value("#{表达式}")publicStringarg;这种一般是写死在代码中的,不是关注的重点。xml<b......
  • 【Javaweb】做一个房产信息管理系统三(src目录的部署工作【三层框架】各个层含义)
    接下来,我打算进行Java文件的部署工作,但实际上为了得到更多的分数,我们还是应该先做页面首先我们需要了解对于Javaweb,src下的目录应该如何部署:(三层架构单独开一篇讲) 那......
  • java.util.List如何用
    起因是这样,我在学习Javaweb,然后就突然有很多类似的语句  这是什么意思呢?让我们一起来解决看看吧!List有序集合(也成为序列),用户可以精确控制列表中每个元素的插入位置。......