php代码审计学习-baijiacms v4

php代码审计学习(baijiacms v4代码审计-system任意命令执行)


前言

最近及将来一段时间都会利用空闲的时间学习PHP代码审计
记录代码审计学习过程,最近在公众号上看到一篇baijiacms的代码审计分享,因此在没看具体审计内容流程的情况下,先自己学着审计一波。


一、危险函数查找

  1. 使用Seay审计工具进行自动审计发现危险函数 system
    在这里插入图片描述2. 转到system 函数所在的 includes\baijiacms\common.inc.php 文件,可以看到system函数在file_save函数中,进一步查看哪里调用有file_save函数
    在这里插入图片描述查看file_save函数调用
    在这里插入图片描述发现\system\weixin\class\web\setting.php 调用了file_save函数,进行跟进调用处
    在这里插入图片描述 system\weixin\class\web\setting.php 代码内容,从代码来看是一个文件上传类似的功能点
    在这里插入图片描述

二、访问测试

根据\system\weixin\class\web\setting.php文件所在路径拼接url路由。
拼接路由url,跳到该功能点,测试
在这里插入图片描述在file_save函数进行断点调试查看代码执行流程,f7跟进

在这里插入图片描述
在这里插入图片描述到此,发现 需要 $setting[‘image_compress_openscale’] 的值为真才可以进到system危险函数执行命令。

在这里插入图片描述由于image_compress_openscale值默认为0,想办法看看image_compress_openscale的值可不可以设置,查看全局image_compress_openscale是不是可以赋值的。

全局搜索 image_compress_openscale 赋值
在这里插入图片描述跟到image_compress_openscale 赋值的 netattach.php文件
所在路径 system\manager\class\web\netattach.php
在这里插入图片描述根据文件拼接url路由,访问功能点,该功能点就是开启图片压缩比例功能赋值image_compress_openscale为1,开启之后重新登录后台
在这里插入图片描述

三、 构造 payload,触发漏洞

开启image_compress_openscale之后,重新进行断点调试,手动拼接一下system函数执行内容:
system(‘convert-quality 80 C:/phpstudy_pro/WWW/baijiacms4.4/test1.txt’);
在这里插入图片描述正常流程 :执行完后会在C:/phpstudy_pro/WWW/baijiacms4.4/ 目录下生成一个 test1.txt文件
在这里插入图片描述

payload 构造:
分析:system()函数执行内容,在windows执行多条可以 类型管道符可以使用 符号  “|” 或者 “&”
windows文件命名规则:不可以包含以下字符,如果包含以下字符则创建文件会失败
\/:*?"<>|

在这里插入图片描述
在这里插入图片描述在此,windows执行多条命令可以使用&符号,windows文件创建,文件名中也可以包含&符号

 构造文件名执行whoami: test1&whoami&.txt  
system('convert-quality 80 C:/phpstudy_pro/WWW/baijiacms4.4/test1&whoami&.txt');

达到任意命令执行

在这里插入图片描述

总结

新手审计,我太拉了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值