CTF-代码审计(3)..实验吧——你真的会PHP吗
连接:http://ctf5.shiyanbar.com/web/PHP/index.php
根据题目应该就是代码审计得题,进去就是

日常工具扫一下,御剑和dirsearch.py 无果
抓包,发现返回得响应头里面有提示

访问则拿到源码。。
有次听培训有个学长说,做代码审计看代码顺序,先去找flag在哪儿,快速找到直接从那儿开始看。

intval() 返回变量得整数值

strrev() 这个函数让字符串反序.
然后再来看代码里is_palindrome_number()得功能,函数得功能

就是看看这个输入这个字符是不是回文数,是就返回ture。(有时候如果看不懂函数得内容可以直接翻译函数得名字,一般是对得,哈哈哈) // 回文数就是 12321 1112111 这样的第i个和n-i个字符要相等。
ok,接下来说解题思路
四个限制条件

不得不说,CTF里得代码审计老是出这种矛盾得题,其实就是想让我们利用函数得漏洞绕过
第一个 is_numeric() 可以用%00绕过,可以输入数字,所以这里第一个条件和第二个条件通过。%00可以放在开头或结尾,%20只能放在最后。
三四个条件绕过得方法很多种
1.intval() 处理浮点数得时候直接返回整数,所以我们直接构造 number=0.00%00
这样得话就可以满足第三个条件满足,因为0得反序也是0
但是代码里那个函数处理number得时候,是从第一位和最后一位相等,倒数第二位和第二位相等一次类推,所以我们直接构造0.00,0是不是回文数我不知道,但是第二位 '.'和倒数第二位’0‘是不同得,所以检测函数会判断它不是回文数,所以条件4也绕过,拿到flag。

类似这个0.00%00 得原理还有 ’-0%00‘
2.number=0e00%00
这个原理和上面一样,只是把0.00 换成科学记数法而已。
3.构造法3,这个构造法我去测试了发现不行,出处 https://blog.csdn.net/he_and/article/details/80615920

