[WEB安全/PHP漏洞利用]PHP拼接

PHP动态拼接

函数的变量名调用法1

$a = "phpinfo";
$a();     //相当于phpinfo(),$a调用函数,()传参

函数的变量名调用法2

$type = $FILE[$type]; 
$a = imagecreatefrom{$type};   //假如pic的类型为png,则拼接后的函数名为imagecreatefrompng
$a($pic);                      //动态调用函数
							   //可以在文件上传的场景当中应用,根据文件类型调用相应的函数,也可以拼接小马进行绕过。

补充1【$_FILE】:

PHP中,使用$FILES变量获取由HTTP POST/GET方式上传而提交的数据。

$_FILES变量是一个数组,包括以下几个成员:

$_FILES[‘uploadfile’][‘name’]:客户端上传文件的原名称
$_FILES[‘uploadfile’][‘type’]:文件的MIME类型,需要浏览器提供该信息的支持,如"image/gif"
$_FILES[‘uploadfile’][‘size’]:已上传文件的大小,以字节为单位
$_FILES[‘uploadfile’][‘tmp_name’]:文件上传后在服务器端存储的临时文件名
$_FILES[‘uploadfile’][‘error’]:与该文件上传相关的错误代码

补充2[花括号]:

1.界定变量名的边界

echo ({$type}one);    //为了防止解释器解析$typeone,而不是将变量名单独解析$type 
//可以用来向字符串当中引入实时获取的变量,拼接字符串或新的变量

2.指定字符串当中的单个字符

$string = "iamgood";
$string{1} = 't';
//结果输出为itmgood,仅在双引号中变量名会被引用,单引号中无效

3.变量间接引用时对操作对象进行界定

${$arr1[1]}
${$arr1}[1]
//两种写法是不同的

补充3[单双引号]:

''中的内容在PHP中单引号会被直接解析为字符串(包括\n,变量等)
""当中的变量会优先引用,然后在进行其他的操作

一般的拼接方法:

$a = "php";
$b = "info";
$c = $a.$b;
$c();      //拼接结果为phpinfo()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值