前言

这道题我做的也算比较久的一题,前前后后遇到许多的麻烦,最终也终于解了出来。就我这个萌新的角度来说,这个题给我的启示还是比较大的。以前对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相关推荐

  1. 攻防世界-web高手进阶区

    文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...

  2. 攻防世界 web高手进阶区 9分题 favorite_number

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是favorite_number的writeup 解题过程 进入界面 简单的代码审计 首先是个判断,既要数组强等于,又要首元素不等 然 ...

  3. 攻防世界 web高手进阶区 10分题 weiphp

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是weiphp的writeup 解题过程 进入界面 点击 进入一个登陆界面 没有注册 那肯定得找源码了 惯例源码+御剑 发现git泄 ...

  4. 攻防世界 web高手进阶区 8分题 Web_python_block_chain

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的8分题 本文是Web_python_block_chain的writeup 解题过程 这是个区块链题 这..裂开了啊 没搞过区块链 从零开始学习 ...

  5. 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth)WriteUp

    文章目录 解题部分 总结: 解题部分 题目来源 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth) 1.拿到题目以后,发现是一个index.php的页面,并且设备-没有显示 ...

  6. 攻防世界 web高手进阶区 9分题 bilibili

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是bilibili的writeup 解题过程 进来界面 这尼玛出题人是黑还是粉啊 笑死 看题目意思是买lv6 惯例源码+御剑 没发现什 ...

  7. 攻防世界 web高手进阶区 7分题Confusion1

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的7分题 本文是Confusion1的writeup 解题过程 进来的界面如下 (后来知道是php vs python的意思,也就是给提示跟pyth ...

  8. 攻防世界WEB高手进阶区warmup,NewsCenter,NaNNaNNaNNaN-Batman

    前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 攻防世界专栏:https://blog.csdn.net ...

  9. XCTF 攻防世界 web 高手进阶区

    文章目录 ics-07 shrine( flask + jinja2 的 SSTI) easytornado(模板注入) upload(文件名注入) supersqli(堆叠注入) php_rce(T ...

  10. 攻防世界——web高手进阶区题解

    目录 1,cat (Django,cURL漏洞) 2,ics-05(XCTF 4th-CyberEarth)(文件包含  +  preg_replace函数漏洞) 3,ics-06(爆破id) 4,l ...

最新文章

  1. matlab模拟风场竖桥向时程,索梁结构应急桥抖振响应分析
  2. Android sdk Drow9patch使用
  3. android高德地图绘制多边形_exlive1.0BS网上查车完善电子围栏:行政区域、多边形、规划线路...
  4. Windows 8 快捷键收集整理
  5. VS2005与Device通过ActiveSync连接异常的常见原因
  6. Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
  7. Android之运行PopupWindow提示Unable to add window -- token null is not valid; is your activity running?
  8. el-table某列的列宽自适应,其他列按比例分配。
  9. Linux常用命令 一
  10. kuboard使用mysql_Kuboard Kubernetes安装
  11. C#图解教程读书笔记(第3章 类型、存储及变量)
  12. 全局变量只能初始化不能赋值
  13. vim编辑器使用教程
  14. Alex 的 Hadoop 菜鸟教程: 第21课 不只是在HBase中用SQL:Phoenix
  15. F2FS文件系统二 实验分析f2fs文件系统
  16. 大创人人有,我怎么才能拿到国家级?
  17. 服务器安全,服务器密码遭篡改
  18. VMware esxi 阵列卡驱动下载
  19. word里双横线怎么打_word 双下横线怎么打出来
  20. otl mysql 下载_OTL mySQL

热门文章

  1. c语言表示反正弦函数,[原创]正弦和反正弦函数
  2. 从高考到程序员,一生无悔的选择,码农的成长之路
  3. 一、windows安装docker
  4. 【Java】Feil类概述
  5. 蔡康永--说话之道(一)
  6. A protocol for Dying
  7. When I’m old and dying
  8. html如何制作圣诞树,分享用HTML5来实现一个3D逼真的圣诞树
  9. 计算机组成原理 模拟机,面向计算机组成原理数学的MML模拟器
  10. 2GB显存畅玩 DeepFaceLab更新至2019.12.29