找回密码
 立即注册
首页 安全领域 安全板块 一次方维o2o商城PHP审计学习

Web安全 一次方维o2o商城PHP审计学习

2023-2-28 10:40:18 评论(0)
本帖最后由 倾城 于 2023-2-28 10:43 编辑

PHP审计源码学习
**一、渗透测试**     
      起因是朋友问fanwei o2o源码搭建的站后台能不能拿shell,于是我进后台进行了一番尝试,各功能点没什么进展,好多地方过滤了,上传也是白名单,编辑器的1day修了,万幸的是有个拿不到shell但是可以执行sql语句的功能点,再通过fofa提取特征,在其他站点下拿到一份残缺的源码(Git_Extract工具拖出来的源码文件名是中文会乱码,换用GitHack解决)。
     这次学习过程中不同时间拿到了三份不同版本的源码(v1.x,v3.x,v6.5),真实环境的站一个是朋友发的那个v3.x的站一个是fofa找的v6.9的站。

尝试Shell写到慢日志绕过priv,需要绝对路径,我是这么找的:
                1.写python脚本遍历源码下的所有路径和文件后burp suite访问所有文件甚至是构造畸形参数以尝试出现报错页面。
                2.在上传iconv压缩包处上传畸形压缩包制造报错找到了绝对路径
                可惜sql语句执行错误,没有写入权限,高版本的话对这里则是做了过滤,替换了反斜杠。
         ** 二、审计源码**
           
通过前期翻sql表的信息收集可以知道任务计划表的data字段是序列化后存储在数据库的表里的,所以拿到源码先看了任务计划处功能点的“立即执行计划任务”的操作,使用
“立即执行计划任务”操作会将yanhuo_schedule_list表的data字段值反序列化后再调用类自定义的exec函数,所以我就想通过updata语句修改成我们需要的payload然后流入exec函数,而残缺的源码里正好缺了这部分找不到exec()函数里面咋写的。
源码残缺的太多了,就通过源码特征发现了个高版本(v6.5)而且齐全的源码(但本地搭不起来),在这里审到了 二次注入配合下的文件写入漏洞,只要update语句修改fanwe_conf表里面的字段构造payload,调用update_sys_config()函数触发file_put_contents() 应该就能成功写shell。
**在修改佣金提现手续费处会调用update_sys_config()函数**
构造payload时要注意:1.对于value字段用addslashes ()函数做了一遍过滤payload插name字段即可.2闭合数组
真实环境下6.9版本的站,修复了这个漏洞(6.9版本对name字段似乎也做了一定黑名单过滤php关键字会替换为空,即使payload尝试写入html文件,也触发不了file_put_contents ()函数
**文件上传漏洞(v3.x) ,这个漏洞利用过程比较常规:**

do_upload_icon()函数内对上传的zip文件解压后递归删除文件、文件夹
跟进unzip函数
提取压缩包文件名:
这里拼接了我压缩包内文件的文件名(../ll.php)导致文件创建到上一级目录避免被删除:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

使用道具 举报

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们(3513994353@qq.com)。
您需要登录后才可以回帖 登录 | 立即注册
楼主
倾城

关注0

粉丝0

帖子13

最新动态