1、file_put_contents()函数:众所周知此函数是将一个字符串写入至文件中。

  

  看到此函数说明当传入数据为数组时,会被PHP强制转换为字符串,因此会绕过正则达到getshell的目的。

<?php
$test = [1,2,3,4,5];
var_dump($test);
$test1 = (string)$test;
print_r("string is :" .$test1);
var_dump($test1);
?>

  以上代码可以看到被强制转换数据类型后字符串的值

  

  可以清楚的看到被强制转换后字符串的值为:Array、故此可以绕过部分过滤正则

  例如:

<?php
$test = $_GET['test'];
if(preg_match('/[<?]/',$test)){
die("error");
}
file_put_contents('shell.php',$test);
?>

  首先将test的值设置为字符串:

    

  可以看到为错误,并未写入数据,此时再将test的值变为数组:

  

  此时虽然出错,但恶意数据已近被写入至文件中:

  

  

最新文章

  1. 開博客了, 因為搞Delphi 開發的關於Delphi學習
  2. POJ 3414
  3. hibernate内部测试题(附赠答案)
  4. SPI线协议详解
  5. httpwebrequest 服务器提交了协议冲突. section=responsestatusline
  6. galera cluster DDL节点间状态不一致的问题
  7. WiFi QC 自动测试:Qt控制无线路由器
  8. MySQL并发调优和IO调优
  9. Netty4.x中文教程系列(一) 目录及概述
  10. Java 判断操作系统类型(适用于各种操作系统)
  11. list 操作
  12. VC6 鼠标钩子 最简单样例
  13. JQUERY省、市、县城市联动选择
  14. JS中判定问题
  15. 架设WIN32汇编程序的开发环境
  16. jingtai ip
  17. sed进阶N;P;D
  18. Java 获取客户端ip返回127.0.0.1问题
  19. day39 mysql数据库基本操作
  20. C# 往线程里传参数的方法总结

热门文章

  1. MathType如何输入微分上的点
  2. JDBC事务提交机制以及解决方案
  3. dubbo与zk
  4. LaTeX中的表格
  5. apply 、call 以及 bind 的使用和区别
  6. Spring Cloud 学习 (九) Spring Security, OAuth2
  7. 关闭Win10窗口拖动到桌面边缘自动缩放功能
  8. 学习PKI技术【理论+实战】
  9. ERP费用报销操作与设计--开源软件诞生31
  10. upload 注意php远程安全模式屏蔽函数