但是看了别人得wp发现以前是可以得。
能想出这个方法得人真是棒棒哦,也许题目就是想这么考得,因为32位最大就是 2147483647 ,value2得过程就是,先将2147483647反序,得到7463847412,而这个数字是大于2147483647这个数字得,所以intval()这个函数又会返回 2147483647,这样就使得value1和value2得值都相等了,而2147483647这个数又不是回文数,所以绕过四个条件。
但是这个方法不行了,我也不知道为什么.
如果服务器是64位操作系统这个方法则不行,因为9223372036854775807这个数反序后比最大小。
CTF-代码审计(3)..实验吧——你真的会PHP吗的更多相关文章
- 某CTF代码审计题
记一次参加CTF比赛翻车记! 开始还是挺有信心的,毕竟也是经常打一些CTF锻炼,然而比赛发现大佬们平时不显山不漏水的一比赛全出来了!赛后看了一下各题的writeup发现自己的确技不如人啊!借鉴一个 ...
- 实验吧--web--你真的会php吗
---恢复内容开始--- 实验吧的一道题php审计题.拉下来写一写. http://ctf5.shiyanbar.com/web/PHP/index.php 打开之后说have fun 那就抓包来看看 ...
- union注入的几道ctf题,实验吧简单的sql注入1,2,这个看起来有点简单和bugku的成绩单
这几天在做CTF当中遇到了几次sql注入都是union,写篇博客记录学习一下. 首先推荐一篇文章“https://blog.csdn.net/Litbai_zhang/article/details/ ...
- 实验吧——你真的会PHP吗?(intval范围 php中\00的利用)
题目地址:http://ctf5.shiyanbar.com/web/PHP/index.php 抓包在header中发现提示 访问得到源码 <?php $info = "" ...
- CTF——代码审计之变量覆盖漏洞writeup【2】
题目: 基础: 所需基础知识见变量覆盖漏洞[1] 分析: 现在的$a=’hi’,而下面的函数需满足$a=’jaivy’才可以输出flag,那么需要做的事就是想办法覆盖掉$a原来的值. 那么出现的提示 ...
- CTF——代码审计之变量覆盖漏洞writeup【1】
题目: 所需基础知识: 分析: 思路:由于目的是要拿$flag的值,所以可以得出最终会输出两个变量,而$flag的值在红框那行,被我们自己post的值给覆盖,所以flag值肯定不会在这出来,那么只剩下 ...
- CTF之PHP黑魔法总结
继上一篇php各版本的姿势(不同版本的利用特性),文章总结了php版本差异,现在在来一篇本地日记总结的php黑魔法,是以前做CTF时遇到并记录的,很适合在做CTF代码审计的时候翻翻看看. 一.要求变量 ...
- 7. 由一道ctf学习变量覆盖漏洞
0×00 背景 近期在研究学习变量覆盖漏洞的问题,于是就把之前学习的和近期看到的CTF题目中有关变量覆盖的题目结合下进一步研究. 通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导 ...
- [CTF]Capture The Flag -- 夺旗赛
CTF(Capture The Flag) 简单介绍 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式. `In co ...
随机推荐
- zz在自动驾驶研发中充分发挥数据的潜能
本次分享内容提纲 数据标注 数据驱动开发 数据驱动决策 前言 上图这是我加入小马智行之前的一个小故事.这不断的提醒我,人工智能需要有足够的数据量,并且充分发挥这些数据的潜能,是我们作为人工智能公司的一 ...
- 003VlookUp的使用
在Excel中,Vlookup这个函数还是挺有用的 我最近在一个场景中使用到VlookUp函数,使用场景是 我们将学生名单导入到学业上报系统的时候,发现Excel中有 79条数据但是导入成功的提示是说 ...
- 前端css命名规范----BEM
一.什么是BEM BEM就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种前端命名方法论.这种巧妙的命名方法可以使css类对其他开发者来说更加透明 ...
- NLP之关键词提取(TF-IDF、Text-Rank)
1.文本关键词抽取的种类: 关键词提取方法分为有监督.半监督和无监督三种,有监督和半监督的关键词抽取方法需要浪费人力资源,所以现在使用的大多是无监督的关键词提取方法. 无监督的关键词提取方法又可以分为 ...
- 分布式共识算法 (二) Paxos算法
系列目录 分布式共识算法 (一) 背景 分布式共识算法 (二) Paxos算法 分布式共识算法 (三) Raft算法 分布式共识算法 (四) BTF算法 一.背景 1.1 命名 Paxos,最早是Le ...
- Windows开机自动登陆 开/关:登录需按Ctrl+Alt+del的功能
Win10.Win7.WinXP开机自动登录: Win+R组合键打开“运行”,输入“netplwiz” 在弹出的“用户帐户”窗口中,把取消勾选“要使用本机,用户必须输入用户名和密码”,然后“应用”. ...
- loj 6051 「雅礼集训 2017 Day11」PATH - 多项式 - 钩子公式
题目传送门 传送门 设 $m = \sum_{i = 1}^{n} a_i$. 总方案数显然等于 $\frac{m!}{\prod_{i = 1}^{n} a_i!}$. 考虑这样一个网格图,第 $i ...
- 【对不同形式矩阵的总结】WC 2009 最短路径问题(线段树+矩阵乘法)
题意 题目链接:https://www.luogu.org/problem/P4150 一个 \(6\times n\) 的网格图,每个格点有一个初始权值.有两种操作: 修改一个格子的权值 求 ...
- Loj #3044. 「ZJOI2019」Minimax 搜索
Loj #3044. 「ZJOI2019」Minimax 搜索 题目描述 九条可怜是一个喜欢玩游戏的女孩子.为了增强自己的游戏水平,她想要用理论的武器武装自己.这道题和著名的 Minimax 搜索有关 ...
- 管道的原子性 linux写操作原子性
从本质上说,管道也是一种文件,但他又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题 限制管道的大小.实际上,管道是一个固定大小的缓冲区.在Linux中该换冲区的大小为一页,4k 使得他的 ...