标签:PHP

23 篇文章

PHP文件包含
相关函数 php中引发文件包含漏洞的通常是以下四个函数: - include() - include_once() - require() - require_once() reuqire() 如果在包含的过程中有错,比如文件不存在等,则会直接退出,不执行后续语句。 include() 如果出错的话,只会提出警告,会继续执行后续语句。 requir…
php反序列化
PHP反序列化链 PoP链的核心,就是魔术方法。而php的魔术方法中涉及到反序列化的大致有以下几种: __destruct: 析构函数,会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。一般来说,也是Pop链的入口。 __toString: 类对象遇到字符串操作时触发。 __wakeup: 类实例反序列化时触发。 __call: 当调用了…
[BJDCTF2020]Mark loves cat
解题 进来什么都没有,扫描发现git泄露 得到两个文件 flag.php <?php $flag = file_get_contents('/flag'); index.php <?php include 'flag.php'; $yds = "dog"; $is = "cat"; $handsome = 'yds'; foreach(…
[CISCN 2019 初赛]Love Math
解题 代码审计 <?php error_reporting(0); //听说你很喜欢数学,不知道你是否爱它胜过爱flag if(!isset($_GET['c'])){ show_source(__FILE__); }else{ //例子 c=20-1 $content = $_GET['c']; if (strlen($content) &…
[RoarCTF 2019]Easy Calc
知识 scandir() 函数返回指定目录中的文件和目录的数组。 var_dump()函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。 file_get_contents() 把整个文件读入一个字符串中。 解题 进来就一个计算,没发现问题 查看源码发现有个calc.php文件 首先过滤了空格,可以…
代码审计-md5加密相等绕过
$md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "nctf{*****************}"; } else { echo "fals…
[HarekazeCTF2019]encode_and_encode(25/100)
解题 <?php error_reporting(0); if (isset($_GET['source'])) { show_source(__FILE__); exit(); } function is_valid($str) { $banword = [ // no path traversal '\.\.', // no stream…
[HITCON 2017]SSRFme(16/100)
知识点 shell_exec()函数通过shell执行命令并将完整输出作为字符串返回 bash -c 相当于./readflag,而根据php字符解析特性,如果直接将./readflag传入,那么.就会变成下划线,从而不能命令执行 GET是Lib for WWW in Perl中的命令 目的是模拟http的GET请求,GET函数底层就是调用了ope…
[Zer0pts2020]Can you guess it?(15/100)
解题 进来让我猜字符,然后点击Source,得到源码 <?php include 'config.php'; // FLAG is defined in config.php if (preg_match('/config\.php\/*$/i', $_SERVER['PHP_SELF'])) { exit("I don't know wha…
[GWCTF 2019]枯燥的抽奖(7/100)
知识点 mt_srand生成的随机数实际是伪随机数,可以直接破解 php_mt_seed 解题 题目提示猜字符串,没有头绪 查看源码,可以看到有个check.php可以查看,直接访问 得到代码 <?php #这不是抽奖程序的源代码!不许看! header("Content-Type: text/html;charset=utf-8"); se…