| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> [CSCCTF 2019 Qual]FlaskLight SSTI注入 -> 正文阅读 |
|
[Python知识库][CSCCTF 2019 Qual]FlaskLight SSTI注入 |
进去后页面提示你是flask框架,f12里面告诉你参数名字叫做search并且用GET方法传输,十有八九是模块注入了,用7*7试试服务端模板注入攻击 - 知乎? 可以发现在searched后面输出了49,既然我们可以利用{{}},又有输出点,直接模板注入GOGOGO? python-flask模块注入(SSTI) - ctrl_TT豆 - 博客园因为不太熟,只能一步步来
? ? 我们知道执行命令的模块是os,那么哪个类里面能调用os模块呢,如果找到了,第几个呢,这个时候我们如果人工一个个去试的话那就很麻烦,利用脚本来查询?__init__.__globals__
这里构造["__glob"+"als__"]这样的原因是我直接写__globals__会报错,怀疑后端把这个敏感字符给过滤掉了,因此我们需要绕过 可以看到标号这么多的类有os模块,我们随便利用一个就行,就用128吧? 发现一个目录flasklight ?其中一个是源码,一个是flag,我们可以看见源码确实过滤了globals 相信很多人和我一样都是用的system执行命令,但是没有任何回显 python中os.popen, os.system()区别 - ccorz - 博客园 Python中os.system和os.popen区别 - 純黑色 - 博客园 那是因为system调用完shell脚本后,它返回的不是调用脚本的结果,而是一个信号代码,他所出来的结果是在执行的系统上,因此我们如果要用system命令的话,我们反弹shell才能看见(我不会) popen执行命令返回的是一个读取文件的对象,用read()函数读取就可以获得我们想要的命令结果 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 18:53:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |