[XCTF嘉年华体验赛](web)web2 assert函数
0x00 题目分析
浏览一遍页面,在about页面,获得如下信息

访问 .git/ ,页面存在。

使用githack扒下来。得到源码,进行代码审计。
分析得到:
1.flag在flag页面,要看源码才能看到。
2. 参数过滤了 ../ 也就是限定了只能在本目录
3. exists函数 对文件的存在进行判定。
0X01 解题思路
理清思路,要看源码,有哪几种方法。
1.系统命令执行,cat 等函数
2.函数执行,show_source 等
3.将文件打包 ,下载下来。
这里最有可能的就是函数执行了,虽然下面有一个 “require_once” 但是由于上面两个语句的限制,不存在远程包含。
将代码扔进软件自动审计。

很显然,关键就在assert函数,网上查找相关资料。
函数介绍参考以下页面:
https://www.douban.com/note/217557007/
对这个函数的理解就是,这个函数会执行括号里面的语句,括号里面的句子的布尔真值不是true时候,就会提示warning。
下面是对这个函数的测试。


当为true的时候就没有提示。

所以,这一题。
注意闭合前后单引号,括号等。可得参数应为
page=1' ) == (show_source('templates/flag.php')) ;//

网上找到一种这样的:
page=' and die(highlight_file('templates/flag.php')) or '
这种写法的是利用第二个assert,最后的句子为:

执行了三个语句,里面那个 “or” 也可替换为“and”

0x02 小结
神奇的php函数:assert ,这个函数可以用来写马过狗,但一句话过狗太简单了。
有什么问题不先问问神奇的海螺呢?
继续学习~~
[XCTF嘉年华体验赛](web)web2 assert函数的更多相关文章
- 体验usually.js的管道函数——pipe函数
体验usually.js的管道函数——pipe函数 usually.js 是一个面向现代 Web 开发的 JavaScript 函数库,基于 ES6 开发.最新版本2.4.1,最新版本usually. ...
- assert函数和捕获异常
assert函数: C语言和C++都有一个专为调试而准备的工具函数,就是 assert()函数. 这个函数是在C语言的 assert.h 库文件里定义的,所以包含到C++程序里我们用以下语句: #in ...
- assert()函数用法总结
assert()函数用法总结 assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> ...
- 【php】assert函数的用法
[php]assert函数的用法 http://www.douban.com/note/217557007/ 2012-06-01 10:32:37 assert这个函数在php语言中是用来判断一 ...
- 使用ASP在IIS创建WEB站点的函数
程序代码: '=========================================================='函数介绍:创建WebSite'本函数使用ADSI,需要Adminis ...
- python中assert()函数的使用
关于assert()函数的使用,主要参考博客https://blog.csdn.net/qq_37119902/article/details/79637578 assert函数主要是用来声明某个函数 ...
- 解决用try except 捕获assert函数产生的AssertionError异常时,导致断言失败的用例在测试报告中通过的问题
在使用Python3做自动化测试过程中可能会遇到,assert函数不加try except,就可以正常在报告里体现用例不通过,加上变成通过. 这是因为在使用try except 时,捕获了asser ...
- assert函数的用法
assert这个函数在php语言中是用来判断一个表达式是否成立.返回true or false; 例如: <?php $s = 123; assert("is_int($s)" ...
- iOS exit(),abort(),assert()函数区别
iOS exit(),abort(),assert()函数区别 exit() 退出程序 abort() 停止程序, assert()检查里面的参数如果为nil抛出异常:
随机推荐
- 使用污点分析检查log4j问题
摘要:log4j问题的余波还在继续,为什么这个问题潜伏了这么长时间,大家一直没有发现?这里从静态分析的角度谈下log4j问题的发现. 本文分享自华为云社区<使用污点分析检查log4j问题> ...
- Solution -「Gym 102956A」Belarusian State University
\(\mathcal{Description}\) Link. 给定两个不超过 \(2^n-1\) 次的多项式 \(A,B\),对于第 \(i\in[0,n)\) 个二进制位,定义任意一个二元 ...
- MXNet源码分析 | KVStore进程内通信
本文主要基于MXNet1.6.0版本进行分析. MXNet的KVStore模块下有几个比较重要的类.KVStore是一个抽象类,提供了一些通用的API,例如Init.Push和Pull等.因为KVSo ...
- CobaltStrike逆向学习系列(5):Bypass BeaconEye
这是[信安成长计划]的第 5 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 BeaconEye 检测原理 0x02 Bypass 1 0x03 Bypass 2 0x04 效果图 ...
- Wireshark教程之高级功能
实验目的 1.工具介绍 2.主要应用 实验原理 1.网络管理员用来解决网络问题 2.网络安全工程师用来检测安全隐患 3.开发人员用来测试执行情况 4.学习网络协议 实验内容 1.数据流追踪功能 2.协 ...
- [Java]Thinking in Java 练习2.10
题目 编写一个程序,打印出从命令行获得的三个参数.为此,需要确定命令行数组中String的下标. 代码 1 public class Ex2_10 { 2 public static void mai ...
- 免费报表软件下载推荐------值得办公小白下载的Web报表工具
Smartbi免费报表软件更是国内报表产品的新高峰,它直接使用Excel作为报表设计器,易用性.功能性.运行速度都得到了大幅提升,遥遥领先竞品.该产品以"真Excel"为最大特色, ...
- WPS:为什么无法页眉页脚同前节(同前节是灰的)
问题:,同前节是灰的 原因:全文只有一节,插入分节符就可以设置同前节了
- 树莓派4B安装 百度飞桨paddlelite 做视频检测 (一、环境安装)
前言: 当前准备重新在树莓派4B8G 上面搭载训练模型进行识别检测,训练采用了百度飞桨的PaddleX再也不用为训练部署环境各种报错发愁了,推荐大家使用. 关于在树莓派4B上面paddlelite的文 ...
- JZ-046-圆圈中最后剩下的数
圆圈中最后剩下的数 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏. 其中,有个游戏是这样的:首先,让小朋友们围成一 ...