首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

代码审计】PHP代码审计之CTF系列(1)

: 1wMDEyY2U2YTY0M2NgMTEyZDQyMjAzNWczYjZgMWI4NTt3YWxmY= 页面给定相关的加密代码,进行反解。...题目 观察完代码后发现为php弱类型绕过。 首先通过读取a,进行POST传递。 当为,data可以通过php://input来接受post数据。 $id传一个字符进去,会被转化为0。...hello=);eval($_POST['A']);%2f%2f 当var_dump($a);后的结果为: string(22) ");eval($_POST['A']);//" 与前面代码进行拼凑后为...> 在PHP 7中输出结果为: int(0) int(1) int(2) 在PHP 5中输出结果为: int(0) int(2) 在PHP 7中按照引用循环的时候对数组的修改会影响循环,在PHP 5中则不会改变...题目 分析逻辑源码,发现总体代码可以分成两大部分。 第一部分对生成的文件进行命名处理,第二部分则是对内容的过滤,也就是WAF。 观察过滤内容,发现过滤了大部分字符、数字、字母。

3.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CTFPHP黑魔法总结

    php黑魔法,是以前做CTF时遇到并记录的,很适合在做CTF代码审计的时候翻翻看看。...当输入的两个值为不是字符串时就会产生不预期的返回值: 比如 这样一段代码中,输入password[]=1则返回success,成功绕过验证 三、当有两个is_numeric判断并用and连接时,and后面的...传入数组之后,ereg是返回NULL %00截断绕过 http://www.secbox.cn/hacker/1889.html 六、接收参数$a得存在,并且$a==0可用.绕过(非数字都可绕过) 测试代码...php $a=$_GET['a']; if ($a==0) { echo "1"; } if ($a) { echo "must"; } 七、接收参数中不能出现某一字符,但下面又必须使用可以php://...九、php5,3,29,这里可以直接用%0b绕过\s(空白字符)的匹配 十、既是0又是1的情况 $a==1&$test[$a]=t时 php精度(16以上)var_dump(9999999999999999999

    2.7K81

    CTF杂谈之PHP魔法与CBC加密

    也正是因为这些PHP特性,使得它频繁出现在各类CTF题目中。 在开始今天的重点之前,我们先复习一下以前遇到过的一些PHP黑魔法。...0e的数都相等(==) 240610708、QNKCDZO这两个字符串,经过md5运算后,都为0e的形式,满足弱相等的条件 b) 数组的md5都相等(===) http://127.0.0.1/CTF...代码: Openssl_random_pseudo_bytes()函数的作用是生成指定字节长度的随机数;Eval()函数的作用是把字符串当做PHP语句执行。...尝试扫描是否有敏感文件泄露 发现.index.php.swp文件,这是index.php文件异常退出时系统自动的备份文件,可以恢复源代码; vim-r index.php.swp :w..../index.php 参考:WEB题附加信息获取方法 a) 查看页面源代码; b) 抓包查看数据包中是否有提示信息; c) 搜索未知页面、敏感文件等,可以借助一些扫描工具

    1.7K60

    PHP弱类型在CTF中的应用

    PHP作为世界上最好的语言(然而人生苦短,我用python),在CTF web题中大放异彩,深受出题人的喜爱。...P神在对web题出题套路总结的第三条指出,出题人喜欢花式玩弄php的特性,包括弱类型、反序列化、\0截断、iconv截断。那么今天我们就php弱类型这一特性,总结一下相关出题的套路。...所以先缕清代码的逻辑:接收一个“md5”的参数,然后对这个参数进行md5计算,如果计算的md5值与输入的参数相等,就可以通过验证。...它经过md5计算后为0e291242476940776845150308577824 符合要求 JSON绕过 代码逻辑是接收一个POST方法的数据,然后调用json_decode将数据解码,如果解码后的...这篇文章对php弱类型在CTF比赛中的总结并不全面,如果大家在做题的过程遇到了新的套路和绕过姿势,欢迎一起交流哦~

    4.1K51

    PHPCTF中的应用场景

    PHP常用函数 strpos("1","2")在1中查找二并返回索引或false str_replace("1","2","3")在3中找1并替换为2 define()定义大小写不敏感的常量 !...php $colors = array("red","green","blue","yellow"); foreach ($colors as $value) echo "$value "; array() count() 函数用于返回数组的长度(元素数 htmlspecialchars() 函数把特殊字符转换为 HTML 实体 (通过 PHP trim() 函数)去除用户输入数据中不必要的字符...(多余的空格、制表符、换行) (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\) 这些超全局变量是: $GLOBALS $_SERVER $_REQUEST...php中所有用户自定义的函数类和关键词(if else echo)不区分大小写但是变量大小写敏感php is_numeric()绕过 [判断是否为数字或数字字符串]用url编码中的空字符%00或%20进行绕过

    12410

    CTF---Web入门第十一题 PHP大法

    PHP大法分值:20 来源: DUTCTF 难度:中 参与人数:8205人 Get Flag:2923人 答题人数:3042人 解题通过率:96% 注意备份文件 解题链接: http://ctf5.shiyanbar.com.../DUTCTF/index.php 原题链接:http://www.shiyanbar.com/ctf/54 【解题报告】 这是我入门Web开始写的第十一道题,这道题同样是道代码审计的题目,打开看下题面...这是一段php代码,我们可以看这个当传入的参数为hackerDJ,会显示flag的值,我们可以试试看 ? 不允许访问!!!我们重新审视下那段php代码,看到 ?...我们把这段代码输入试试看~~~ ? 这个是浏览器的一个漏洞,浏览器会自动把url编码进行一次转义,所以我们应该把当前url编码再进行编码一次! ? 我们把这个二次转码的编码参数传进去试试看! ?

    1.4K110

    php代码执行函数_php代码如何运行

    ** php代码执行函数解析 ** ​一、代码执行漏洞原理: 用户输入的数据被当做后端代码进行执行 //其实一句话木马的本质就是一个代码执行漏洞。用户输入的数据被当做代码进行执行。 这里提一下RCE(remote command/code execute)远程命令或者代码执行。...现在只要渗透的最终情况可以实现执行命令或者是代码都属于RCE,例如代码执行、文件包含、反序列化、命令执行,甚至是写文件Getshell都可以属于RCE 在PHP存在诸多函数可以做到代码执行。...为了方便把要执行的代码写为$a 1.eval($a); //eval是代码执行用的最多的,他可以多行执行 eval(\$_REQUEST['a']); 2.assert(a); //只能单行执行 assert...6.特殊组合(双引号二次解析) PHP版本5.5及其以上版本可以使用 “{phpinfo()}”; => 代码执行phpinfo() php的字符串是可以使用复杂的表达式。

    15.8K20

    PHP代码规范

    今天我们的代码规范是基于以上规范进行了整理。 1、PHP 源文件只能使用 <?php 和 <?= 这两种标签 <?php 标签通常用于纯 PHP 的脚本当中,而 <?= 通常用于模板当中。...3、PHP 源文件缩进采用 4 个空格 很多编辑器使用 Tab 作为缩进。会造成空格性问题。 4、纯 PHP 代码的源文件关闭标签 ?...php namespace core; use common; 9、一句声明中,必须只有一个导入(use)关键字 虽然 PHP 允许一行代码当中允许使用多个 use 关键字导入一个类。...但是,这会使代码阅读造成障碍。 错误: <?php namespace core; use common, library; 正确: <?...php namespace core; use common; use library; 10、在导入(use)声明代码块后面必须有一行空行 空行让代码结构变得容易理解。 <?

    2.5K61

    PHP代码规范

    2基本代码规范 2.1概览 l  PHP代码文件必须以 <?php 或 <?...= 标签开始; l  PHP代码文件必须以 不带BOM的 UTF-8 编码; l  PHP代码中应该只定义类、函数、常量等声明,或其他会产生 从属效应 的操作(如:生成文件输出以及修改.ini配置文件等...PHP标签 PHP代码必须使用  长标签 或  短输出标签; 一定不可使用其它自定义标签。 2.2.2. 字符编码 PHP代码必须且只可使用不带BOM的UTF-8编码。...通则 3.2.1 基本编码准则 代码必须符合 PSR-1 中的所有规范。 3.2.2 文件 所有PHP文件必须使用Unix LF (linefeed)作为行的结束符。...所有PHP文件必须以一个空白行作为结束。 纯PHP代码文件必须省略最后的 ?> 结束标签。 3.2.3. 行 行的长度一定不能有硬性的约束。

    2.1K30

    PHP代码审计

    代码审计顾名思义就是检查源代码中的缺点和错误信息,分析并找到这些问题引发的安全漏洞,并提供代码修订措施和建议。...PHP代码审计 审计套路 通读全文法 (麻烦,但是最全面) 敏感函数参数回溯法 (最高效,最常用) 定向功能分析法 (根据程序的业务逻辑来审计) 初始安装 信息泄露 文件上传...,例如include($a.'.php'),需要截断后面的 .php 截取字符判断是不是 .php 用 zip (或者 phar )协议绕过 首先新建一个 1.php,里面 phpinfo,然后压缩成...任意文件复制,任意文件重命名,任意文件移动,任意文件下载 首先尝试拿到配置文件中的数据库连接账号和密码,然后外链 拿到配置文件,拿到加密解密函数的 key,生成加密字符串,结合具体的代码利用 1.文件删除...COOKIE 提交来的,而这里也把 COOKIE 循环出来,注册变量,所以这里在 COOKIE 里面提交 GLOBALS 就不会被检测出来,而且也成功注册了 GLOBALS 变量,所以再结合后面的一些些代码就造成了代码执行

    4.7K00

    PHP代码审计

    1.概述 代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一些漏洞或者程序逻辑错误,避免程序漏洞被非法利用给企业带来不必要的风险。...代码审核不是简单的检查代码,审核代码的原因是确保代码能安全的做到对信息和资源进行足够的保护,所以熟悉整个应用程序的业务流程对于控制潜在的风险是非常重要的。...$_POST[‘lang’].’.php’,那么检查提交的数据是否是en或者cn是最严格的,检查是否只包含字母也不错 2.通过过滤参数中的/、..等字符 4.代码注入 PHP可能出现代码注入的函数:eval...,是否能够绕过认证,例如:登录代码可能存在表单注入。...、PHP 4.0.1 2.session_destroy()删除文件漏洞 影响版本:不祥,需要具体测试 测试代码如下: view sourceprint?

    2.8K50

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券