WEB攻防-PHP特性-piwigoCMS审计实例

前置知识:PHP函数缺陷

测试环境 :piwigo CMS

漏洞URL:

漏洞文件位置:\include \functions_rate.inc.php

漏洞产生入口文件:/picture.php

picture.php中接受了一个GET方法action参数,作为switch...case...分支判断

而在case 'rate'中加载并调用了include/functions_rate.inc.php中 的rate_picture,并且进行POST放到对rate参数传参

注意在rate_picture方法中对rate的值使用了in_array方法来判断传进来的值是否在$conf['rate_items']中,并且没有加上第三个参数true,也就是说传进来的值不做类型判断,并且会强转来完成in_array的判断

找到$conf['rate_items']在config_default.inc.php定义,根据in_array可以知道rate只要前面数字在$conf['rate_items'],后面可以写任何字符,如1,select,都是可以满足条件的

继续往后看,可以看到$rate是会传进sql语句的,所以这里绕过in_array是会存在sql注入的

根据他写的注释可以大概知道$rate是用与评价的一个参数 ,而rate判断在不1-5之间,应该是一个评分参数

上传一张图片测试一下

创建一个普通用户,打开照片,确实在点击更改投票时得到了一个传rate的url

使用sqlmap跑一下,sqlmap -u "http://127.0.0.1/piwigo/picture.php?/1/category/1&action=rate&rate=1" --data="rate=1" --dbs

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

癞皮狗不赖皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值