Google漏洞过滤规则研究

简介: 1、通过Protobuf的代码发现了过滤逻辑goog.string.AMP_RE_ = /&/g;goog.

1、通过Protobuf的代码发现了过滤逻辑

goog.string.AMP_RE_ = /&/g;
goog.string.LT_RE_ = /</g;
goog.string.GT_RE_ = />/g;
goog.string.QUOT_RE_ = /"/g;
goog.string.SINGLE_QUOTE_RE_ = /'/g;
goog.string.NULL_RE_ = /\x00/g;
goog.string.E_RE_ = /e/g;
goog.string.ALL_RE_ = goog.string.DETECT_DOUBLE_ESCAPING ? /[\x00&<>"'e]/ : /[\x00&<>"']/;
 
 
goog.string.htmlEscape = function(str, opt_isLikelyToContainHtmlChars) {
  if (opt_isLikelyToContainHtmlChars) {
    str = str.replace(goog.string.AMP_RE_, "&amp;").replace(goog.string.LT_RE_, "&lt;").replace(goog.string.GT_RE_, "&gt;").replace(goog.string.QUOT_RE_, "&quot;").replace(goog.string.SINGLE_QUOTE_RE_, "&#39;").replace(goog.string.NULL_RE_, "&#0;"), goog.string.DETECT_DOUBLE_ESCAPING && (str = str.replace(goog.string.E_RE_, "&#101;"));
  } else {
    if (!goog.string.ALL_RE_.test(str)) {
      return str;
    }
    -1 != str.indexOf("&") && (str = str.replace(goog.string.AMP_RE_, "&amp;"));
    -1 != str.indexOf("<") && (str = str.replace(goog.string.LT_RE_, "&lt;"));
    -1 != str.indexOf(">") && (str = str.replace(goog.string.GT_RE_, "&gt;"));
    -1 != str.indexOf('"') && (str = str.replace(goog.string.QUOT_RE_, "&quot;"));
    -1 != str.indexOf("'") && (str = str.replace(goog.string.SINGLE_QUOTE_RE_, "&#39;"));
    -1 != str.indexOf("\x00") && (str = str.replace(goog.string.NULL_RE_, "&#0;"));
    goog.string.DETECT_DOUBLE_ESCAPING && -1 != str.indexOf("e") && (str = str.replace(goog.string.E_RE_, "&#101;"));
  }
  return str;
};

2、过滤一些特殊字符

oog.string.specialEscapeChars_ = {"\x00":"\\0", "\b":"\\b", "\f":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t", "\x0B":"\\x0B", '"':'\\"', "\\":"\\\\", "<":"<"};
goog.string.jsEscapeCache_ = {"'":"\\'"};
" >>>>>> \"

3、 URLENCODE

对URL中一些请求进行服务端URLENCODE后输出;


4、HTML过滤


    f.string.Sj = function(a, c) {
        if (c) a = a.replace(f.string.IG, "&amp;").replace(f.string.GH, "&lt;").replace(f.string.DH, "&gt;").replace(f.string.ZH, "&quot;").replace(f.string.cI, "&#39;").replace(f.string.NH, "&#0;"), f.string.Gy && (a = a.replace(f.string.AH, "&#101;"));
        else {
            if (!f.string.SU.test(a)) return a; - 1 != a.indexOf("&") && (a = a.replace(f.string.IG, "&amp;")); - 1 != a.indexOf("<") && (a = a.replace(f.string.GH, "&lt;")); - 1 != a.indexOf(">") && (a = a.replace(f.string.DH, "&gt;")); - 1 != a.indexOf('"') && (a = a.replace(f.string.ZH,
                "&quot;")); - 1 != a.indexOf("'") && (a = a.replace(f.string.cI, "&#39;")); - 1 != a.indexOf("\x00") && (a = a.replace(f.string.NH, "&#0;"));
            f.string.Gy && -1 != a.indexOf("e") && (a = a.replace(f.string.AH, "&#101;"))
        }
        return a
    };
    f.string.IG = /&/g;
    f.string.GH = /</g;
    f.string.DH = />/g;
    f.string.ZH = /"/g;
    f.string.cI = /'/g;
    f.string.NH = /\x00/g;
    f.string.AH = /e/g;
    f.string.SU = f.string.Gy ? /[\x00&<>"'e]/ : /[\x00&<>"']/;
    f.string.nG = function(a) {
        return f.string.contains(a, "&") ? !f.string.n0 && "document" in f.global ? f.string.gU(a) : f.string.Jka(a) : a
    };

5. 默认输出过滤

针对所有的输出进行过滤;

目录
相关文章
|
7月前
Google Earth Engine(GEE) ——如何获取指定研究区范围内的单个影像的时间,这里求具体的天数,以landsat9影像为例。
Google Earth Engine(GEE) ——如何获取指定研究区范围内的单个影像的时间,这里求具体的天数,以landsat9影像为例。
227 0
|
Android开发 iOS开发 Windows
AppsFlyer 研究(十三)SRN平台对接-Google Adwords对接配置
AppsFlyer 研究(十三)SRN平台对接-Google Adwords对接配置
179 0
AppsFlyer 研究(十三)SRN平台对接-Google Adwords对接配置
|
JSON 安全 搜索推荐
看我如何发现Google云平台漏洞并获得$7500赏金
看我如何发现Google云平台漏洞并获得$7500赏金
AppsFlyer 研究(十二)Google Ads MCC 配置统计应用转化
AppsFlyer 研究(十二)Google Ads MCC 配置统计应用转化
|
Android开发
AppsFlyer 研究(十一)配置 Google Ads MCC 获取 LINK ID
AppsFlyer 研究(十一)配置 Google Ads MCC 获取 LINK ID
153 0
Google Earth Engine(GEE)——使用在线的世界矢量边界作为研究区(国家和洲际),如何调用?
Google Earth Engine(GEE)——使用在线的世界矢量边界作为研究区(国家和洲际),如何调用?
563 0
Google Earth Engine(GEE)——使用在线的世界矢量边界作为研究区(国家和洲际),如何调用?
|
Java Maven Python
Google protobuf在python中的应用研究
Google protobuf在python中的应用研究
321 0
Google protobuf在python中的应用研究
|
Web App开发 安全 Android开发
Google 公布 2021 漏洞奖励支出共 870 万美元
Google 公布 2021 漏洞奖励支出共 870 万美元
154 0
Google 公布 2021 漏洞奖励支出共 870 万美元
|
传感器 定位技术 ice
Google Earth Engine——该数据集是美国宇航局在研究环境中使用地球系统数据记录 (MEaSUREs) 计划的一部分,包括选定冰川出口区域的月平均速度图
Google Earth Engine——该数据集是美国宇航局在研究环境中使用地球系统数据记录 (MEaSUREs) 计划的一部分,包括选定冰川出口区域的月平均速度图
146 0
Google Earth Engine——该数据集是美国宇航局在研究环境中使用地球系统数据记录 (MEaSUREs) 计划的一部分,包括选定冰川出口区域的月平均速度图
|
编解码 知识图谱
Google Earth Engine——NCEP/NCAR再分析项目是美国国家环境预测中心(NCEP,前身为 “NMC“)和美国国家大气研究中心(NCAR)地表降水数据
Google Earth Engine——NCEP/NCAR再分析项目是美国国家环境预测中心(NCEP,前身为 “NMC“)和美国国家大气研究中心(NCAR)地表降水数据
283 0
Google Earth Engine——NCEP/NCAR再分析项目是美国国家环境预测中心(NCEP,前身为 “NMC“)和美国国家大气研究中心(NCAR)地表降水数据