easylaravel

robots.txt没啥东西

注释给了源码地址,下下来审计

/routes/web.php 查看路由

包里有composer.json 先composer install安装一下相关的包依赖(需要先安装composer)
安装完后项目根目录会有vendor文件夹 composer.lock文件。(因为网络问题一直没安装完。。。也就没composer.lock文件,后来换了阿里云的源才搞定,菜鸟教程那写着的国内源一直不行,不知道咋回事),安装完后才能得到完整源码,毕竟是用的laravel框架

php artisan route:list 查看一下已经定义的路由

因为我扫的时候看到一个upload 但自己注册的账户没有 这个功能 所以先去注册登录那看看怎么搞到admin账户,这里用户名是随便的,主要是邮箱地址

app/Http/Middleware/AdminMiddleware.php 找到admin用户邮箱

但不能用重复邮箱注册,好在有一个重置密码功能

这里点击后会发送一个token到数据库
访问Illuminate\Foundation\Auth\SendsPasswordResetEmails;

再到\Illuminate\Contracts\Auth\PasswordBroker

改密码的时候也需要这个token
\database\migrations\2014_10_12_100000_create_password_resets_table.php

/app/Http/Controllers/NoteController.php 发现有一个sql注入

SELECT * FROMnotesWHEREauthor='admin' or 1=1#' 通过恶意构造后 回显(正常是无回显的)
nginx是坠吼的 ( 好麻烦,默认配置也是坠吼的
这里可以注入得到用户表中的密码,但是是经过加密处理的,无法解开还是搞不到密码
但可以通过这个sql注入搞到数据库中用来修改密码的token

test' union select 1,(select token from password_resets where email='admin@qvq.im'),3,4,5#

然后访问/password/reset/token

登录成功后访问flag页面

flag | App\Http\Controllers\FlagController@showFlag 本来应该直接打印处flag的

现在的flag是空的

Blade 视图文件使用 .blade.php 文件扩展并存放在 resources/views 目录下
但是还有一个上传功能,题目上传页面代码可通过file_exists(也就是页面中的check功能)使用phar://协议触发反序列化,用pop链删除这个编译后的模板文件

需要达成的条件:

  • 1.找到可以用来删除文件的函数(unlink函数),并构造pop链
  • 2.需要知道编译后的文件名
find . -name "*.php" | xargs grep "__destruct"

vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php

新建SwiftByteStream_TemporaryFileByteStream类,将要删除的路径写入,生成phar文件,利用phar://伪协议访问该文件,反序列化结束时自动调用__destruct()也就调用了unlink函数删除文件。

下面就是找到缓存文件的路径
laravel视图缓存没有及时更新:

vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php

编译后文件的路径由两部分构成第一部分是模板的绝对路径path,第二部分是是缓存路径,又因为缓存路径为/storage/framework/views/
根据sql注入那的提示,默认配置是最好的,得到path为/usr/share/nginx/html/resources/views/auth/flag.blade.php的sha1值
最终的路径为:
/usr/share/nginx/html/storage/framework/views/34e41df0934a75437873264cd28e2d835bc38772.php
生成phar的脚本:https://github.com/CTFTraining/huwangbei_2018_easy_laravel
easy_laravel_exp_gen.php

把生成的gif文件上传

然后去/files check一下 要更改path路径才能触发反序列化,存储的目录为storge/app/public

再次访问flag页面

参考:
https://www.cnblogs.com/tr1ple/p/11044313.html
https://xz.aliyun.com/t/2912
https://www.dazhuanlan.com/2019/12/24/5e01ca0844f13/

护网杯2018 easylaravel相关推荐

  1. [护网杯 2018]easy_tornado WriteUp

    打开环境发现有三个链接 分别点击 分别得到 flag.txt welcome.txt 以及hints.txt 看到网址后面有 file/filename= 等字样,以及出现的md5加密函数 初步猜测f ...

  2. [护网杯 2018]easy_tornado

    题目打开有三个链接 点第一个发现 第三个 猜测这里的filehash就是md5加密得到的,我们需要找到cookie_secret 在第二个链接中 有个render,而且题目是easy_tornado, ...

  3. [护网杯 2018]easy_tornado 1

    考点: 1.SSTI(务器端模板注入) 2.模板中的Handler 做之前先全点一遍看看里面有啥 flag.txt: 看到一个fllllllllllllag,正好有个filename参数,带进去看看: ...

  4. 【BUUCTF】web 之 [护网杯 2018]easy_tornado

    打开出现三个目录: /flag.txt /welcome.txt /hints.txt 依次点开查看 flag.txt 告诉我们flag在哪里 点开welcome.txt 显示 render 之后百度 ...

  5. 强网杯2018 - nextrsa - Writeup

    强网杯2018 - nextrsa - Writeup 原文地址:M4x@10.0.0.55 所有代码均已上传至我的github 俄罗斯套娃一样的rsa题目,基本把我见过的rsa套路出了一遍,值得记录 ...

  6. awd的批量脚本 pwn_[原创]第一届护网杯线下决赛awd之shell多解

    前言 好久不打比赛,顺便来北京实习就参加了护网杯.排名虽然有所提高但还是被各种大表哥吊打.(和企业参赛简直痛苦)这里带来决赛中awd比赛pwn题shell的两种漏洞利用方式. 程序保护 保护全开 程序 ...

  7. 强网杯 2018 opm

    强网杯 2018 opm 前言 这篇WP是强网杯过去了很久之后才出的, 参考的是极目楚天舒师傅的博客, 这位师傅是一位CTF老赛手, 最近复出.由于图片中不能CTRL+F出文字, 本文章尽量避免使用图 ...

  8. 2018护网杯第一场 web easy tornado LTshop超详细解答

    easy tornado 这个tornado是一个python的模板,在web使用的时候给出了四个文件,可以访问,从提示中和url中可以看出,访问需要文件名+文件签名(长度为32位,计算方式为md5( ...

  9. 2018护网杯内存取证

    作者:Swback 知乎:https://www.zhihu.com/people/back-88-87 CSDN:https://blog.csdn.net/qq_30817059 #查看profi ...

最新文章

  1. 华为云NP考试题库_华为认证网络工程师怎么考
  2. Apache2.4+Tomcat7集群搭建
  3. 深度学习难分样本挖掘(Hard Mining)
  4. 《2018中国大数据发展指数报告》发布:广东、上海、贵州、北京、重庆领先
  5. centos在线安装svn
  6. mysql下sql语句 update 字段=字段+字符串
  7. Spring Cloud Bus 消息总线介绍
  8. 开源社区ITGeek介绍
  9. 八十五、store数据,actionCreators 与 constants 的拆分和redux-immutable的使用
  10. VTK:相互作用之MouseEventsObserver
  11. SAP CRM里Interaction Object是个什么东东
  12. EXCEL怎么打20位以上的数字?
  13. python科学坐标图绘制的四个要素_Python3.0科学计算学习之绘图(四)
  14. 7-2 错误处理概念
  15. android把2变成02_【Android】学习札记第2章之数组二(Arrays工具类)
  16. 计算机定义函数求出以下,求大神看一下 计算机提示 函数定义不合法
  17. 基于CSS class的事件监听管理机制 (转)
  18. 关于 extern inline
  19. 人体姿态估计综述 2020最全
  20. 【Java开发】之配置文件的读取

热门文章

  1. 织云 Metis:看腾讯怎么做智能运维
  2. 微信扫一扫调用失败解决方案
  3. WPF unsafe
  4. ubuntu挂载光驱
  5. ffmpeg的amix混音改进
  6. 【大咖有约】华泰证券管文琦:华泰证券分布式数据库演进之路
  7. linux日志定时清理
  8. js根据索引删除数组批量指定元素
  9. h5 中的 section 标签
  10. 微型客车设计 英文资料翻译