多个WordPress插件SQL注入破绽剖析 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

多个WordPress插件SQL注入破绽剖析

申博_新闻事件 申博 19次浏览 未收录 0个评论

背景

SQL注入破绽是用来构建SQL查询的用户输入未经恰当处置惩罚致使的破绽。比方:

从上面的代码来看,个中存在SQL注入进击破绽,由于从$_GET中提取的$_id在传递给SQL查询时没有经由任何处置惩罚。在最新的WordPress版本中,默许会在$_POST/$_GET/$_REQUEST/$_COOKIE中加入了magic quotes。这能够协助WordPress保护,并供应最好的平安才能。因而,上面的代码实际上是没有破绽的。

除了给一切输入值加斜杠(slash)外,WordPress会供应很多内置的处置惩罚函数来对输入举行处置惩罚,以确保输出的平安。开辟者能够运用sanitize_email()来处置惩罚邮件地址,或用sanitize_text_field()来消灭文本域的值,或用sanitize_sql_orderby()来考证SQL ORDER BY clauses。用户输入最常见的范例是由WordPress sanitize_*()的类来涵盖的。

虽然WordPress中心是尽最大可能来协助开辟者来防备歹意捏造的用户输入、不好的编码实践、误用逃逸函数会致使简朴或症结的破绽。

破绽剖析

FG-VD-19-092 – SQL Injection in AdRotate Plugin through 5.2 for WordPress

该破绽是一个典范SQL注入破绽,存在于 AdRotate插件5.2版本中。破绽位于dashboard/publisher/adverts-edit.php文件的第25行。

变量$ad_edit_id用于构建SQL查询。该变量是从函数adrotate_manage的变量$_GET中提取的。

由于esc_attr变量只能逃逸HTML属性,在SQL查询中$ad_edit_id变量没法用双引号逃逸,因而能够注入payload到$ad_edit_id中来实行恣意的SQL语句。

由于治理接口只对治理员角色可用,缺少CSRF token使非认证的进击者能够长途盗取信息,包含session token,能够经由历程SQL注入破绽以最小的用户交互来激发XSS:

开辟者的补丁中只是对查询中的$ad_edit_id变量加了引号。

FG-VD-19-099 – SQL Injection in NextGEN Gallery Plugin through 3.2.10 for WordPress

NextGEN Gallery 插件供应了很圆满的照片治理要领,操纵也不庞杂,从2007年最先就成为范例的WordPress照片治理插件,每一年新下载量凌驾150万。停止现在,NextGEN Gallery 插件的活泼装置凌驾90万,是照片治理插件中运用最多的之一。

该插件的AJAX API中存在破绽,用户能够在宣布文章时从图片库中附件照片。

警惕:DDG挖矿僵尸网络利用SSH爆破攻击Linux服务器

一、背景 腾讯安全专家在为某企业客户进行例行安全巡检过程中,发现客户部署的腾讯御界高级威胁检测系统出现了SSH服务失陷感知信息。在征得客户同意后对客户机器进行远程取证,并结合御界的关键日志进行分析,我们发现这是一起针对SSH服务器弱口令爆破攻击事件,由于发现及时,工程师及时协助客户进行隔离及杀毒,并未造成损失。 腾讯安全御见威胁情报中心对本次攻击事件展开调查,结果发现,这是由大型挖矿僵尸网络DDGMiner发起的攻击事件。DDGMiner是最早于2017年被发现的挖矿僵尸网

modules/attach_to_post/package.module.attach_to_post.php中的函数get_displayed_gallery_entities_action是担任在特定的图片库中显现图片的。数组参数 displayed_gallery是经由历程POST要领提取的以建立gallery对象,如第119行代码所示。对象的属性能够经由历程esc_sql协助函数逃逸。然后挪用第130行的get_entities,指向modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php中的函数get_entities。

由于返回要求有both值,因而第832行的_get_image_entities会被挪用。

该函数会预备一个查询来返回展现的gallery中的一切图象。如第1041行所示,会运用一个基于来自建立的gallery对象的$sort_by和$sort_direction的排序历程。恣意有权限运用NextGEN Gallery 的经由认证的用户都能够操纵params来建立gallery对象。虽然该对象的一切属性都能够用esc_sql逃逸,但进击者并不需要逃逸引号就能够在ORDER BY语句中实行SQL注入进击。因而,esc_sql没法防备NextGEN Gallery 被进击者运用的状况。

多个WordPress插件SQL注入破绽剖析

图11: NextGEN Gallery中的SQL盲注2,false会返回空效果

宣布的补丁中只许可ORDER BY语句中涌现特定的值,因而查询就是平安的。

多个WordPress插件SQL注入破绽剖析

图12: Imagely经由历程白名单修复平安破绽

FG-VD-19-098 – SQL Injection in Impress Give Plugin through 2.5.0 for WordPress

Give 是评分最高、下载量最多的wordpress插件。该插件的破绽代码位于includes/donors/class-give-donors-query.php的get_order_query函数中。

多个WordPress插件SQL注入破绽剖析

图13: Give插件中的破绽代码

如解释所示,get_order_query尝试移除ORDER BY语句中不存在的列,经由历程运用esc_sql协助函数来过滤排序的值。由于467行中烧毁不存在的行后,会在第470行中重插进去一个逃逸值,因而移除并不会如研究人员所想。很多人都晓得esc_sql函数在防备ORDER BY语句中的SQL注入进击中是没有用途的。因而,构建的查询中是有破绽的。雷同的SQL盲注手艺能够用来运用该破绽。

Impress 团队宣布的1行补丁许可过滤器一般事情,因而查询是平安的。

多个WordPress插件SQL注入破绽剖析

图14: Give插件补丁

发起

为了防备开辟WordPress插件历程当中的SQL注入进击。研究人员发起开辟者遵照WordPress编码范例和平安编码最好实践。研究人员发起:

· 不要信托任何用户输入。对用户供应的一切数据实行有效性搜检和处置惩罚。

· 假如不确定数据是否是平安的,运用内置的处置惩罚函数来适配数据。比方,sanitize_sql_orderby()就修复了一切发明的破绽。

· 除了运用esc_sql,99%的case能够用预先预备好的语句。

· 假如没法运用预先预备好的语句,能够运用esc_sql和引号内的逃逸值。

本文翻译自: https://www.fortinet.com/blog/threat-research/wordpress-plugin-sql-injection-vulnerability.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明多个WordPress插件SQL注入破绽剖析
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址