切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
2012-12-2[复制链接]
发表于 2012-12-2 13:33:37 | 显示全部楼层 |!read_mode!
对于文件上传另外找了资料看
<?php

/*
* Programmer : Msn/QQ haowubai@hotmail.com (925939)
* www.php100.com Develop a project PHP - MySQL - Apache
* Window 2003 - Preferences - PHPeclipse - PHP - Code Templates
*/

if (is_uploaded_file($_FILES['upfile']['tmp_name'])){

$upfile=$_FILES["upfile"];

$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];


switch ($type) {
    case 'image/pjpeg' : $ok=1;
        break;
    case 'image/jpeg' : $ok=1;
        break;
    case 'image/gif' : $ok=1;
        break;
    case 'image/png' : $ok=1;
        break;
}

if($ok && $error=='0'){
move_uploaded_file($tmp_name,'up/'.$name);
echo "上传成功";
}
}


?>

<form action="" enctype="multipart/form-data" method="post" name="upform">
  上传文件:
  <input name="upfile" type="file">
  <input type="submit" value="上传"><br>
</form>

form action=""   没有指定上传的后台 所以用上面的。   我很好奇为什么PHP 预先会执行  
<?php   


>?
外面的代码 而且能成功
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
"multipart/form-data"是一种编码格式吧。   
method是方法的意思  
method="post"  应该是定义以某中方法上传吧  不知道说的对不对  求详解  
<input name="upfile" type="file">  type类型定义为file  按钮就会出现浏览   如果定义为test  那就没有浏览按钮
  <input type="submit" value="上传">  这一句定义一个按钮为上传吧
if (is_uploaded_file($_FILES['upfile']['tmp_name']))
我运行上面代码这句出错了
is_uploaded_file
判断上传MIME类型的文件函数
Notice: Undefined index: upfile



    $_FILES["file"]["name"] - 被上传文件的名称
    $_FILES["file"]["type"] - 被上传文件的类型
    $_FILES["file"]["size"] - 被上传文件的大小,以字节计
    $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
    $_FILES["file"]["error"] - 由文件上传导致的错误代码

上面代码 是一段比较简单的上传
教程里附带了一段更为复杂  的上传 各种限制的代码  
很容易懂  但感觉自己就没那思路写出那代码了

发表于 2012-12-2 17:59:21 | 显示全部楼层
你这代码没任何的问题(只要是符合定义的文件类型就不会出错的)
  1. switch ($type) {
  2.     case 'image/pjpeg' : $ok=1;
  3.         break;
  4.     case 'image/jpeg' : $ok=1;
  5.         break;
  6.     case 'image/gif' : $ok=1;
  7.         break;
  8.     case 'image/png' : $ok=1;
  9.         break;
  10. }
复制代码

上传的各种限制要尽量看,如果没任何限制就直接可以上传webshell了,

参见http://www.3g-sec.com/forum-56-1.html这里提到的上传漏洞
method="post"是规定表单已post的形式提交


附件: 你需要登录才可以下载或查看附件。没有帐号?加入Team

代码区

GMT+8, 2020-9-23 14:35

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部