查看: 11214|回复: 8

Piwigo<= v2.7.1 SQL注入漏洞

[复制链接]
  • TA的每日心情

    昨天 20:23
  • 签到天数: 1588 天

    [LV.Master]伴坛终老

    发表于 2014-12-29 10:29:16 | 显示全部楼层 |阅读模式
    From:xd_xd
    前段时间免费开源相册Piwigopwigo出了一个piwigo <= 2.6.0sql注入漏洞。漏洞公布的时候,piwigo已经更新到了2.7.1。但是,这个漏洞公布的时候确实是一个货真价实的0day,影响piwigo全版本。

    下面是当时在官方网站测试的记录:
    14195088329055.jpg
    跟piwigo作者沟通了解到他们知道这个漏洞并且认为已经修复了。给他们提供了更多的细节和证明之后,piwigo很快发布了新版本。
    14195088829959.jpg
    漏洞分析
    漏洞的分析看起来比较简单,是由于functions_rate.inc.php文件中的rate_picture函数没有对传入的$rate变量进行过滤,直接拼接到SQL中执行:
    代码如下
    14195088756044.jpg
    为什么这么简单的一个问题,piwigo没有发现,认为这个漏洞已经修复了呢。关键在与rate_picture函数开头其实是有个对$rate变量的过滤的。
    14195088761316.jpg
    判断$rate是否是$conf[&#039;rate_items&#039;]的项。而后面这个数组的值是配置文件里写死的。
    1419508879256.jpg
    看起来这句的功能是设置了一个rate变量的白名单。只能是0,1,2,3,4,5其中之一。这样子应该很安全才对。当然事实证明这样子写是不安全的。当$rate = "5'aaaaaaaaaaaaaaaaa "时,in_array($rate, $conf['rate_items']) 这个判断是返回True的。这是php里不同类型变量比较时候的一个特性。
    简言之:当字符串跟整型变量使用"=="比较的时候,会将字符串转换成整型,再进行比较。
    14195088707623.jpg
    所以,利用这个特性,相当于完全的bypass in_array的过滤。可以输入任意的数据拼接到SQL语句中,只要以数组中的数字开头就可以了。此外php中的switch也存在类似的特性。
    14195088668027.jpg
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-7-22 20:31
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    发表于 2014-12-29 17:06:58 | 显示全部楼层
    沙发  小跑过来看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-12-29 19:42:53 | 显示全部楼层
    板凳。。。跑慢了  沙发没了。。。坐板凳学习下。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-12-29 22:58:08 | 显示全部楼层
    很详细的分析,认真学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-7-10 07:02
  • 签到天数: 49 天

    [LV.5]常住居民I

    发表于 2014-12-31 07:09:11 | 显示全部楼层
    谢谢分享~            
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-12-31 19:19:59 | 显示全部楼层
    好高端的样子啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-1-12 22:14
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-12-31 21:44:40 | 显示全部楼层
    很详细的分析,认真学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-4-9 19:10
  • 签到天数: 149 天

    [LV.7]常住居民III

    发表于 2015-1-1 14:00:29 | 显示全部楼层
    看不懂     技术没学好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-1-2 09:13:42 | 显示全部楼层
    谢谢分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-6-18 20:28 , Processed in 0.024245 second(s), 13 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部