Google漏洞过滤规则研究

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. 默认输出过滤

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VeryCMS是一套基于php mysql 数据库平台架构的网站内容管理系统。作为能独立运行的系统,VeryCMS 正式版集成了内容管理、广告管理、首页自定义、新闻采集等主流cms 元素,同时又具备强大的扩展功能,能轻松整合论坛、blog等通用型系统,挖掘有价值的信息,快速打造具有个人特色的个人社区门户。  改进功能: 1 :调整VC核心框架,开放API: 整合接口(BBS,BLOG)、外挂扩展接口,让你体验真正的自由 2 :统一模板自定义标签,简单而一目了然,方便用户自主开发风格 3 :PHPWind最新安全解决方案在VeryCMS全面应用 4 :SEO优化:将文章的TAG和页面的关键字联系在一起 5 :修改评论显示方式:将评论从内容页中独立出来,增加评论排行,改进评论表情管理 6 :修改编辑器,集成文件上传功能 7 :加强搜索功能,对于内容字段后台做相应的调整,即可实现内容搜索 8 :优化采集,部分条件支持正则匹配,采集规则增加TAG标签,对采集的内容可以批量加入标签 9 :修改整合接口,增加blog栏目整合,完善PW,DZ模型整合 10:修改静态文件存放类型,增加按月优化存放选项 11:修改自定义导航栏 以JS形式调用,更自由 12:后台栏目内容列表,可多种排序选择查看内容 13:调整列表分页静态生成方式,可后台部分生成,其他自动更新 14:调整上一篇,下一篇内容的实现方式,优化后台更新 15:对于多页面文章,可用键盘左右键翻页 新增功能: 1 :增加回收站功能 2 :增加词语过滤功能 3 :增加网络调查投票功能 4 :增加VeryCMS操作帮助,后台动态显示,方便站长更快熟悉VeryCMS 5 :增加上传图片水印功能(支持中文水印,需要字体库) 6 :增加文章水印(防复制) 7 :增加网站地图:支持google和baidu 8 :增加远程上传功能,增加附件管理搜索 9 :增加RSS内容导入,可自定义规则导入任意XML文档内容 10:增加栏目,内容模型 唯一标识符,可直接替代栏目id和模型id,增强模板的可移 植性 11:增加搜索预设值选项,字段输入类型增加固定select标签,可应用于专题模型 12:增加单篇文章自定义模板 13:自由扩展管理,可轻松实现扩展插件的安装 、卸载、升级更新,只需后台轻松点击,即可一键完成 14: 增加了批量TAG功能 15: 增加自定义投稿 16: 增加附件批量上传 17: 增加栏目批量处理功能 18: 增加后台管理员栏目权限细化功能 19: 增加模板文件夹选择,方便风格选择 20: 增加js文章调用标签,降低后台操作负载(可选)
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值