小迪安全笔记-13

第13天:PHP开发-个人博客项目_文件操作类_编辑器_上传下载删除读写

1、文件删除

2、文件夹删除

#文件内容操作类-任意文件读取&写入

1、文件读取

2、文件写入

#文件包含-任意文件包含

1、本地文件包含

2、远程文件包含

#Web漏洞核心:

1、可控变量

2、特定函数-函数的多样化

文件上传类

首先搞个文件上传的页面,代码如下:


1
2
3
4
<form id="upload" action="" method="post" enctype="multipart/form-data" >
<input type="file" id="upload" name="upload" /> <br />
<input type="submit" value="Upload" />
</form>

文件上传的页面是搞好了,但是缺少接收和解析的代码来处理上传的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
//获取上传文件名
@$file_name=$_FILES['upload']['name'];
//获取上传文件类型
@$file_type=$_FILES['upload']['type'];
//获取上传文件大小
@$file_size=$_FILES['upload']['size'];
//获取上传文件临时文件名
@$file_tmpname=$_FILES['upload']['tmp_name'];
//获取上传文件是否错误
@$file_error=$_FILES['upload']['error'];
//变量前面加@不显示报错
echo $file_name."<hr>";
echo $file_type."<hr>";
echo $file_size."<hr>";
echo $file_tmpname."<hr>";
echo $file_error."<hr>";
if (@$file_error>0){
echo '上传出错!';
}
else{
move_uploaded_file(@$_FILES["upload"]["tmp_name"], "upload/" .
@$_FILES["upload"]["name"]);
echo "文件存储在: " . "upload/" . @$_FILES["upload"]["name"];
}
?>

随便找一个图片上传看看

上传文件回显的信息.jpg

看看文件夹

上传文件位置.jpg

编辑器

1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript" charset="utf-8"
src="../project/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8"
src="../project/ueditor/ueditor.parse.js"></script>
<h1>编辑器上传</h1>
<div>
<script id="editor" type="text/palin" name="bianji"></script>
</div>
<script type="text/javascript">
var ue=UE.getEditor('editor');
</script>

编辑器是类似于第三方的软件。直接调用别人的插件

文件下载

直接下载

直接下载的话,如果是zip之类的文件,可以直接下载,像php,txt文件,不会下载,只会去执行

传参下载

传参下载,类似于bp修改请求包,但是这样php源码文件可能被下载

文件删除

删除文件

function filedel($name) {

@unlink($name);

}

删除文件夹

function filedeldir($dir) {

@rmdir($name);

}

文件内容操作类

文件读取

function fileread($name){

$f=@fopen($name,”r”);//fopen函数用来打开一个文件或者url,mode的r代表”只读”

$code=@fread($f,filesize($name));//fread(读取的文件,读取到哪个位置)函数代表读取打开的文件,filesize代表返回文件的最大字节,

echo $code;

@fclose($f);//关闭打开的文件

文件写入

function filewrite($name,$txt){
$f=fopen($name,“a+”);//以读写方式打开文件
fwrite($f,$txt);//fwrite(写入的文件名,写入的内容)
fclose($f);

文件读取和文件写入都存在一个任意文件读写以及后门植入的风险。

文件包含

https://blog.csdn.net/huaz_md/article/details/137544497

本地

远程

web漏洞核心

可控变量

特定函数 -函数的多样化