当前位置: 首页 >  问答宝库 >  java代码审计-XSS

java代码审计-XSS

导读:0x01 前言.XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript。xss本质上就是浏览器执行了域外的代码,出现的场景比较多,需要具体情况具体分析.0x02

0x01 前言

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript。xss本质上就是浏览器执行了域外的代码,出现的场景比较多,需要具体情况具体分析

0x02 反射型xss

    @RequestMapping("/reflect")
    @ResponseBody
    public static String reflect(String xss) {
        return xss;
    }

可以看到代码中设定参数值没有经过任何过滤访问直接返回到页面中
payload:xss=<script>alert(/xss/)</script>

##

0x03 存储型xss

存储型xss就是把我们嵌入的js代码存储到数据中,然后通过访问数据库的功能点然后造成xss,所以它相比反射型xss更持久危害更大

    @RequestMapping("/stored/store")
    @ResponseBody
    public String store(String xss, HttpServletResponse response) {
        Cookie cookie = new Cookie("xss", xss);
        response.addCookie(cookie);
        return "Set param into cookie";
    }

这里用cookie来模拟下存储型xss,设定一个参数值把它写到cookie中,然后我们再通过以下路由去取这个值然后返回到页面中来

    @RequestMapping("/stored/show")
    @ResponseBody
    public String show(@CookieValue("xss") String xss) {
        return xss;
    }

payload:http://localhost/xss/stored/store?xss=%3Cscript%3Ealert(/xss/)%3C/script%3E

访问路由/stored/show,触发xss

0x04 漏洞修复

自定义函数,过滤<>等敏感字符

  @RequestMapping("/safe")
    @ResponseBody
    public static String safe(String xss) {
        return encode(xss);
    }



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

0x05 其它

xss的利用手段主要是网络蠕虫攻击和窃取用户cookie信息。xss蠕虫通过漏洞点嵌入恶意的js代码,执行代码后,就会添加带有恶意代码的页面或DOM元素,从而进行传播。而如果盗取cookie信息,常见的就是进行跨域请求的问题。

内容
  • 软件研发CI/CD流水线图解
    软件研发CI/CD流水线图解
    2023-12-02
    当谈到现代软件开发流程时,持续集成(Continuous Integration,简称CI)和持续交付(Continuo
  • 一种简化操作日志记录方案
    一种简化操作日志记录方案
    2023-12-06
    一、背景:.后台系统配置越来越多的出现需要进行日志记录的功能,且当前已有日志记录不可复用,需要统一日志记录格式,提高日志
  • DVWA靶场实战(九)——Weak Session IDS
    DVWA靶场实战(九)——Wea
    2023-12-03
    DVWA靶场实战(九).九、Weak Session IDS:.1.漏洞原理:.Weak Session.IDS也叫做弱
  • 学系统集成项目管理工程师(中项)系列06b_信息系统安全管理(下)
    学系统集成项目管理工程师(中项)
    2023-12-04
    1. 物理安全管理.1.1. 计算机机房与设施安全.1.1.1. 计算机机房.1.1.1.1. 机房场地选择.1.1.1
  • 基于ITIL的ITSM工具
    基于ITIL的ITSM工具
    2023-12-05
    随着企业的ITSM(IT服务管理)的逐渐成熟进而深入应用,如果您希望以低成本寻找一款基于ITIL的ITSM管理工具,然后
  • web安全|渗透测试|网络安全
    web安全|渗透测试|网络安全
    2023-12-04
    web安全|渗透测试|网络安全.基础入门(P1-P5).p1概念名词.1.1域名.什么是域名?.域名:是由一串用点分隔的