首页 > 分享 > XCTF攻防世界web新手练习

XCTF攻防世界web新手练习

XCTF攻防世界web新手练习_ 10_simple_php

最新推荐文章于 2024-07-24 09:01:19 发布

Dar1in9 于 2019-04-29 17:10:14 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

XCTF攻防世界web新手练习—simple_php

题目

题目为simple_php,根据题目信息,判断是关于php代码审计的
在这里插入图片描述
打开题目,得到一串php代码
在这里插入图片描述
代码很简单,就是以GET方式获得两个参数a和b,如果a和b满足一定条件,则打印flag1和flag2,猜测将flag1和flag2拼接就能够得到完整flag

接下来看代码,注意到:

if($a==0 and $a){ echo $flag1; } 123

很简单,只要将a=0e1 即可
另一段:

if(is_numeric($b)){ exit(); } if($b>1234){ echo $flag2; } 123456

get的b不能是数字,但又必须大于1234,这里可以用b=12345a绕过

综合一下a和b,得到url为?a=0e10&b=12345a
回车,得到flag!
在这里插入图片描述

关于php弱类型

首先认识什么是强、弱类型
维基百科:

强弱类型表示在计算机科学以及程序设计中,经常把编程语言的类型系统分为强类型和弱类型两种。这两个术语并没有非常明确的定义,但主要用以描述编程语言对于混入不同数据类型的值进行运算时的处理方式。
强类型的语言遇到函数引数类型和实际调用类型不匹配的情况经常会直接出错或者编译失败;
而弱类型的语言常常会实行隐式转换,或者产生难以意料的结果。

php就是一类弱类型语言,它会有很多隐式的转换

常见的php弱类型
主要分为类型转换问题内置函数的参数的松散性两类

类型转换问题

类型转换问题又分为多个种类
常见的有

" == “和” === " Hash比较 十六进制转换 intval()和(string) 类型的转换 bool类型的true可以和任意字符弱类型相等 json绕过 内置函数的参数的松散性 md5() strcmp() switch() in_array() php的超全局变量

参考:
https://blog.spoock.com/2016/06/25/weakly-typed-security/

https://www.secpulse.com/archives/69529.html

相关知识

练习
web前端开发宠物主题网页设计最新资讯
CAD新手入门练习指南
521: Web server is down
《第七史诗》新手30抽抽卡推荐
魔兽世界正式服新手玩家攻略手册 超详细新手入坑全指南
《宠物派对Web》趣味竞赛系统大公开
钩织史莱克宠物帽子
宠物练习
基于web的流浪动物领养系统(源码+开题)

网址: XCTF攻防世界web新手练习 https://m.mcbbbk.com/newsview161025.html

所属分类:萌宠日常
上一篇: @Transactional(r
下一篇: 小宠训练