java代码审计-XSS

打印 上一主题 下一主题

主题 747|帖子 747|积分 2241

0x01 前言

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript。xss本质上就是浏览器执行了域外的代码,出现的场景比较多,需要具体情况具体分析
0x02 反射型xss
  1.     @RequestMapping("/reflect")
  2.     @ResponseBody
  3.     public static String reflect(String xss) {
  4.         return xss;
  5.     }
复制代码
可以看到代码中设定参数值没有经过任何过滤访问直接返回到页面中
payload:xss=


0x03 存储型xss

存储型xss就是把我们嵌入的js代码存储到数据中,然后通过访问数据库的功能点然后造成xss,所以它相比反射型xss更持久危害更大
  1.     @RequestMapping("/stored/store")
  2.     @ResponseBody
  3.     public String store(String xss, HttpServletResponse response) {
  4.         Cookie cookie = new Cookie("xss", xss);
  5.         response.addCookie(cookie);
  6.         return "Set param into cookie";
  7.     }
复制代码
这里用cookie来模拟下存储型xss,设定一个参数值把它写到cookie中,然后我们再通过以下路由去取这个值然后返回到页面中来
  1.     @RequestMapping("/stored/show")
  2.     @ResponseBody
  3.     public String show(@CookieValue("xss") String xss) {
  4.         return xss;
  5.     }
复制代码
payload:http://localhost/xss/stored/store?xss=%3Cscript%3Ealert(/xss/)%3C/script%3E

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

0x04 漏洞修复

自定义函数,过滤等敏感字符
  1.   @RequestMapping("/safe")
  2.     @ResponseBody
  3.     public static String safe(String xss) {
  4.         return encode(xss);
  5.     }
复制代码
  1.     private static String encode(String origin) {
  2.         origin = StringUtils.replace(origin, "&", "&");
  3.         origin = StringUtils.replace(origin, "<", "<");
  4.         origin = StringUtils.replace(origin, ">", ">");
  5.         origin = StringUtils.replace(origin, """, """);
  6.         origin = StringUtils.replace(origin, "'", "&#x27;");
  7.         origin = StringUtils.replace(origin, "/", "/");
  8.         return origin;
  9.     }
复制代码
0x05 其它

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表