ctf常见php弱类型分析
1. 布尔反序列化
$unserialize_str = $_POST[‘password‘];
$data_unserialize = unserialize($unserialize_str);
3 if($data_unserialize[‘user‘]==‘???‘&&$data_unserialize[‘pass‘]==‘???‘)
4 { print_r($flag); }
反序列化后得到的值的user和pass都为不知道的,但是这里是两个==,根据php弱类型,bool值和任何字符串都为相等,即可以构造user和pass的值为bool
即
2.php引用赋值
<?php
class just4fun { var $enter;
var $secret;
} if (isset($_GET[‘pass‘])) { $pass = $_GET[‘pass‘]; if(get_magic_quotes_gpc()){
$pass=stripslashes($pass);
}
$o = unserialize($pass);
if ($o)
{ $o->secret = "*";
if ($o->secret === $o->enter)
echo "Congratulation! Here is my secret: ".$o->secret;
else echo "Oh no... You can‘t fool me"; }
else echo "are you trolling?"; } ?>
这道题虽然不涉及弱类型,但是涉及到语言中的引用赋值,也是一个点,要使解序列化后的 (secret===enter)
这里是三个等号,要使这两个变量相等,且secret已经被赋值,所以用引用赋值的方式,$a=&$b,则变量a和b指向同一个数据,两个值一定相等
即
ctf常见php弱类型分析的更多相关文章
- CTF中常见的 PHP 弱类型漏洞总结
作者:ZERO 所属团队:Arctic Shell 参考资料: http://archimesan.me/2017/12/21/php%E5%BC%B1%E7%B1%BB%E5%9E%8B%E6 ...
- systemd的新特性及unit常见类型分析与awk用法示列
简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理 系统引导的新特性 系统引导时实现服务启动: 按需激活进程: 系统状态快照: ...
- [原题复现]百度杯CTF比赛 十月场 WEB EXEC(PHP弱类型)
简介 原题复现: 考察知识点:PHP弱类型. 线上平台:https://www.ichunqiu.com/battalion(i春秋 CTF平台) 过程 看源码发现这个 vim泄露 下方都试了 ...
- Python 到底是强类型语言,还是弱类型语言?
0.前言 我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Py ...
- PHP弱类型hash比较缺陷
成因分析: == 在进行比较的时候,会先将两边的变量类型转化成相同的,再进行比较 0e在比较的时候会将其视作为科学计数法,所以无论0e后面是什么,0的多少次方还是0. 因此CTF比赛中需要用到弱类型H ...
- PHP弱类型需要特别注意的问题
下面介绍的问题都已验证, 总结:字符数据比较==不比较类型,会将字符转数据,字符转数字(转换直到遇到一个非数字的字符.即使出现无法转换的字符串,intval()不会报错而是返回0).0e,0x开头的字 ...
- PHP弱类型安全问题的写法和步骤
鉴于目前PHP是世界上最好的语言,PHP本身的问题也可以算作是web安全的一个方面.在PHP中的特性就是弱类型,以及内置函数对于传入参数的松散处理.本篇文章主要就是记录我在做攻防平台上面遇到的PHP的 ...
- PHP弱类型:WordPress Cookie伪造
1 PHP弱类型 PHP是弱类型语言,所以变量会因为使用场景的不同自动进行类型转换.PHP中用 == 以及 != 进行相等判断时,会自动进行类型转换,用 === 以及 !== 进行判断时不会自动转换类 ...
- C语言的结构和联合,以及PHP是怎么实现弱类型的
C语言的结构(struct):包含多个成员,可能有多种数据类型,并且需要分配几种类型占用空间之和的空间. 联合(union):支持多种类型,供使用者使用其中一种数据类型,当然是需要分配其中占用空间最大 ...
随机推荐
- JavaScript系统学习小结——Object类型、Array类型
今天学习JavaSript中引用变量中的Object类型和Array类型: 1. Js中大多数引用类型值都是Object类型的实例,Object类型在应用程序中存储和传输数据时,是非常理想的选择: 创 ...
- HTML随笔1
1.编号列表: <ol type="A" start="1"> //type中有"A","1",&qu ...
- 如何重置密码 oracle sys和system
有时候我们会忘记oracle sys和system的密码,不用担心,通过sqlplus即可修改密码.只能修改,不能找回. 方法如下: 1.打开 cmd界面,输入sqlplus /nolog 显示结果如 ...
- Charles录制App的接口har文件
Charles录制App的接口har文件 如果我们想录制我们自己App后台请求接口的信息,并生成har文件,要怎么做呢?其实很简单,就是通过Charles,让手机的访问请求走这个Charles代理就行 ...
- json对象、构造原型、组合继承
一.json对象套路 var stu = { "name": "龙姑娘", age: 16, classmate: { name: "李小玉" ...
- Webpack 打包之体积优化
谈及如今欣欣向荣的前端圈,不仅有各类框架百花齐放,如Vue, React, Angular等等,就打包工具而言,发展也是如火如荼,百家争鸣:从早期的王者Browserify, Grunt,到后来赢得宝 ...
- 设计模式-前摄器模式(Proactor)
本周要进行boost asio库的学习,在学习之前发现最好需要先了解一下前摄器模式,这样对asio库的理解很有帮助,故写下此文 我之前写的随笔XShell的模拟实现中的链接方式可以说是同步的(服务器阻 ...
- 解决QT编程出现 C2001错误
最近做项目时,在debug输出或者是在其他用到字符串常量的时候,总会时不时的出现C2001错误,提示"常量中有换行符", 比如 tr("删除此设备") 或者 q ...
- SQL 结合CASE WHEN 实现二维统计
在开发中往往要用到类似下面的二维统计: a b type1 54 65 type2 54 54 在SQL中使用CASE WHEN 语句可以很轻松的实现: SELECT SUM(CASE WHEN ...
- rtems的GNU(GCC)编译环境配置
// 创建目录 /home/shael/rtems/build //存放解压包和编译包目录 /home/shael/rtems/archive //存放源码包目录 /home/shael/rt ...