统计
  • 建站日期:2021-03-10
  • 文章总数:113 篇
  • 评论总数:0 条
  • 分类总数:12 个
  • 最后更新:3月14日
文章 代码审计

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

自由子
首页 代码审计 正文

PHP审计源码学习





一、渗透测试

        

起因是朋友问fanwei o2o源码搭建的站后台能不能拿shell,于是我进后台进行了一番尝试,各功能点没什么进展,好多地方过滤了,上传也是白名单,编辑器的1day修了,万幸的是有个拿不到shell但是可以执行sql语句的功能点,再通过fofa提取特征,在其他站点下拿到一份残缺的源码(Git_Extract工具拖出来的源码文件名是中文会乱码,换用GitHack解决)。

                这次学习过程中不同时间拿到了三份不同版本的源码(v1.x,v3.x,v6.5),真实环境的站一个是朋友发的那个v3.x的站一个是fofa找的v6.9的站。

        


一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第1
张图片





        


一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第2
张图片





        

                尝试Shell写到慢日志绕过priv,需要绝对路径,我是这么找的:

                1.写python脚本遍历源码下的所有路径和文件后burp suite访问所有文件甚至是构造畸形参数以尝试出现报错页面。

                2.在上传iconv压缩包处上传畸形压缩包制造报错找到了绝对路径

                可惜sql语句执行错误,没有写入权限,高版本的话对这里则是做了过滤,替换了反斜杠。

         

二、审计源码

           

通过前期翻sql表的信息收集可以知道任务计划表的data字段是序列化后存储在数据库的表里的,所以拿到源码先看了任务计划处功能点的“立即执行计划任务”的操作,使用

“立即执行计划任务”操作会将yanhuo_schedule_list表的data字段值反序列化后再调用类自定义的exec函数,所以我就想通过updata语句修改成我们需要的payload然后流入exec函数,而残缺的源码里正好缺了这部分找不到exec()函数里面咋写的。



一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第3
张图片







一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第4
张图片





源码残缺的太多了,就通过源码特征发现了个高版本(v6.5)而且齐全的源码(但本地搭不起来),在这里审到了 二次注入配合下的文件写入漏洞,只要update语句修改fanwe_conf表里面的字段构造payload,调用update_sys_config()函数触发file_put_contents() 应该就能成功写shell。

               



一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第5
张图片







在修改佣金提现手续费处会调用update_sys_config()函数

构造payload时要注意:1.对于value字段用addslashes ()函数做了一遍过滤payload插name字段即可.2闭合数组



一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第6
张图片

            


一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第7
张图片





一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第8
张图片





真实环境下6.9版本的站,修复了这个漏洞(6.9版本对name字段似乎也做了一定黑名单过滤php关键字会替换为空,即使payload尝试写入html文件,也触发不了file_put_contents ()函数


一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第9
张图片



文件上传漏洞(v3.x) ,这个漏洞利用过程比较常规:



do_upload_icon()函数内对上传的zip文件解压后递归删除文件、文件夹


一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第10
张图片



一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第11
张图片



跟进unzip函数



一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第12
张图片



一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第13
张图片



提取压缩包文件名:


一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第14
张图片



这里拼接了我压缩包内文件的文件名(../ll.php)导致文件创建到上一级目录避免被删除:


一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第15
张图片



一次方维o2o商城PHP审计学习
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第16
张图片



三、最后



这次学习觉得很有意思,萌新的一次分享希望能够对大家有帮助!有什么没讲清楚的地方可以回复我

版权所有:纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
文章标题:一次方维o2o商城PHP审计学习
除非注明,文章均为 纵横安全网-渗透测试-软件开发-前端开发-PHP全栈 原创,请勿用于任何商业用途,禁止转载

扫描二维码,在手机上阅读

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
最新版wordpress任意文件删除漏洞复现
« 上一篇
优秀的开源情报工具资源列表合集 | OSINT
下一篇 »
为了防止灌水评论,登录后即可评论!

HI ! 请登录
注册会员,享受下载全站资源特权。

最新评论

标签