1.打开页面,进行代码审计,发现同时满足和和a==0和a 时,显示flag1。 2.php中的弱类型比较会使’abc’ == 0为真,所以输入a=abc时,可得到flag1,如图所示。(abc可换成任意字符)。 3.is_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回 FALSE,且php中弱类型比较时,会使(‘1234a’ == ...
具体来说,PHP会依次执行以下步骤:如果其中一个操作数是布尔值(true或false),则将其转换为1(true)或0(false)。 如果其中一个操作数是null,将其转换为整数0。 如果其中一个操作数是数组,将其转换为字符串Array。 如果操作数中的任何一个是对象,则将其转换为字符串Object。 对于两个操作数都是字符串的情况,PHP...
对于两个操作数都是字符串的情况,PHP会将两个字符串中的非数字字符删除,然后将剩余的数字字符串转换为相应的数字进行比较。 如果以上都不适用,则将字符串转换为数字进行比较。 例如,当比较字符串"0123"和整数123时,返回 true;当比较字符串"12xxx"和整数12时,返回 true,因为 PHP 会将字符串转换为数字后进行比较。
里面包含function.php和class.php,继续查看源码 function.php class.php base.php 上传页的源码 upload_file.php 文件上传处调用了upload_file()函数,这个函数的声明在function.php中,执行过程是先通过upload_file_check()函数的检查,再执行upload_file_do()函数。 upload_file_check()函数,只检查后缀,不检查文件...
[SWPUCTF 2018]SimplePHP [SWPUCTF 2018]SimplePHP 知识点: 简单的phar反序列化 首先我们需要将php.ini中的phar.readonly选项设置为Off,否则无法生成phar文件。 大致生成代码如下: <?php $phar=newPhar("phar.phar");//后缀名必须为phar...
查看文件里面有一个文件读取,可以看重要代码 file.php<?php header("content-type:text/html;charset=utf-8"); include 'function.php'; include 'class.php'; ini_set('open_basedir','/var/www/html/'); $file = $_GET["file"] ? $_GET['file'] : ""; if(empty($file)) { echo "There ...
为了方便数据存储,php通常会将数组等数据转换为序列化形式存储,那么什么是序列化呢?序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。 网上有一个形象的例子,这个例子会让我们深刻的记住序列化的目的是方便数据的传输和存储。而在PHP中,序列化和反序列化一般用做缓存,比如session缓存,...
0x07 simple_php 题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 这里涉及到的php基础知识有: GET方式传递参数,在url后加?+参数名称+=+参数值,例如http://x.x.x.x/?a=1&b=2 php弱等于,==在php中是弱等于,不比较变量类型,直接转化为同一类型比较,这里要满足参数a等于0,且参数...
simplephp <?phphighlight_file(__FILE__);error_reporting(E_ERROR);$str=$_GET['str'];$pattern="#\\\/Ilikeisctf#";functionfilter($num){$num=str_replace("0x","1",$num);$num=str_replace("0","1",$num);$num=str_replace(".","1",$num);$num=str_replace("e","1...
cfb的题目比较少,在这里找到了一个Hitcon 2015的题目https://nusgreyhats.org/write-ups/HITCONCTF-Quals-2015-Simple-(Crypto-100)/原题是用ruby写的,这里转化为php。 套路和上面的都差不多,注册一个用户,将username和password json一下,然后加密存到cookie中,json_decode之后 即可。但是正常情况下应该只有info...