当前位置:   article > 正文

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

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/517544
推荐阅读
相关标签
  

闽ICP备14008679号