老样子进入环境,一段代码刷刷下来,闯进脑子里

这里就需要具备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相关推荐

  1. 攻防世界 favorite_number mfw、[BJDCTF2020]ZJCTF,不过如此

    favorite_number 进入环境得到源码 <?php //php5.5.9 $stuff = $_POST["stuff"]; $array = ['admin', ...

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

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

  3. 攻防世界【favorite_number】解题方法

    攻防世界[favorite_number]解题方法 1. 简单分析 进入场景,直接给出了php源码 2. php数组下标溢出 第一层绕过:绕过数组的比较 php中使用$_POST["stuf ...

  4. 攻防世界WEB练习-favorite_number

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

  5. 攻防世界 web篇(二)

    攻防世界 web篇(二) warmup favorite_number warmup shrine warmup $whitelist = ["source"=>" ...

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

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

  7. 【攻防世界001】Guess-the-Number

    攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...

  8. 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制

    ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...

  9. 攻防世界(Pwn) forgot---栈溢出;(方法二)

    攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...

最新文章

  1. 《Android 开发入门与实战(第二版)》——6.6节配置改变
  2. StructureMap 代码分析之Widget 之Registry 分析 (1)
  3. WPF画N角芒星,正N角星
  4. JVM 垃圾回收算法 -可达性分析算法!!!高频面试!!!
  5. 安卓入门系列-07常用UI控件(长文)
  6. Centos 6.4使用本地yum源
  7. MVC中提交表单的4种方式
  8. JsonData响应工具类封装
  9. Nginx文档阅读笔记-Reverse Proxy vs. Load Balancer(反向代理与负载均衡)
  10. JavaScript高级程序设计(第三版)学习笔记22、24、25章
  11. 华为机试HJ68:成绩排序
  12. CentOS 6.5下安装Docker
  13. 为保证云应用及虚拟串口功能正常使用,请务必下载安装Windows系统环境补丁
  14. 基于Thinkphp6+Element的插件化后台管理系统
  15. Vue核心技术-41,vue-router-导航守卫
  16. 运行海康威视sdk实现拍照遇到的问题与解决
  17. 李沐-斯坦福《实用机器学习》-01章
  18. vue 2.0使用tinymce-vue富文本
  19. 杨辉三角形【找规律】
  20. 苹果手机用的linux系统,苹果最差的手机竟是它,你有用过吗?

热门文章

  1. 进程和线程的区别和联系
  2. 广州市南沙区人社领导来访霖珑云科考察调研,共同探索灵活用工新模式
  3. jboss esb_与JBoss ESB和LegStar的大型机集成
  4. MySql+JDBC
  5. kaggle无法注册的问题解决
  6. 【eoe Android特刊】第二十四期Android WebView
  7. 网贷行业进入关键期,真正的分水岭正在显现 | 一点财经
  8. 农场乐翻天服务器维护,农场乐翻天游戏-农场乐翻天游戏预约v1.0-游戏宝手游网...
  9. 服务器带宽租用常见问题
  10. iMobile与Online在线场景数据的交互