题目描述:

小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

  1. 先打开场景,果然是php代码审计题目

  1. 我们可以简单阅读一下这段代码,大概就是通过get方式传入a和b参数的值,然后判断a的值和0是否相等,b的值不能是纯数字或者数字型字符串,而且要大于1234
  2. 先解决a,
    - a和0数字0进行松散比较必须相等,所以a的值为数字0是可以的,其次由于参数a是get方式传进去的值,所以默认是字符串类型,那么在松散比较下,a的值为字符串0和数字0也是true
    - 其次字符串0和false比较是否相等

    • tips:这里需要知道php在进行比较时,有两种比较方式,当采用双等号(==)比较时会进行松散比较,只比较两者的值,而不比较两者类型,
      - 比如,当一个字符串和数字比较时,会先将字符串转换为数字,再比较,'1'==1,这两个是相等的,
      - 但是如果不是数字型字符串,而是'a',非数字字符串和数字类型比较,php会直接返回0,这就导致'a'==0是成立的。
      - 其次,非空字符串都能通过if条件判断,还有一点就是,如果是这样的字符串123abc ,最终会转化为数字123
      - 转化机制是,php在松散比较下,字符串转换为数字规则是,遇到非数值就停止转换,就是123abc,只会转换到a前面,因为a是非数值,所以就只转换到这里,后续不再转换,如果是abc123,那就直接返回0,因为开头a是非数值
  3. 其次是b的值,b的值也是用弱类型比较,b的值不能是数字类型或纯数字字符串,我们可以想到用'abcow',任意都是,然后要大于数字1234,如果是abc和数字1234比较,php会将'abc'返回0。但这里也用了双等号,松散比较,所以我们可以构造'9999abc',这样,既不是纯数字字符串,在php松散比较下,又大于1234


6. 这里构造payload?a=任意字母&b=大于1234的数字和任意字母,例如?a=xxx&b=66666xx,成功获得flag,本题结束

攻防世界Web新shou区-simple_php相关推荐

  1. 攻防世界Web新shou区-webshell

    题目描述: 小宁百度了php一句话,觉着很有意思,并且把它放在index.php里. 来到场景里发现页面是显示这样一段文字,意识是以post方式提交一个shell参数,然后把shell参数的值当成ph ...

  2. 攻防世界Web新shou区-command_execution

    题目描述: 小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗. 来到场景界面,发现是一个ping功能,先尝试是否可以ping通 ping功能没有问题,题目中说没有wa ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Linux C中strcpy , strncpy , strlcpy 的区别
  2. Python爬虫实战(4):抓取淘宝MM照片
  3. Spring rmi
  4. buu Alice与Bob
  5. 与VS集成的若干种代码生成解决方案[博文汇总(共8篇)]
  6. Ubuntu中设置环境变量PATH
  7. 嵩天-Python语言程序设计程序题--第一周:Python基本语法元素
  8. java中u怎么用_Java中interrupt的使用
  9. Threading in C#
  10. 教你编写一个机器学习代码也能使用的单元测试
  11. pku 1149 PIGS(最大流)
  12. 64位plsql和64位Oracle客户端安装以及注册,内含百度云资源
  13. vue项目html5调取手机摄像头录像并上传
  14. 赵小楼《天道》《遥远的救世主》深度解析(6)为什么肖亚文说丁元英是魔是鬼都可以,就是不是人?
  15. Redis基础知识点面试手册
  16. Janitor Troubles
  17. 路由巧设置 局域网轻松限制BT下载
  18. GitHub的Linux配置与常用操作
  19. sql server 2008 R2 与 sql server 2012 下载地址(包括x86、x64)
  20. php isset()和empty()的使用区别

热门文章

  1. 【2019西电网信杯】线上赛部分题wp
  2. int与字符串之间转换
  3. JavaScript闭包(必考三座大山之二)
  4. 记一次hashMap遍历时删除异常
  5. VS2015 + Qt 5.7.0 出现ASSERT failure QtFontFamily::ensurePopulated(void) 解决办法
  6. 第一性原理与“我思故我在”
  7. 【王喆-推荐系统】线上服务篇-(task3)召回层
  8. YOLOV3代码与原理相互结合的理解(重点在特征图的输出的元素的解析)
  9. 我的世界服务器 血月概率修改,《我的世界》血月事件来袭!据说没人活过这一夜,不信你来试试?...
  10. 进程间的7种通信方式全解析及代码示例