php
vspiders
天道酬勤~
展开
-
php Zend虚拟机的两种hook方式
前言这节讲一下PHP 的hook的两种方式,opcode handler hook和method hook,没有然后。handlerPHP提供了内置opcode handler替换函数zend_user_opcode_handlers。ZEND_API int zend_set_user_opcode_handler(zend_uchar opcode, user_opcode_handler_t handler){ if (opcode != ZEND_USER_OPCODE) { if原创 2020-06-08 20:12:31 · 772 阅读 · 0 评论 -
php扩展初探(三): taint解析
前言终于可以抽点时间说下taint了。源码解析taint的安装就不提了,普通的扩展安装即可。taint主要由三部分构成,污点标记、污点传播、污点沉降。污点标记taint在php7中的标记是在_zend_string中的内存回收u.v.flags字段中,如下:typedef union _zend_value { zend_long lval; /* long value */ double dval; /* ...原创 2020-05-28 21:08:36 · 611 阅读 · 1 评论 -
NGINX PHP Redis Mysql性能瓶颈提升小计
最近在弄个环境,使用PHP作为开发语言,辅助NGINX、Redis、Mysql进行架构设计,这里记录下性能提升的几个点。PHP-FPMphp-fpm是一种多进程模型,来了一个请求就会分配一个进程去处理,处理完成之后进行销毁,通过修改www.conf提升php-fpm的处理效率。; static - a fixed number (pm.max_children) of child processes;; pm.max_children - the ma原创 2020-05-21 10:29:09 · 418 阅读 · 0 评论 -
PHP 扩展编写(二)
前面我们说了一个简单的PHP扩展的编写与实现,本次实现一个具有功能的复杂扩展。求和函数phpadd求和函数需要接受参数,先来看下参数的写法。参数的提示与校验是通过ZEND_BEGIN_ARG_INFO_EX、ZEND_BEGIN_ARG_INFO两个宏定义函数完成的。,其中的ZEND_ARG_INFO设置了参数是否为引用、参数标识以及是否为可选参数等,本示例中,我们接受两个参数,均...原创 2020-04-05 16:01:10 · 322 阅读 · 0 评论 -
PHP 扩展编写(一)
生命周期说到PHP扩展,需要先简单了解下PHP的生命周期,意义在于说明这个扩展在什么时候是生效的。在CLI模式下,PHP的执行过程主要分为5大部分,分别是模块初始化(php_module_startup)、请求初始化(php_request_startup)、执行(php_execute_script)、请求关闭(php_request_shutdown)和模块关闭(php_module_...原创 2020-04-04 22:58:24 · 227 阅读 · 0 评论 -
php中地址引用&的真正理解-变量引用、函数引用、对象引用
php的地址引用(就是在变量或者函数、对象等前面加上&符号)最重要就是删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁,在php中引用的意思是:不同的名字的变量访问同一个变量的内容。一、变量的引用 PHP 的引用允许你用两个变量来指向同一个内容:$a = "ABC";$b =& $a;echo $a;//这里输出:ABC echo $b;/...转载 2020-01-17 16:49:34 · 534 阅读 · 0 评论 -
PHP反序列化漏洞与Webshell
前言最近和小伙伴们一起研究了下PHP反序列化漏洞,突发奇想,利用反序列化漏洞写一个一句话木马效果应该蛮不错的。于是便有此文。0x01 PHP反序列化说起PHP反序列化,那必须先简单说一下PHP的序列化。PHP序列化是将一个对象、数组、字符串等转化为字节流便于传输,比如跨脚本等。而PHP反序列化是将序列化之后的字节流还原成对象、字符、数组等。但是PHP序列化是不会保存对象的方法。<?phpc...原创 2018-03-21 17:39:27 · 5103 阅读 · 1 评论 -
然之协同系统漏洞利用汇总
Author:Vspiders首发地址:https://xianzhi.aliyun.com/forum/topic/2135前言前段时间在做然之协同系统代码审计,这里做个简单的总结。第一弹:SQL注入漏洞0x01 注入漏洞分析问题出现在/lib/base/dao/dao.class.php文件中的orderBy函数中,public function orderBy($order){ i...原创 2018-03-21 17:49:46 · 4744 阅读 · 2 评论 -
科威盒子导航系统代码审计过程总结
前言还是要从bugku上的一道实战题目说起,其实事后才发现,自己在错误的道路上越走越远,故有此文。0x01 官方思路题目地址:http://120.24.86.145:9006一波目录扫描,发现1.zip文件,果断下载解压,是网站源码。其中有包含flag的文件名flag-asd.txt,访问之即得答案。0x02 漏洞搜集事实上大多数人都会从这里开始,首先搜集科威盒子相关漏洞信息,主要有以下两个:S...原创 2018-04-15 11:35:31 · 1408 阅读 · 0 评论 -
齐博cmsv7.0后台getshell
前言预测下,VG要夺冠。加油0x01 漏洞分析此漏洞比较鸡肋,需要后台权限。漏洞原理很简单,这里就简单分析一下。漏洞出现在:inc/class.inc.php中的GuideFidCache函数里 /*导航条缓存*/ function GuideFidCache($table,$filename="guide_fid.php",$TruePath=0){ global ...原创 2018-04-05 13:05:06 · 3131 阅读 · 1 评论 -
update注入的一个小trick
0x01 Mysql特性Mysql中update语句的定义如下:UPDATE table_name SET field1 = new-value1, field2 = new-value2[WHERE Clause]但是偶然发现,field1与field2两字段可以同名,并且UPDATE之后的字段内容会以field2的赋值为准。如上图中,Link字段被赋值了两次,最终的该Link字段的内容以最后...原创 2018-06-18 18:50:41 · 343 阅读 · 0 评论 -
dedecms /plus/search.php SQL Injection && Local Variable Overriding
catalog1. 漏洞描述2. 漏洞触发条件3. 漏洞影响范围4. 漏洞代码分析5. 防御方法6. 攻防思考 1. 漏洞描述这个文件有两处注入漏洞1. $typeid变量覆盖导致ChannelTypeid被强制改变: 低风险2. $typeArr的本地变量覆盖注入+$typeid变量覆盖导致SQL注入: 高风险Relevant转载 2017-11-26 16:06:11 · 1000 阅读 · 0 评论 -
Mysql Order By 注入总结
前言最近在做一些漏洞盒子后台项目的总结,在盒子多期众测项目中,发现注入类的漏洞占比较大。其中Order By注入型的漏洞也占挺大一部分比例,这类漏洞也是白帽子乐意提交的类型(奖金高、被过滤概率小)。今天给大家分享下一些关于Order By的有趣的经验。何为order by 注入本文讨论的内容指可控制的位置在order by子句后,如下order参数可控:select * f转载 2017-10-22 15:40:10 · 2507 阅读 · 0 评论 -
齐博cms 7.0 漏洞分析
**0x01 原理分析**还是很早之前爆出来的漏洞,现在拿出来学习一下,参考阿里巴巴:https://security.alibaba.com/...漏洞发生在/inc/common.inc.php页面中。首先看这个函数:首先使用ini_get来获取php.ini中变量'register_globals'的值,而register_globals代表的意思是提交的原创 2017-08-18 13:53:53 · 5144 阅读 · 0 评论 -
PHP中单引号、双引号和转义字符
在PHP语言总,单引号与双引号的作用不尽相同。PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是:双引号会替换变量的值,而单引号会把它当做字符串输出。例如:php $name="string"; echo " 字符串" . '$name'; echo原创 2017-08-20 12:06:40 · 730 阅读 · 0 评论 -
MYSQL报错注入方法整理
1、通过floor暴错/*数据库版本*/SQLhttp://www.hackblog.cn/sql.php?id=1 and(select 1 from(select count(*),concat((select (select (select concat(0x7e,version(),0x7e))) from information_schema.tables l转载 2017-08-20 15:28:25 · 685 阅读 · 0 评论 -
PHP中$$的应用
PHP中$表示一个变量的声明,$value='test';表示变量value的值是test。而$$则好像是C语言中的指针,它指向一个变量值的一个变量。例如:$$value='a';这句话的意思就是首先取$value变量的值,为test,然后再将其值变成一个变量即表示为$test='a';<?php$value='test';$test='a';echo $$value原创 2017-08-22 10:45:05 · 473 阅读 · 0 评论 -
齐博分类系统漏洞分析
0x01 漏洞利用知识点1.代码执行2.变量覆盖3.文件包含0x02 漏洞分析首先在/fenlei1.0/do/jf.php文件中存在代码执行片段 $query2 = $db->query("SELECT * FROM {$pre}jfabout WHERE fid='$rs[fid]' ORDER BY list"); while($原创 2017-08-22 11:52:04 · 610 阅读 · 0 评论 -
那些强悍的PHP一句话后门
我们以一个学习的心态来对待这些PHP后门程序,很多PHP后门代码让我们看到程序员们是多么的用心良苦。强悍的PHP一句话后门 这类后门让网站、服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术,用普通的检测方法是没法发现并处理的。今天我们细数一些有意思的PHP一句话木马。利用404页面隐藏PHP小马: html>head>title>404 No转载 2017-08-22 11:54:06 · 222 阅读 · 0 评论 -
PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置
0x01 Xdebug安装参考:https://xdebug.org/docs/install并把xdebug.so移到/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/文件中0x02 XAMPP安装参考:https://www.apachefriends.org/zh_cn/in原创 2017-08-25 23:01:05 · 529 阅读 · 0 评论 -
【漏洞分析】Discuz X3.3补丁安全分析
0x01 漏洞分析漏洞发生在页面/upload/source/admincp/admincp_setting.php页面,看源码$settingnew = $_GET['settingnew'];if($operation == 'credits') {$extcredits_exists = 0;foreach($settingnew['extcredits'] as转载 2017-08-26 16:33:40 · 2415 阅读 · 0 评论 -
sycsec的一道审计题目
首先题目给出了源代码[php] view plain copy print?if(isset($_GET) && !empty($_GET)){ $url = $_GET['file']; $path = "upload/".$_GET['path']; }else{ show_source转载 2017-10-07 18:51:39 · 696 阅读 · 0 评论 -
PHP 函数漏洞总结
1.MD5 compare漏洞PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。 常见的payload有0x01 md5(str) QNKCDZO 240610708 s878926199a转载 2017-10-12 19:11:41 · 367 阅读 · 0 评论 -
php 单引号,双引号,反引号区别
PHP中单引号,双引号,反引号具有不同的含义,最大的几项区别如下:一、单引号中,任何变量($var)、特殊转义字符(如“\t \r \n”等)不会被解析,因此PHP的解析速度更快,转义字符仅仅支持“\’”和“\\”这样对单引号和反斜杠本身的转义;二、双引号中,变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,转载 2017-04-13 22:01:12 · 2379 阅读 · 0 评论