Discuz3.2 xxe复现

具体缘由乌云说的很清楚了

简单来说,就是portalcp_diy.php中,在进行上传模板文件的处理时,调用了import_diy进行操作,在import_diy把上传的xml文件进行一定的处理后,将blockdata这个xml标签中的内容传给block_import,block_import检测了一些xml标签后,将其中style标签下的hash标签作为id,将其中的值插入数据库。于是注入一个特定的xml就可以修改任意模板。


在上述漏洞上的补充:

    block_import的xml处理有点晕,审计的时候应该记录一下每个变量的声明和值,

   一开始其中的C::t('common_block_style')->fetch_all_by_hash($hashes) 不理解,发现C就是core类,core中的t方法return self::_make_obj($name, 'table', DISCUZ_TABLE_EXTENDABLE);   在_make_obj中,在本次调用中是用来生成表名的,在insert部分,传了一个common_block_style进去,然后再_make_obj中进行拼接成为table_common_block_style,并返回这个表名,在数据库中也能查得到,其中的值也确实是正确的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 转载自cr180大神DiscuzX2.5完整目录结构【source程序文件库】 /source/admincp后台...
    cndaqiang阅读 4,390评论 1 2
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,944评论 1 180
  • 我们每个人接触“演讲”的几率其实都很高。吃饭的时候,大家让你“讲几句”;提交报告,领导让你“说说思路”;教育孩子“...
    潇华阅读 2,622评论 3 2