dvwa小马上传大马php,集训第六天:文件上传漏洞

韩舒学姐(相当温柔)今天给我们讲解了文件上传漏洞,以及Anrwsord和Cknife等工具的使用。

上传的文件不进行限制,有可能会被利用于上传可执行文件、脚本到服务器上,并且通过脚本文件可以获得执行服务器端命令的能力

木马

根据语言分类,有PHP、ASP、JSP、ASP.NET等不同语言下的木马;根据作用分类,有大马和小马

PHP一句话木马:

ASP一句话木马:

ASP.NET一句话木马:

shell_exec()

通过环境执行命令,并且将完整的输出以字符串的方式返回

eval()

把字符串作为PHP代码执行执行a接收到的内容

Cknife(菜刀)

超级强大的网站管理工,分为客户端和代码两部分

只要将那简短的一句话代码放到网站上去就可以取得网站的权限

运行环境:安装了JRE1.7+环境的所有操作系统

主要功能:文件管理、虚拟终端、数据库管理

DVWA’s File Upload

low level的测试一下,源码中没有对任何文件格式进行过滤:

写出一句话木马

用菜刀连接的一句话木马:

直接在网页下通过GET的一句话木马:

在网页下用hackbar通过POST的一句话木马:

上传一句话木马直接在网页查到文件

75f0083ff396d35baef18361938e524e.pngget

36b5221c7c3e340687df6775699cf405.pngpost

Cknife连接

b9300a729d55958381ce55ef3783440e.png连接后可以得到目标服务器下所有文件

源码:

if (isset($_POST[‘Upload’])) {

$target_path =

DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";

//上传路径为../../hackable/uploads/

$target_path = $target_path . basename( $_FILES['uploaded']['name']);

//上传路径加上上传的文件名

if(!move_uploaded_file($_FILES['uploaded']['tmp_name'],$target_path)) {

//对是否上传成功做出判断,因此所有格式的文件都能上传

echo '

';

echo 'Your image was not uploaded.';

echo '

';

} else {

echo '

';

echo $target_path . ' succesfully uploaded!';

echo '

';

}

}

?>

文件上传漏洞检测

客户端javascript检测:通常在本地检测文件的扩展名

服务端MIME类型检测:通常检测的是Content-Type内容

服务端目录路径检测:通常根path参数相关的内容

服务端文件扩展名检测:通常检测跟文件extension相关的内容

服务端文件内容检测:检测文件内容是否合法或含有恶意代码

客户端javascript检测

在客户端使用js对不合法图片进行检查

绕过:

禁用页面js

先把文件改成符合条件的文件格式上传,在抓包,修改文件的后缀名

服务端检测绕过(MIME类型检测)

通过判断$_FILES[‘userfile’][‘type’]!=”imgae/gif”来保证上传的文件类型为gif

绕过:通过burp抓包,将原来的Content-Type类型改为符合要求的类型

Content-Type: application/octet-stream

application/octet-stream即为PHP文件的文件类型格式

服务端目录路径检测

上传路径为“/image/20160704”时,可以通过修改为“image/20160704/eval.PHP%00filename.gif”

通过%00截断最终导致存储的文件名为eval.PHP

服务端文件扩展名检测

分为黑名单检测和白名单检测

黑名单检测

接收上传的文件做对比,如果匹配到黑名单中的后缀名,则不允许上传

绕过:

后缀名大小写绕过,例如:将Burpsuite截获的数据包中的文件名“evil.PHP”改“evil.PHP”

名单列表绕过,尝试使用非黑名单内的后缀名,如PHP5,PHP7等

特殊文件名绕过(只适用windows,将文件名改为“evil.PHP.”或“evil.PHP”(注意这里有一个空格)。在windows下,不允许这样的命 名,所以会将.和空格自动去掉)。

0x00截断绕过:在上传的时候,当文件系统读到0x00时,会认为文件已经结束。例如:“1.PHP%00.jpg”,验证扩展名是“.jpg”,但写入的时候是“1.PHP”文件

白名单检测

接收上传的文件做扩展名匹配,匹配上的白名单中的扩展名的文件才能上传

绕过:

0x00阶段绕过

解析漏洞绕过:(1)apache解析文件名是从右到左识别扩展名,如“eval.PHP.jpg”,文件为PHP文件,不能解析jpg会向前解析PHP

(2)IIS6.0目录名包含“.asp、.asa、.cer”的话,则该目录下的所有文件都将按照asp解析。

(3)IIS6.0不解析;后面的,所以提交“evil.asp;.html”解析为asp类型

(4)Nginx解析漏洞:将PHP文件换成其他可以通过的文件后缀,访问的时候在后面加上“eval.PHP.jpg”,如“evil.jpg/.PHP”,“evil.jpg”会解析为PHP的格式

服务端文件内容检测

图像类文件内容检测

文件幻数检测(图片头格式检测):

(1)jpg内容头value= FF D8 FF E0 00 10 4A 46 49 46

(2)gif内容头value= 47 49 46 38 39 61

(3)png内容头value= 89 50 4E 47

绕过:在文件头后加上一句话木马就能绕过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值