?
?
?
form表单上传文件
--文件上传,--php接收,处理
$_FILES['']['']
action --->提交给谁处理
move函数移到文件
---文件上传漏洞啊!!!
——ueditor 实现编辑器的加载
用了编辑器,就要用编辑器去验证了(编辑器没漏洞,那就没漏洞——他有问题就有问题,他没问题就没问题)
框架--人家封装好的代码(有没有漏洞不是你说了算)
---看网站用了什么,有没有漏洞。
?
?
--只能下载支持下载协议的,zip,exe,
http://dawdaf/fawf/down.php?filename=kkk.zip
咱 soft 目录 ——下有文件
--php数组取值
<h1>文件列表</h1> <?php getfilename(); ?> ? <h1>直连下载</h1> <form action="" method="post"> ? ?<input type="text" name="filename"> ? ?<input type="submit" value="下载"> </form> <?php @$name=$_POST['filename'];filenameurl($name);?>
//自定义文件直连下载 function filenameurl($name){ ? ?$url='http://'.$_SERVER['HTTP_HOST'].'/blog/soft/'.$name; ? ?#header("location:$url"); }
<?php $filename = $_GET['filename']; // 修改这一行设置你的文件下载目录 $download_path = "ficheros/"; // ?不能下载上一层目录的文件 if(eregi("\.\.", $filename)) die("抱歉,你不能下载该文件!"); $file = str_replace("..", "", $filename); // 包含 .ht 的文件不能下载 if(eregi("\.ht.+", $filename)) die("抱歉,你不能下载该文件!"); // ?创建文件下载路径 $file = "$download_path$file"; // ?判断文件是否存在 if(!file_exists($file)) die("抱歉,文件不存在!"); // 文件类型,作为头部发送给浏览器 $type = filetype($file); // 获取时间和日期 $today = date("F j, Y, g:i a"); $time = time(); // ?发送文件头部 header("Content-type: $type"); header("Content-Disposition: attachment;filename=$filename"); header("Content-Transfer-Encoding: binary"); header('Pragma: no-cache'); header('Expires: 0'); // 发送文件内容 set_time_limit(0); readfile($file); ?>
//自动义 文件传参下载 function filenameget($name){ ? ?$filename = $name; ? ?$download_path = "soft/"; ? ?if(eregi("\.\.", $filename)) die("抱歉,你不能下载该文件!"); ? ?$file = str_replace("..", "", $filename); ? ?if(eregi("\.ht.+", $filename)) die("抱歉,你不能下载该文件!"); ? // ?创建文件下载路径 ? ?$file = "$download_path$file"; ? // ?判断文件是否存在 ? ?if(!file_exists($file)) die("抱歉,文件不存在!"); ? // 文件类型,作为头部发送给浏览器 ? ?$type = filetype($file); ? // 获取时间和日期 ? ?$today = date("F j, Y, g:i a"); ? ?$time = time(); ? // ?发送文件头部 ? ? ? ?header("Content-type: $type"); ? ?header("Content-Disposition: attachment;filename=$filename"); ? ?header("Content-Transfer-Encoding: binary"); ? ?header('Pragma: no-cache'); ? ?header('Expires: 0'); ? ? // 发送文件内容 ? ?set_time_limit(0); ? ?readfile($file); }
——直连地址,传参地址——
必须是传参地址才能操作。
直连地址很稳巴巴(写死了)。
?
?
文件/文件夹
del
——html代码:
<h1>文件删除</h1> <?php getfilename(); ?> <form action="" method="post"> ? ?<input type="text" name="filename"> ? ?<input type="submit" value="删除"> </form> <?php @$name=$_POST['filename'];filedel($name);?> <h1>文件夹删除</h1> <?php getfilename()?> <form action="" method="post"> ? ?<input type="text" name="filedir"> ? ?<input type="submit" value="删除"> </form>
<?php //自定义文件文件夹读取函数 function getfilename(){ ? ?$dir=getcwd(); ? ?$file=scandir($dir); ? ?foreach ($file as $value){ ? ? ? ?if($value != '.' && $value != '..') { ? ? ? ? ? ?$arr[] = $value; ? ? ? ? ? ?echo $value.'<br>'; ? ? ? } ? } } //自定义文件删除函数 function filedel($name){ ? ?@unlink($name); } //自定义文件夹删除函数 function filedeldir($dir){ ? ?@rmdir($dir); } ?>
?
?
<h1>读取操作</h1> <form action="" method="post"> ? ?<input type="text" name="r"> ? ?<input type="submit" value="读取"> </form> <?php @$name=$_POST['r'];fileread($name);?>
//自定义文件文件夹读取函数 function getfilename(){ ? ?$dir=getcwd(); ? ?$file=scandir($dir); ? ?foreach ($file as $value){ ? ? ? ?if($value != '.' && $value != '..') { ? ? ? ? ? ?$arr[] = $value; ? ? ? ? ? ?echo $value.'<br>'; ? ? ? } ? } } ? //自定义文件读取函数 function fileread($name){ ? ?$f=fopen($name,"r"); ? ?$code=fread($f,filesize($name)); ? ?echo $code; ? ?fclose($f); ? }
?
?
<h1>写入操作</h1> <form action="" method="post"> ? 文件:<input type="text" name="w"> ? 内容:<input type="text" name="txt"> ? ?<input type="submit" value="写入"> </form> <?php @$name=$_POST['w'];@$txt=$_POST['txt'];filewrite($name,$txt);?>
//自定义文件写入函数 function filewrite($name,$txt){ ? ?$f=fopen($name,"a+"); ? ?fwrite($f,$txt); ? ?fclose($f); }
?
?
1-本地文件包含(包含本地服务器的文件)
2-远程文件包含(包含人家的)
包含代表执行,脚本执行。
包含!——————站在开发者角度,帮我省去一些代码。(数据库连接等等)
————Include
?
?
以上每个功能都有自己的函数方法,
直连地址没有变量,不能控制,(写死了)
变量要可控,(不然只能读写死的那个)
扫描,指纹识别
?
?
1-可控变量
2-特定函数——函数的多样化(同一个功能的函数有很多呀)
什么函数决定什么漏洞,可控变量是决定有没有漏洞的原因。