0x00前言:

在5.8.3版本中,wordpress已经修复了这个错误,比较commit的变化,可以在clean_query函数中看到在处理$query['terms']变量之前已经添加了$query['field']检查。

0x01漏洞分析:

从get_sql_for_clause调用clean_query函数。阅读该函数的代码会发现该函数的工作是为SQL查询中的条件创建子句,具体而言,它的工作是处理接收到的数据,将这些数据组合成SQL查询中的条件。将其返回给父函数。所以我们可以控制这个函数的返回数据,也就是说我们可以控制SQL查询和执行SQL注入。

回到clean_query函数,没有这个改变,默认情况下$query['terms']中的值只会被删除,然后调用$this->transform_query($query, 'term_taxonomy_id');为避免 if,$query['taxonomy']需要为空或is_taxonomy_hierarchical的值返回false。

在函数transform_query会检查$query['field'] == $resulting_field,如果为true将返回并且不做进一步处理,所以如果$query['field']变量是term_taxonomy_id那么我们可以在不改变$query的情况下退出函数['terms']变量值。

(这里的比较是使用==,使用的是弱比较),在某些情况下这个错误可以用来随意创建条件句)。

退出函数后,会回到调用clean_query函数的位置,也就是get_sql_for_clause函数,$query['terms']变量中的值会直接作为SQL查询的条件,并导致SQL 注入。

总而言之,要产生 SQL 注入,必须满足两个条件:

(1)$query['field'] 是 term_taxonomy_id

(2)$query['taxonomy'] 为空或 is_taxonomy_hierarchical($query['taxonomy']) === false

0x02开发:

虽然这是wordpress核心的错误,但是wordpress核心使用的方式并没有触发错误,所以我转而寻找插件和主题的错误。当您想查询数据库时,插件/主题将调用 WP_Query 类,从源代码中了解错误的方法是使用 WP_Query($data) 和 $data 是您可以控制的。

例如,new WP_Query(json_decode($_POST['query_vars'])),有效载荷将采用以下形式:

query_vars={"tax_query":{"0":{"field":"term_taxonomy_id","terms":[""]}}}

或者

query_vars={"tax_query":{"0":{"taxonomy":"nav_menu","field":true,"terms":[""]}}}

在搭建测试环境时,启用debug功能可以通过基于错误的方式检测 SQL 注入:

0x03结论:

在wordpress补丁中添加了$query['field']首先检查,否则$query['terms'] 将被转换为整数,因此SQL注入不会发生。发现相当多的插件和主题受到该漏洞的影响(authen和unauthen)。

团队在9月底向ZDI报告了此漏洞,3个月后,wordpress在其核心中修复了该漏洞。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

触发修改文章时间【fastadmincms开发记录】|fastadmincms二次开发,触发,修改,文章,时间,fastadmin,ms,开发,记录
触发修改文章时间【fastadmincms开发记录】
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】|fastadmincms二次开发,在tp5中,过滤,输入,的零,宽度,字符,fastadmin,ms,开发,记录
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】
处理tag标签中的0宽空格【fastadmincms开发记录】|fastadmincms二次开发,处理,tag,标签,中的,0宽,空格,fastadmin,ms,开发,记录
处理tag标签中的0宽空格【fastadmincms开发记录】
添加专题时tags标签id出错【fastadmincms开发记录】|fastadmincms二次开发,添加,专题,时tags,标签,id,出错,fastadmin,ms,开发,记录
添加专题时tags标签id出错【fastadmincms开发记录】
20230518----模板 广告【fastadmincms开发记录】|fastadmincms二次开发,20230518,模板,广告,fastadmin,ms,开发,记录
20230518----模板 广告【fastadmincms开发记录】
cms添加视频模型【fastadmincms开发记录】|fastadmincms二次开发,ms,添加,视频,模型,fastadmin,开发,记录
cms添加视频模型【fastadmincms开发记录】
新增单篇收费复制功能【fastadmincms开发记录】|fastadmincms二次开发,新增,单篇,收费,复制,功能,fastadmin,ms,开发,记录
新增单篇收费复制功能【fastadmincms开发记录】
添加开会员折扣功能【fastadmincms开发记录】|fastadmincms二次开发,添加,开会,折扣,功能,fastadmin,ms,开发,记录
添加开会员折扣功能【fastadmincms开发记录】

历史上的今天:04月19日

热门专题

易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招
昆明网站建设|昆明网站建设,昆明网站开发,昆明网站建设公司,昆明网站建设价格,昆明网站设计,昆明网站制作,网页设计,高端网站建设,高端网站设计
昆明网站建设
自考本科|自考本科有用吗,自考文凭,自考本科文凭,自考文凭有用吗,自考本科文凭有用吗,自考文凭承认吗
自考本科
云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
开放大学|开放大学报名,开放大学报考,开放大学,什么是开放大学,开放大学学历,开放大学学费,开放大学报名条件,开放大学报名时间,开放大学学历,开放大学专业
开放大学
中源管业|中源管业,中源管业公司,中源管业有限公司,中源管业电话,中源管业地址,中源管业电力管,中源管业mpp电力管,中源管业cpvc电力管,中源管业pe穿线管
中源管业
天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
大理科技管理学校|大理科技管理中等职业技术学校,大理市科技管理中等职业技术学校
大理科技管理学校

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部