攻防世界 Web高手进阶区 mfw
前言
这道题我做的也算比较久的一题,前前后后遇到许多的麻烦,最终也终于解了出来。就我这个萌新的角度来说,这个题给我的启示还是比较大的。以前对Web相关的知识进行了学习,但是题目并未完全涉及到,就导致我对于一些知识点的理解存在了偏差,甚至就忘记了这个知识点。这个题的知识点我以前学习的时候查过,也做过笔记,但是真正做题的时候却一点也想不起来,本来按照代码审计的思路可以找到的点也遗失了,这个题可谓让我成长了许多。
WP
打开题目之后会进行一些无用的操作,这里不再赘述。重点就是打开About发现Git。
看到Git基本就能猜到会有Git泄露,然后dirsearch验证果然有,然后githack。在这里,我遇到了我的第一个麻烦,我出现了以前没遇到过的情况:
下面出现了奇奇怪怪的东西而且一直在出现,我等了很久发现还是在这样运行,我又重试了几次还是不行。我上网查了很久然后一无所获,后来以为是Windows的问题,于是转战kali。当时的我刚安装kali还没有正式使用,然后在第一次使用kali的过程中又遇到了无数的奇奇怪怪的问题,这甚至让我忘记了我是来利用kali解这题的。后来到了晚上我再打开这题尝试的时候,我发现他虽然出现这个,但是过几分钟就好了。没错,他好了,我心里直接一句mmp。(如果有师傅也遇到了或者成功解决的可以教教我咋回事嘛)
既然githack使用成功了,就直接进入目录,如果除了.git没有其他文件那就git checkout-index -a就可以了。这时候可以发现有一个templates文件夹,打开后看到flag.php,打开后发现并没有flag,因此还要转回来,发现还有一个index.php文件,打开之后进行代码审计。
然后我本人一无所获。代码审计真的是硬伤,对于php的一些存在漏洞的知识点没有熟练掌握,在代码审计的时候确实很难发现漏洞。还有一点就是我在看assert函数的时候,出于本能的习惯,在PhP文档里只看了它是检查一个断言是否为 FALSE,并没有往下深究,这就导致我错过了这个点。
最重要的是如果内容是字符串,assert将这个字符串当作php代码直接执行,这是最关键的点。参考SQL注入和XSS类似的方法和思想,构造这样的代码:
?page=') or system("cat templates/flag.php");//
这样就可以成功实现让assert执行cat这个语句了。
不过这里我又遇到了我的第二个麻烦。我当时的语句不是这么写的,我写的是
?page=') or system("cat templates/flag.php");");//
多了的");是干什么的呢?因为我以为//后面会全部注释掉,这样assert后面的("并没有被闭合,因此需要把它闭合掉。但是我这样尝试之后发现是错的,让我思考了很久,后来终于知道了答案。
assert("strpos('templates/') or system("cat templates/flag.php");");//', '..') === false") or die("Detected hacking attempt!");
这个代码看似//把后面的全给注释掉了,但实际上,这行代码的//起作用之后是这样的:
assert("strpos('templates/') or system("cat templates/flag.php");");") or die("Detected hacking attempt!");
它实际只是把assert里面的那个字符串里面的//后面的语句给注释,因此我这样写就错了。这可能都不算一个知识点,但是我却并不是很清楚。真的需要多学习。
按照正确的方法输入page之后,按F12查看源码就可以得到flag。
攻防世界 Web高手进阶区 mfw相关推荐
- 攻防世界-web高手进阶区
文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...
- 攻防世界 web高手进阶区 9分题 favorite_number
前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是favorite_number的writeup 解题过程 进入界面 简单的代码审计 首先是个判断,既要数组强等于,又要首元素不等 然 ...
- 攻防世界 web高手进阶区 10分题 weiphp
前言 继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是weiphp的writeup 解题过程 进入界面 点击 进入一个登陆界面 没有注册 那肯定得找源码了 惯例源码+御剑 发现git泄 ...
- 攻防世界 web高手进阶区 8分题 Web_python_block_chain
前言 继续ctf的旅程 开始攻防世界web高手进阶区的8分题 本文是Web_python_block_chain的writeup 解题过程 这是个区块链题 这..裂开了啊 没搞过区块链 从零开始学习 ...
- 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth)WriteUp
文章目录 解题部分 总结: 解题部分 题目来源 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth) 1.拿到题目以后,发现是一个index.php的页面,并且设备-没有显示 ...
- 攻防世界 web高手进阶区 9分题 bilibili
前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是bilibili的writeup 解题过程 进来界面 这尼玛出题人是黑还是粉啊 笑死 看题目意思是买lv6 惯例源码+御剑 没发现什 ...
- 攻防世界 web高手进阶区 7分题Confusion1
前言 继续ctf的旅程 开始攻防世界web高手进阶区的7分题 本文是Confusion1的writeup 解题过程 进来的界面如下 (后来知道是php vs python的意思,也就是给提示跟pyth ...
- 攻防世界WEB高手进阶区warmup,NewsCenter,NaNNaNNaNNaN-Batman
前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 攻防世界专栏:https://blog.csdn.net ...
- XCTF 攻防世界 web 高手进阶区
文章目录 ics-07 shrine( flask + jinja2 的 SSTI) easytornado(模板注入) upload(文件名注入) supersqli(堆叠注入) php_rce(T ...
- 攻防世界——web高手进阶区题解
目录 1,cat (Django,cURL漏洞) 2,ics-05(XCTF 4th-CyberEarth)(文件包含 + preg_replace函数漏洞) 3,ics-06(爆破id) 4,l ...
最新文章
- matlab模拟风场竖桥向时程,索梁结构应急桥抖振响应分析
- Android sdk Drow9patch使用
- android高德地图绘制多边形_exlive1.0BS网上查车完善电子围栏:行政区域、多边形、规划线路...
- Windows 8 快捷键收集整理
- VS2005与Device通过ActiveSync连接异常的常见原因
- Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
- Android之运行PopupWindow提示Unable to add window -- token null is not valid; is your activity running?
- el-table某列的列宽自适应,其他列按比例分配。
- Linux常用命令 一
- kuboard使用mysql_Kuboard Kubernetes安装
- C#图解教程读书笔记(第3章 类型、存储及变量)
- 全局变量只能初始化不能赋值
- vim编辑器使用教程
- Alex 的 Hadoop 菜鸟教程: 第21课 不只是在HBase中用SQL:Phoenix
- F2FS文件系统二 实验分析f2fs文件系统
- 大创人人有,我怎么才能拿到国家级?
- 服务器安全,服务器密码遭篡改
- VMware esxi 阵列卡驱动下载
- word里双横线怎么打_word 双下横线怎么打出来
- otl mysql 下载_OTL mySQL