web-mfw解题思路

简介: web-mfw解题思路

一、分析题目
题目如图:

打开题目场景:

这个网页告诉我们的意思大致是欢迎来到我的网站,这是我从头开始写的,如果你想知道一些信息,请点击上面的链接。

点啊点,到最后有价值的只有About栏目:

看到了Git,就联想到了Git漏洞信息泄露(文末详解),直接纯URL后跟.git查看git目录:

到这里我们知道存在git漏洞即可,这上面已经没有什么有价值的东西了。

二、解题思路
经过分析网页存在的信息可知,这个网页存在git漏洞,我们需要做的就是利用GitHack工具把网页源代码给拉下来,拉下来之后再进一步分析。

GitHack工具下载地址:mirrors / lijiejie / githack · GitCode

下载之后直接把GitHack文件夹拖到kali虚拟机里面即可,在终端cd到GitHack文件夹里面就可以使用GitHack工具了。

当然Windows下也可以使用GitHack工具,方法和步骤和上面一样,只不过需要用cmd窗口进行,但是目前的大部分电脑已经不支持python2了。

因为Kali虚拟机自带的有python2,所以还是比较建议使用kali来使用GitHack工具。

三、万事俱备,只欠flag:
进入Kali虚拟机cd到GitHack所在的目录:

拉下网页源码:

GitHack使用方法:

第一种:python GitHack.py URL.git/

第二种:python2 GitHack.py URL.git/

因为GitHack工具只能在python2环境中运行

进入保存路径查看源码:

发现一个文件夹和一个php文件,两个都瞅瞅:

可见templates文件夹目前是没有什么有价值的东西。

接着我们查看index.php源代码文件:

果然发现了有价值的东西:

1、$file = "templates/" . $page . ".php";

这段告诉我们flag.php文件在templates文件夹下,因此网页没有进行字符过滤,所以我们可以通过给page一个变量和cat拼接来查看里面的内容。

2、assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");

assert函数:将括号内的字符当成代码来执行,并返回true或false。

strpos查找函数:查找..在$file中第一次出现的位置,如果有则返回true,反之返回false。

3、assert("file_exists('$file')") or die("That file doesn't exist!");

file_exists检查函数:检查$file是否存在。

or die逻辑判断:前面如果是false则打印or die后面的字符串。

分析到这里就可以了,不过在进行构造payload之前,我们需要用到可执行外部命令的函数system函数。

两种构造方法:

1、payload=?page=1') or system('cat+./templates/flag.php');//

2、payload=?page=').system('cat ./templates/flag.php');//

第二种cat后面注意有个空格。

file变量通过输入的page变量拼接而成,调用file时注意用单引号'和反括号)用来限制file的范围。

?表示拼接。可以给page变量输入任何字符,file传入到strpos查找函数中并没有..的存在返回flase,执行右边代码,最终返回flag.php文件。

需要注意的是,PHP中以英文分号;表示代码结束,//表示注释,注意用单引号'进行闭合。

拼接payload:

拼接payload后可见网址被进行了URL编码。
查看源代码拿下flag:

这道题考察了git漏洞信息泄露,这个漏洞是指开发人员发布代码的时候可能存在不规范的代码和配置,造成源代码泄露,从而泄露重要信息,个人信息,数据库信息,数据库密码等等。

本人才疏学浅,如有不足,还望大佬们多多加以指点,如有不懂,在线解疑。

目录
相关文章
|
JavaScript 前端开发
Bugku CTF web 你必须让他停下来 解题思路
Bugku CTF web 你必须让他停下来 解题思路
98 2
|
存储 PHP Python
ctf-web-unseping解题思路
ctf-web-unseping解题思路
167 0
Bugku CTF web GET 解题思路
Bugku CTF web GET 解题思路
103 0
|
数据采集 网络安全 PHP
[CTF/网络安全] 攻防世界 baby_web 解题详析
题目描述:想想初始页面是哪个
438 0
[CTF/网络安全] 攻防世界 baby_web 解题详析
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
108 3
|
19天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
113 45
|
15天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
31 1
|
18天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
20天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
32 2

热门文章

最新文章

下一篇
无影云桌面