PHP审计-动态调试-文件安全

简介: PHP审计-动态调试-文件安全

1、动态调试分析-phpstudy&phpstorm&xdebug
PHP5配置:
https://blog.csdn.net/weixin_40418199/article/details/79088365
PHP7配置:
https://www.jb51.net/article/195840.html
2、动态调试&关键字搜索-代码执行流程&漏洞函数关键字
调试首页对应代码,修改数据,分析执行流程,测试漏洞
3、关键字挖掘-文件删除搜索关键字unlink,对应函数del_file,查看调用
后台delfile函数调用,如何处理delfile函数,受参数控制,进行测试
构造Payload-确定过滤-重新构造Payload-配合重装机制实现重装漏洞

debug调试 新建test.php 加断点 点击步入 就可以看到代码执行流程和对应的的变量数值

640.png

文件安全-文件包含-动态调试-xhcms

    Addslashes 转义函数
    include 函数 加上断点 查看代码执行流程

    动态分析代码会跳转到filse目录下  然后读取files目录下的文件,新建一个文件,就可以成功跳转到文件,并执行文件里的代码

    这种情况 需要手动创建文件  如果无法外部利用 就算私有漏洞。

    文件安全-文件删除-关键字搜索-zzzphp

    文件删除通常用在网站重装,使用了源码部署网站,在install目录下 都会有install.lock 锁文件,会判断这个问价是否存在不存在 就提示需要安全系统,一旦安装,所有的数据都会清空。

    phpstome 搜索unlink 关键字  

    定位del_file 函数  此时函数又调用了delfile函数  path 接收路径 又定义了四个目录 判断要删除的文件是否在这四个目录下,如果有就可以删除,如果没有 就删除不了  path这里没有做过滤,所以 ../ 是可以使用

    640.png

    在switch语句 看到函数,传参的变量act  act有使用safe_word getform函数进行过滤 再次追踪

    safe_word  只保留下面字符 因为是文件名 其他特殊字符也不用 这个就过

    getform函数 判断请求方式,get post 都可以

    新建txt文件 测试下

    640.png

    成功删除

    找到锁文件 进行删除

    640.png

    访问install 进行重装,提示已经安装???

    查看index.php 也是act获取参数,先判断,在进行switch语句,后台加上act=step1

    相关文章
    |
    1月前
    thinkphp5.1隐藏index.php入口文件
    thinkphp5.1隐藏index.php入口文件
    30 0
    thinkphp5.1隐藏index.php入口文件
    |
    3月前
    |
    PHP 数据安全/隐私保护
    php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
    php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
    php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
    php案例:用代码的方式创建目录+文件+写入数据(都由你定)
    php案例:用代码的方式创建目录+文件+写入数据(都由你定)
    php案例:用代码的方式创建目录+文件+写入数据(都由你定)