知方号

知方号

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

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

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)导致文件创建到上一级目录避免被删除:

三、最后

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了