jarvisoj babyphp

涉及知识点:

(1)GitHack处理.git源码泄露

(2)php代码注入

解析:

进入题目界面。

看到题目中的用了git那么第一反应肯定是可能存在.git源码泄露。

用GitHack尝试一下。

审计关键代码。

<?php
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = "home";
}
$file = "templates/" . $page . ".php";
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
assert("file_exists('$file')") or die("That file doesn't exist!");
?>

可以看到page是由我们自己控制的。那么这样的话就可以尝试php代码注入了。

构造payload: ?page='.system(ls).'

爆出本级文件。那么只要读取templates下的flag.php就可以了

构造payload : ?page='.system('cat templates/flag.php').'

打开F12看到flag.php中的内容如下。

得到flag。(图不太清晰,但是毕竟是flag,不重要)。

注:经过多次尝试之后,我发现php代码注入只要存在(前提是存在注入点),几乎都是无解的问题。它可以存在于任何地方,甚至赋值语句都可以用php代码注入来获取你想要的内容。

jarvisoj babyphp的更多相关文章

  1. jarvisoj level5爬坑

    本着纸上得来终觉浅,绝知此事要躬行的原则,把一个简单的ROP做了一下.漏洞很明显,libc有给出:唯一的限制就是不允许调用system或execve,而是用mprotect或者mmap 脚本调了半天, ...

  2. JarvisOJ平台Web题部分writeup

    PORT51 题目链接:http://web.jarvisoj.com:32770/ 这道题本来以为是访问服务器的51号端口,但是想想又不太对,应该是本地的51号端口访问服务器 想着用linux下的c ...

  3. 京津冀大学生竞赛:babyphp

    京津冀大学生竞赛:babyphp 比赛的时候没做出来,回来以后一会就做出来了,难受...还是基本功不扎实,都不记得__invoke怎么触发的了 放上源码 <?php error_reportin ...

  4. CTF Jarvisoj Web(session.upload_progress.name php 上传进度)

    Jarvisoj Web 题目地址:http://web.jarvisoj.com:32784/index.php <?php //A webshell is wait for you ini_ ...

  5. jarvisoj fm

    使用指令 checksec 查看保护情况 Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PI ...

  6. JarvisOJ level3_x64

    这一题是和前面x86的差不多,都是利用了同一个知识点,唯一的区别就是使用的堆栈地址不同,x86是直接使用堆栈来传递参数的,而x64不同 x64的函数调用时整数和指针参数按照从左到右的顺序依次保存在寄存 ...

  7. jarvisoj flag在管理员手上

    jarvisoj flag在管理员手上 涉及知识点: (1)代码审计和cookie注入 (2)哈希长度拓展攻击 解析: 进入题目的界面.看到 那么就是想方设法的变成admin了.挂上御剑开始审计.发现 ...

  8. JarvisOJ Basic Help!!

    出题人硬盘上找到一个神秘的压缩包,里面有个word文档,可是好像加密了呢~让我们一起分析一下吧! 首先用7zip解压缩,发现是一个word文件,说什么flag被藏起来了 觉得是不是应该有什么附加的信息 ...

  9. JarvisOJ Misc webshell分析

    分析压缩包中的数据包文件并获取flag.flag为32位大写md5. 神仙们还是强啊,webshell主要看http流,再过滤只剩下post请求 可以使用 http.request.method == ...

随机推荐

  1. MFC的大致讲解

    现在使用MFC框架的人越来越少了,现在大家都在用QT框架来写,对应初学者就我感觉来说,MFC真的是一个很好的框架,现在在工业方面使用的几乎都是MFC,所以以后就业想要往工业方面找C++工作,可以好好看 ...

  2. 【18】进大厂必须掌握的面试题-15个Kafka面试

    1.什么是Kafka? Wikipedia将Kafka定义为"由 Scala编写的Apache软件基金会开发的开源消息代理项目 ,并且是一个分布式的发布-订阅消息系统. 特征 描述 高吞吐量 ...

  3. java版飞机大战代码

    @ 目录 前言 Plane PlaneStatus类 Power类 Gift Diji play类 over类 MainFrame主类 MyZiDan DijiZiDan Before 前言 很久之前 ...

  4. HTTP 报文格式简介

    HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送 WWW 方式的数据,关于 HTTP 协议的详细内容请参考 RFC2616.HTTP 协议采用了请求/响 ...

  5. HttpClient4.3 连接池参数配置及源码解读

    目前所在公司使用HttpClient 4.3.3版本发送Rest请求,调用接口.最近出现了调用查询接口服务慢的生产问题,在排查整个调用链可能存在的问题时(从客户端发起Http请求->ESB-&g ...

  6. ServiceStack.Redis 的 ASP.NET Core 扩展库

    给大家安利一款 ServiceStack.Redis 的 ASP.NET Core 扩展库,它是基于 ServiceStack.Redis.Core 开发的. 简单易用,开源免费,使用ASP.NET ...

  7. 设置cmd默认管理员模式启动

    打开cmd文件位置

  8. Go语言实现excel导入无限级菜单结构

    目录 需求 实现 测试 简单例子 复杂例子 需求 最近有一个需求,要实现一个无限级结构的树型菜单,差不多长下面这个样子 我们知道无限级实现思路都是用一个parent_id将各种层级串联起来,顶级的pa ...

  9. Pinpoint 设置微信或者钉钉预警

    本文基于 Pinpoint 2.1.0 版本 本文大部分内容来自:侠梦的开发笔记 ,但是原文的版本和我的不一致,放在2.1.0是跑不起来的,但是大概逻辑和思路基本一致. 目录 一.接入预警大概思路 二 ...

  10. ABBYY FineReader 15快速转换文档详解

    作为一款专业的"PDF编辑器",用户可通过使用ABBYY FineReader  15的"快速转换"功能,将各种格式的一个或多个文件合并PDF文档.Micros ...