ssti题目

例题:[RootersCTF2019]I_<3_Flask 1

https://www.cnblogs.com/z2gh

参考以上

考点:注入点探测,ssti,jinja模板

知道是模板注入,不知道注入参数,使用arjun去进行探测

pip3 install arjun
arjun -u 网址

然后先尝试{{7*'7'}},通过回显判断是jinja模板,使用fenjing,然后命令执行即可。

GitHub - Marven11/Fenjing: 专为CTF设计的Jinja2 SSTI全自动绕WAF脚本 | A Jinja2 SSTI cracker for bypassing WAF, designed for CTF

fenjign是一个针对CTF比赛中Jinja SSTI绕过WAF的全自动脚本,可以自动攻击给定的网站或接口,省去手动测试接口,fuzz题目WAF的时间。

pip3 install arjun
arjun -u 网址

Usage: python -m fenjing scan [OPTIONS]
​
  扫描指定的网站
​
Options:
  --proxy TEXT                    请求时使用的代理
  --extra-data TEXT               请求时的额外POST参数,如a=1&b=2
  --extra-params TEXT             请求时的额外GET参数,如a=1&b=2
  --cookies TEXT                  请求时使用的Cookie
  --header TEXT                   请求时使用的Headers
  --user-agent TEXT               请求时使用的User Agent
  -u, --url TEXT                  需要攻击的URL  [required]
  --interval FLOAT                每次请求的间隔
  --tamper-cmd TEXT               在发送payload之前进行编码的命令,默认不进行额外操作
  --environment TE
Usage: python -m fenjing scan [OPTIONS]
​
  扫描指定的网站
​
Options:
  --proxy TEXT                    请求时使用的代理
  --extra-data TEXT               请求时的额外POST参数,如a=1&b=2
  --extra-params TEXT             请求时的额外GET参数,如a=1&b=2
  --cookies TEXT                  请求时使用的Cookie
  --header TEXT                   请求时使用的Headers
  --user-agent TEXT               请求时使用的User Agent
  -u, --url TEXT                  需要攻击的URL  [required]
  --interval FLOAT                每次请求的间隔
  --tamper-cmd TEXT               在发送payload之前进行编码的命令,默认不进行额外操作
  --environment TE
  
                         模板的执行环境,默认为不带flask全局变量的普通jinja2
  --replaced-keyword-strategy REPLACEDKEYWORDSTRATEGY
                                  WAF替换关键字时的策略,可为avoid/ignore/doubletapping
  --detect-mode DETECTMODE        分析模式,可为accurate或fast
  -e, --exec-cmd TEXT             成功后执行的shell指令,不填则成功后进入交互模式
  -a, --action TEXT               参数的提交路径,如果和URL中的路径不同则需要填入
  -m, --method TEXT               参数的提交方式,默认为POST
  -i, --inputs TEXT               所有参数,以逗号分隔  [required]
  --eval-args-payload             是否开启在GET参数中传递Eval payload的功能
  --help                          Show this message and exit.
​
Usage: python -m fenjing crack-request [OPTIONS]
​
  从文本文件中读取请求并攻击目标,文本文件中用`PAYLOAD`标记payload插入位置
​
Options:
  --interval FLOAT                每次请求的间隔
  --tamper-cmd TEXT               在发送payload之前进行编码的命令,默认不进行额外操作
  --environment TEMPLATEENVIRONMENT
                                  模板的执行环境,默认为不带flask全局变量的普通jinja2
  --replaced-keyword-strategy REPLACEDKEYWORDSTRATEGY
                                  WAF替换关键字时的策略,可为avoid/ignore/doubletapping
  --detect-mode DETECTMODE        分析模式,可为accurate或fast
  -e, --exec-cmd TEXT             成功后执行的shell指令,不填则成功后进入交互模式
  -h, --host TEXT                 目标的host,可为IP或域名  [required]
  -p, --port INTEGER              目标的端口  [required]
  -f, --request-file TEXT         保存在文本文件中的请求,其中payload处为PAYLOAD  [required]
  --toreplace BYTES               请求文件中payload的占位符
  --ssl / --no-ssl                是否使用SSL
  --urlencode-payload BOOLEAN     是否对payload进行urlencode
  --raw                           不检查请求的换行符等
  --retry-times INTEGER           重试次数
  --update-content-length BOOLEAN
                                  自动更新Content-Length
  --help                          Show this message and exit.
​
Usage: python -m fenjing crack-path [OPTIONS]
​
  攻击指定的路径
​
Options:
  --proxy TEXT                    请求时使用的代理
  --extra-data TEXT               请求时的额外POST参数,如a=1&b=2
  --extra-params TEXT             请求时的额外GET参数,如a=1&b=2
  --cookies TEXT                  请求时使用的Cookie
  --header TEXT                   请求时使用的Headers
  --user-agent TEXT               请求时使用的User Agent
  -u, --url TEXT                  需要攻击的URL  [required]
  --interval FLOAT                每次请求的间隔
  --tamper-cmd TEXT               在发送payload之前进行编码的命令,默认不进行额外操作
  --environment TEMPLATEENVIRONMENT
                                  模板的执行环境,默认为不带flask全局变量的普通jinja2
  --replaced-keyword-strategy REPLACEDKEYWORDSTRATEGY
                                  WAF替换关键字时的策略,可为avoid/ignore/doubletapping
  --detect-mode DETECTMODE        分析模式,可为accurate或fast
  -e, --exec-cmd TEXT             成功后执行的shell指令,不填则成功后进入交互模式
  --help                          Show this message and exit.
​
Usage: python -m fenjing webui [OPTIONS]
​
  启动webui
​
Options:
  -h, --host TEXT                 需要监听的host, 默认为127.0.0.1
  -p, --port INTEGER              需要监听的端口, 默认为11451
  --open-browser / --no-open-browser
                                  是否自动打开浏览器
  --help                          Show this message and exit.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值