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

推荐15-php异或计算绕过preg_match()

原理 以制作免杀马为例: 在制作免杀马的过程,根据php的语言特性对字符进行!...进行连接,便可以绕过preg_match匹配。 详情了解php不同于其他语言部分 但是很多的preg_match会过滤掉".",所以需要使用异或运算进行绕过,很多的免杀马都是这样制作的。...以GET或POST传入字符绕preg_match为例: php的eval()函数在执行时如果内部有类似"abc"^"def"的计算式,那么就先进行计算再执行,我们可以利用再创参数来实现更方便的操作,例如传入...注意2:测试中发现,传值时对于要计算的部分不能用括号括起来,因为括号也将被识别为传入的字符串,可以使用{}代替,原因是php的use of undefined constant特性,例如${_GET}{...a}这样的语句php是不会判为错误的,因为{}使用来界定变量的,这句话就是会将_GET自动看为字符串,也就是$_GET['a'] Demo Suctf easyphp <?

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

    php 中进制之间的转换

    作为一个屌丝程序员,没有丰富的经验,只是一味地敲着代码,但终究有一天,我也会成为一个技术大牛,今天学了点进制相互转换的几个函数 常见的进制: 二进制      binary        ----->  ...     octal          ----->  oct 十进制      decimal      ----->  dec 十六进制   hexadecimal     ----->  hex php...提供了几常见进制之间转换的函数 二进制转为其他进制 binoct();//转为八进制 bindec();//转为十进制 binhex();//转为十六进制 八进制转为其他进制 octbin();//转为二进制...hexdec();//转为十六进制 上面列举了这么多,其实自己感觉一点用没有,对于上面的这些函数,你只需要急着bin、oct、dec、hex就可以了,你要把a进制转为b进制,那就是ab() 举个简单的例子...: 把二进制(bin)转为十进制(dec): bindec(); 就这么简单 但这样可能还不能满足我们的需求,于是php有个我们提供了一个真正实现爱咋转就咋转的函数:base_convert(); base_convert

    1.3K60

    FastCgi与PHP-fpm之间的关系

    仔细想想,你在PHP代码中使用的用户从哪里来 的。 当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。...这就是fastcgi的对进程的管理。 那PHP-FPM又是什么呢?是一个实现了Fastcgi的程序,被PHP官方收了。 大家都知道,PHP的解释器是php-cgi。...网上有的说,fastcgi是一个协议,php-fpm实现了这个协议。有的说,php-fpm是fastcgi进程的管理器,用来管理fastcgi进程的。php-fpm的管理对象是php-cgi。...有的说,php-fpm是php内核的一个补丁,以前是对的。因为最开始的时候php-fpm没有包含在PHP内核里面,要使用这个功能,需要找到与源码版本相同的php-fpm对内核打补丁,然后再编译。...还有的说PHP-CGI是PHP自带的FastCGI管理器,那这样的话干吗又弄个php-fpm出 不对。php-cgi只是解释PHP脚本的程序而已。

    1.1K60

    Nginx与php-fpm之间的通信机制(一)

    PHP 文件在服务器上的解析需要用到 PHP 解释器,再加上对应的 CGI 协议,从而使服务器可以解析到 PHP 文件。 ?...php-fpm将任务下发给下面空闲的work进程,此时work进程中的php解释器开始处理文件。...因此就可以把php-fpm理解为,是一个实现了Fastcgi协议的程序,用来管理Fastcgi启动的进程的,即能够调度php-cgi进程的程序。...此时CGI便是规定了要传什么数据/以什么格式传输给php解析器的协议。当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。...配置文件(我们平常可能更多的是配置php.ini的文件,这里需要区分两者之间的区别,php.ini是针对php的配置文件,可以简单的理解为php再编译源码时会用到这里的配置,而关于php这个应用程序执行的情况就会用到

    2.5K40

    php缓冲区与header函数之间的秘密

    下来让我们更深层次的了解一下 测试header之前有输出 php echo 'hello world!'...缓冲区 做个比喻,就好比我们看电影时的缓存一样。它不会之间立即给我们播放出来,而是先将一部分下载好的电影放到缓存里面,再有缓存播放出来。...我们编写php代码也是这个道理 php的缓存机制-output_buffering php中的常用ob函数 函数 解释 ob_start 打开输出缓冲区 ob_clean 清空缓冲区 ob_get_contents...information - headers already sent header与缓冲区之间的分析 为什么我们之前说header之前不能有输出 对于header函数,它是像客户端发送原始的http报头...,是声明我们所写网页到底是什么内容,所以一但这个声明之前有内容就是错误的,是不符合http规则的 下来说说php中的header 在php中header是不经过缓冲区的,它会经过服务器直接输出到客户端

    61720

    PHP怎么获取二维数组之间的差值

    PHP 对于数组的相关操作,可以说是封装的很完善了,基本上都有函数 前几天写了一个获取思否某标签下文章的采集Api,为了不想重复推送,就加了一个新旧文件比较的操作,其实就是两个数组合并取差值 结果想都没想...,直接用了函数 array_unique(array_merge($a, $b)); 意思是合并两个数组,然后移除数组中重复的值,挂了一天后发现有点问题,有多个文章的时候,只推送一条 看一下文档,发现当几个数组元素的值相等时...,array_unique()只保留第一个元素,其他的元素被删除 所以就不能这么写,简单写个demo $arr1 = [ 0 => [ 'title' => 'test0',...也就是我需要得到['title' => 'test3','url' => 'http://qq52o.me/113.html'] 两个数组中title是唯一的,所以通过key操作不适用in_array...isset($tmpArr[$v[$pk]])) { $res[] = $v; } } return $res; } 当没有唯一id的时候,可以使用

    1.7K10

    JAVA与PHP之间进行aes加密解密

    aes加密解密过程 用户数据应经过加密再传输,此文档为aes128加密(cbc模式)的说明 摘要算法为SHA-512 加密: 生成16位iv向量,使用该iv以及密钥加密原文 将加密后的真实密文与iv拼接...: iv+真实密文 将与iv拼接后的密文用SHA-512 HMAC生成摘要信息(128位),与密文拼接: HMAC+base64后的密文,得到最终的密文 解密: 分离出hmac与密文,可以自行进行摘要检测...得到拼接了iv的原文.分离出iv以及真实原文 使用密钥以及iv进行解码,得到原文 加密举例 php版本 /*****加密过程*****/ $str = "Hello World...pkcs7通用) IvParameterSpec iv = new IvParameterSpec(sIv.getBytes());//使用CBC模式,需要一个向量iv,可增加加密算法的强度...return null; } } /** * HmacSHA512消息摘要 * * @param data 待做摘要处理的数据

    2.7K10

    Php和Java之间RSA加解密实战

    一、背景 最近一项目采用分层架构,前端是Php,后端是Java,一些敏感数据传输采用加密处理,中间调试起来也是非常麻烦,因为每个语言实现的不一样,Php因为语言层面已经封装了,使用起来不用关注太多...,但要了解原理就得看C语言写的代码了,反过来Java的实现就繁琐一些,对使用者不太友好,不过相对来说也比较容易了解原理了。...大概是这样的: ?...三、Php加密 Php代码比较简单,语言层面已经提供相应函数: function rsaEncrypt($rawStr){ $publicKey = file_get_contents...是换行的,把换行符也要去掉,上面去掉之后最终的格式如下: MIICXgIBAAKBgQDQxvhGw9qrUO5U9FM3J7zgyikG6Fqj48kJf8hWaxUcZaBx9X1g6i/JVXshkoXYBfE0EKKpPOOUy0uibAS

    1.1K10

    WriteUp分享 | LCTF的一道preg_match绕过+出题人的锅

    ');//$admin是每次随机生成的,碰撞的可能性是1/(35*35) preg_match('/^(xdsec)((?...code,让pre_match处理的时候出错,php进程崩掉,然后你后面的guest身份的插入语句就不会执行 赛后知道这个解法后,我真的是惊呆了。。。...,你会发现你不是guest了,因为identities表清空了,自然就绕过了member.php的逻辑 同时也有条件竞争的解法 第一天出题者的数据库还是正常的,这个时候就只能注册不同用户,代码的逻辑是...,注册时先将username插入user表,再将guest身份插入identities表,这之间有个间隙,而且由于pre_match()函数处理慢,这个间隙还是可利用的,code大概20个字符就能挺拖速度了...其实这里的条件竞争,还有另外一处 login.php里面会清理session memeber.php的会检测session 那么如果我们用脚本不断得注册并访问login.php,当member刚运行完此处

    7.8K60

    PHP丨PHP基础知识之数据类型之间相互转换

    昨天刚讲完PHP数据类型,今天就来讲讲PHP数据类型的转换。 转换变量或者值的类型,转换成其他数据类型的方法主要分为两大类:自动转换和强制转换。...PHP数据类型强制转换有三种方式: 1、在转换的变量前加上目标类型:包括(int)整型、(bool)布尔型、(float)浮点型、(string)字符串、(array)数组、(object)对象; php$num1=3.14;$num2=(int)$num1;var_dump($num1); //输出float(3.14)var_dump($num2); //输出int(3)?...php$num=12.8;$flg=settype($num,"int");var_dump($flg); //输出bool(true)var_dump($num); //输出int(12)?...今日推荐: PHP丨PHP基础知识之数据类型 PHP丨PHP基础知识之PHP基础入门——函数「理论篇」 下期预告(变量类型测试函数的使用方法) is_bool():判定是否为bool is_int();

    80531

    Zend与PHP之间到底是什么关系

    Zend与PHP之间是什么关系 What is Zend's relationship with PHP? 每次看到PHP虚拟机中出现zend、zendvar之类的都很困惑,特意查了一下......和今天的PHP一样,PHP3的主要架构 设计师也是Zeev Suraski和Andi Gutmans o PHP 3是由PHP/FI 2.0完全重写成的,但是对象并不是新 语法中必需的部分。    ...这个公布的版本命名为PHP 2,已经有今日PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。...在1997年,任职于Technion IIT公司的两个以色列程序设计师:Zeev Suraski和Andi Gutmans,重写了PHP的解释器,成为PHP 3的基础,而PHP也在这个时候改称为PHP:...目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。 2008年PHP 5成为了PHP唯一维护中的稳定版本。最新的发布版本为PHP 5.6.9。

    1.5K30

    php计算两个日期之间的间隔,避免导出大量数据

    这对于系统的平滑运行不太友好,应该进行导出任务排队、限制范围等操作来控制频率、资源使用率。...探索 导出任务排队 这里讲讲实现思路: 前端请求服务端接口,告诉它要导出的日期范围、内容 服务端记录,插入队列 服务端监控脚本(可以用easyswoole等常驻型应用来完成),生成队列里的excel文件...,把任务标注成已经成功、对应的文件名 前端请求任务之后,间隔轮询后端,是否服务端导出完成,是的话则根据返回文件名下载文件 限制数据范围 这是比较重要的点,因为如果是不限制数据筛选范围,使用了排队导出的架构之后...,也可能导致机器资源占用过高(而且有被攻击的风险!)...我们可以根据筛选的日期范围,比如不能间隔超过50天,来限制,那么就要判断两个日期差距的日期了。

    2.4K20

    PHP正则表达式

    | 选择符 匹配字符串的左边或者右边 () 分组,提取  //量词   //preg_match()函数匹配成功返回1,失败返回0   echo preg_match('/a+/','abc...preg_match('/(abc)+/','abcd');//返回1 元字符 说明 [a-z] 匹配任何包含小写字母a-z的字符串 [A-Z] 匹配任何包含大写字母A-Z的字符串 [0-9] 匹配任何包含...0-9的字符串 [abc] 匹配任何包含小写字母a,b,c的字符串 [^abc] 匹配任何不包含小写字母a,b,c的字符串 [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9和下划线的字符串 \w...,注意第二行前面不要有空格避免干扰  ​  ​   //x 忽略模式的空格   echo preg_match('/a b/','ab');//返回0   echo preg_match...php7 )  ​   //preg_match()   echo preg_match('/php[0-9]/','php5');//返回1     //preg_match_all

    1.6K10
    领券