FUEL-CMS | CVE-2023-33557(附POC)

新闻资讯   2023-06-26 08:33   122   0  
免责声明  由于传播、利用WK安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,WK安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

0x01 漏洞介绍

FUEL CMS是一款基于Codelgniter框架的内容管理系统(CMS)。

FUELCMSv1.5.2中的一个SQL注入漏洞。该漏洞是由于在/controllers/Blocks.php中,id参数未正确验证而导致的。

0x02 影响版本

    FuelCMS v1.5.2或更高版本

0x03 漏洞复现

fuel/modules/fuel/controllers/Blocks.php

第64行的import_view方法开始执行

第70行接收POST请求的id参数并进入导入方法


fuel/modules/fuel/libraries/Fuel_blocks.php

然后在第307行进入find_by_key方法

由于find_by_key方法不存在,进入当前对象的__call方法

this->db->where()方法

this->db->where()方法插入SQL语句中。但是由于CodeIgniter对where方法的安全处理,外部输入将被单引号包围,因此尚未发生注入。

直到第4450行,此时用户外部输入被存储在other_args数组中,但尚未安全处理。

    进入this->db->order_by()方法,此时外部输入再次被插入SQL语句中,但未包含单引号。

this->db->get()方法执行数据库命令,导致SQL注入。


Sqlamp:

0X04 修复建议

1.使用参数化查询:使用参数化查询可以避免SQL注入攻击,因为它将用户输入作为参数传递给数据库,而不是将其直接插入到SQL语句中。
2.对用户输入进行验证和过滤:在将用户输入传递给数据库之前,应该对其进行验证和过滤。例如,可以使用正则表达式来检查输入是否符合预期的格式,或者使用白名单来限制允许的输入值。
3.避免使用动态生成SQL语句:尽量避免使用动态生成SQL语句,因为它们容易受到SQL注入攻击。如果必须使用动态生成SQL语句,请确保对用户输入进行充分的验证和过滤。
4.使用最小权限原则:为数据库账户设置最小必要的权限,以减少攻击者可以利用的攻击面。例如,只授予必要的SELECT权限,而不是INSERT、UPDATE或DELETE权限。
5.定期更新和修补软件:定期更新和修补软件可以修复已知的安全漏洞,包括SQL注入漏洞。因此,建议定期更新和修补软件,以确保系统的安全性。

参考链接

https://github.com/daylightstudio/FUEL-CMS/issues/604https://github.com/bcvgh/fuel-cms-sqlinjection/blob/main/README.md

欢迎加我wx,一起交流交流



湘安无事团队 知识星球 一次付费,永久免费,享受两大内部群+星球双重福利(付费之后会拉入内部成员群,直接免费续上)。有需要的直接添加上面微信 118永久,私我支付,直接拉内部成员群,扫码支付,三天后拉内部成员群。

内部群共享

1.fofa高级会员账号

2.360quake高级会员

3.某在线高级会员靶场账号(附带wp)

4.专属内部漏洞库(持续更新)

5.原创漏洞挖掘报告

6.it课表众多好课(持续更新,内容涉及安全+开发等)

7.在线答疑,不定期直播技术分享【湘南第一深情、wuli、Awake等】

星球介绍:

星球针对安全新人有优秀学习资源,星球专属嘉宾进行问题解答,

性价比很高。

如果你是入门不久,想要提升漏洞挖掘能力,那该星球是个不错的选择,星球内拥有

专属漏洞报告,

各种奇淫技巧、挖洞技术、专属嘉宾在线问答等。

欢迎您的加入,星球部分内容请你查看!!





星球内容介绍

星球内部提供众多好课

安全类:web安全、内网、src挖掘、kail、逆向、游戏漏洞挖掘、免杀等

开发类:python安全开发、java、Golang、php等开发课程

专栏提供内部漏洞库



专栏内容预览









扫码查看更多内容













文章引用微信公众号"WK安全",如有侵权,请联系管理员删除!

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。