• 欢迎访问小澍的博客,编程记录,技术贴以及折腾的日常,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏我的博客吧

XSS注入篇(反射形)

PTE课程实录 root 1年前 (2019-07-21) 447次浏览 已收录 0个评论

Day 05

XSS是一种危害性非常大的漏洞,我的理解可以把这种攻击分为存储型以及非存储型的(业界一般分成三种),通过在前端的HTML代码中合理的插入js代码来执行危害用户权益的操作可以理解为非存储型XSS,而通过了网站本身可输入可存储的过程实现js注入即存储型的XSS。

非存储型XSS

一般流程

  1. 类似的搜索框进行搜索后,发现搜索内容作为url中的参数未进行编码直接回显在了地址栏中;
  2. 修改查询内容,替换为js,作为测试可以直接写一个alert(1),真正的攻击一般是外部构建js,使用url加载到src中来执行(或者url加@执行外部Js)
  3. 达到反射效果,结束,像下面这样;
    blob.jpg
  4. 未达到,观察网页源代码,确定网站反外部js手段进行改进。

常见的攻击手段

  1. 两种常用的标签
<script></script>
<img src = "">
  1. 还是在上面的两个标签中,用于输入的括号,符号等,用unioncode编码后再使用;开头需要<svg>标签
    比如:
<svg><script>alert(1)</script>
  1. onerror() 函数,直接用在 img标签中,但不用闭合标签,有点类似于SQL注入中的报错;
  2. 根据前端的html代码确定闭合方式,这就和SQL注入一样一样的
    以下和正则有关
  3. 空行破坏匹配规则,如正则匹配xx=,空行隔开符合和关键字,破坏匹配但不影响前端执行;
  4. html中具有相同功能的注释符,–>与–!>
  5. 将关键字转换为古代英语,依旧可以被重定向为现代英语,但已经绕过了过滤

常用的防御手段

可以看出,防范反射性XSS的重要手段必须要构建鲁棒性极强的过滤规则,一般的做法可以是:
1. 对用户的输入进行合理验证(如年龄只能是数字),对特殊字符(如 <、>、’、”等)以及