piwigo v2.9.5的5个sql注入分别是怎样的
发布时间 - 2023-05-15 00:00:00 点击率:次0x0 项目介绍
项目地址:https://github.com/Piwigo/Piwigo
项目介绍:piwigo是用于网络的开源照相馆软件。 专为组织,团队和个人管理您的照片库而设计。
官网地址:piwigo.org
0x1 准备工作
Linux下下载https://github.com/Piwigo/Piwigo/archive/2.9.5.zip解压、赋权、进入目录后使用docker安装:
docker run -d --name piwigo_mysql -e MYSQL_DATABASE=piwigo -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 docker run -d -p 3000:80 -v $(pwd)/:/var/www/html/ --link piwigo_mysql:mysql --name piwigo nimmis/apache-php5
即可看到启动界面
0x2 审计
一 admin/group_perm.php中selection和parent参数存在的注入:
selection值未经验证进入到move_categories函数中
追踪move_categories函数可以看到函数把该值分解后直接接入到sql语句中
测试下即可发现漏洞存在
二 admin/group_list.php中group_selection参数存在的sql注入:
图中可以看到group_selection值被放入到$groups中,selectAction值被放入到$action里
代码中$action对应多个动作,但是在多个动作里$group都被直接粘结到sql语句中,这儿我举delete方法看下:
这儿很直观看到被放进了sql语句中,试验下
三 admin/user_perm.php中cat_false参数存在的sql注入:
图中可以看到cat_false被放入到函数中,
我们追踪下这个函数,在admin/include/functions.php中找到函数,$cat_false值变为$category经过判断是否是数组判断数量后被放入get_uppercat_ids函数中处理,
继续追踪get_uppercat_ids函数,上述存在漏洞的参数变为$cat_ids,图中可以看到该$cat_ids经过简单判断被放入sql语句并开始查询,
这种漏洞函数跳转比较多,且没有明显的看到回显地方,这种场合特别适合时间注入,我们使用
1 and if(ascii(substr(database(),1,1))>97,1,sleep(5))验证可以发现网页打开时间延迟,证明漏洞存在,使用sqlmap跑一波
四 admin/group_perm.php存在的sql漏洞:
这个漏洞跟上面三种admin/user_perm.php漏洞相同,调用的同一个函数,只是用户和组的区别,看张入口图意思一下:
sqlmap跑一下
五 admin/batch_manager.php中filter_category参数存在的注入:我们看具体代码:
当post包中存在'filter_category_use'键时将'filter_category'值给xx['category']
往下走,找到xx['category']被调用的地方,可以看到该值未被过滤直接被放到sql语句中。
需要注意的是这个请求链接在网页中并未找到,需要手工在post包添加filter_category_use=on&filter_category=1
sqlmap跑一下
# 可以看到
# 图中
# 多个
# 的是
# 您的
# 进了
# 三种
# 跳转
# 专为
# 比较多
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
EditPlus中的正则表达式 实战(4)
Laravel如何使用Service Container和依赖注入?(代码示例)
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
如何用景安虚拟主机手机版绑定域名建站?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
详解vue.js组件化开发实践
如何用搬瓦工VPS快速搭建个人网站?
网站制作壁纸教程视频,电脑壁纸网站?
高端建站如何打造兼具美学与转化的品牌官网?
详解Huffman编码算法之Java实现
LinuxCD持续部署教程_自动发布与回滚机制
Python数据仓库与ETL构建实战_Airflow调度流程详解
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
iOS UIView常见属性方法小结
如何在建站主机中优化服务器配置?
Android中AutoCompleteTextView自动提示
Laravel如何实现API版本控制_Laravel版本化API设计方案
三星、SK海力士获美批准:可向中国出口芯片制造设备
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
如何为不同团队 ID 动态生成多个非值班状态按钮
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何用花生壳三步快速搭建专属网站?
网站优化排名时,需要考虑哪些问题呢?
Laravel PHP版本要求一览_Laravel各版本环境要求对照
网站建设整体流程解析,建站其实很容易!
Linux系统运维自动化项目教程_Ansible批量管理实战
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
JavaScript实现Fly Bird小游戏
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
EditPlus中的正则表达式 实战(2)
Laravel如何实现用户密码重置功能?(完整流程代码)
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Laravel Fortify是什么,和Jetstream有什么关系
七夕网站制作视频,七夕大促活动怎么报名?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
Android 常见的图片加载框架详细介绍
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Python面向对象测试方法_mock解析【教程】
JavaScript如何实现错误处理_try...catch如何捕获异常?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
Laravel怎么使用Intervention Image库处理图片上传和缩放
下一篇:vue生成随机验证码的示例代码
下一篇:vue生成随机验证码的示例代码

