您现在的位置是:首页 > 正文

DVWA渗透测试演示(中)

2024-04-01 04:42:53阅读 2

续DVWA渗透测试演示(上):

六、DVWA之FileInclusion:

(1)实验原理:PHP文件包含漏洞的产生原因是在通过PHP函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预料之外的文件,就有可能导致意外文件泄漏,甚至恶意代码的注入。

(2)PHP文件包含漏洞分为:本地文件包含漏洞(LFI)和远程文件包含漏洞(RFI),能够打开并包含本地文件的漏洞,被称为本地文件包含漏洞。可以查看系统任意文件内容,如果具备一些条件,也可以执行命令。

如果PHP.ini的配置选项allow_url_fopen和allow_url_include为ON的话,则文件包含函数可以加载远程文件,这种漏洞我们称为远程文件包含漏洞。利用远程文件包含漏洞我们可以直接执行任意命令,在实际渗透测试攻击过程中,攻击者可以在自己的WEB服务器上放一个可以执行的恶意文件,通过目标文章存在远程文件包含漏洞来加载文件,从而实现执行任意命令的目的。

危险函数:include(),require(),include_once(),require_once()。

(3)测试流程:

调整安全级别为low:


进入文件包含页面:

参数page的值时include.php 可以尝试修改page的值。在dvwa的文件目录下存在一个PHPinfo.php,页面打开成功:

上面所展示的是本地文件包含上传,远程文件包含需要在PHP.ini中做修改配置:


查看验证源代码:



在低级别的时候没有对参数$file的值做任何处理直接执行了$file传过来的数值,从而导致任意文件包含。

(4)中等级别的File IncluSion

调整DVWA的安全级别为medium:

查看源代码:

可知,函数str_replace()函数对输入的$file进行了处理,将http和HTTPS进行了替换,从而无法执行远程文件。但是这种方式不全面,可以绕过:

a.     替换模式错误利用:

可以使用类似:

http://localhost/DVWA-1.9/vulnerabilities/fi/?page=httphttp://localhost/DVWA-1.9/vulnerabilities/fi/file1.php

从代码中可以看出对http进行了替换,但是不会将替换获得字符再进行替换,所以可以连续使用http://或者https://

b.     替换不区分大小写的错误利用:

从代码中课看出仅仅是对http和https进行替换,但是没有对HTTP或HTTPS进行替换,所以可以提交:

http://localhost/DVWA-1.9/vulnerabilities/fi/?page=HTTP://localhost/DVWA-1.9/vulnerabilities/fi/file1.php

方式绕过验证!

(5)高等级的验证:

调节安全级别为high:

验证源码:

此处使用了白名单模式验证,只允许include.php文件,在这中情况下几乎不存在绕过和利用的可能!


(6)文件包含漏洞利用

远程文件包含漏洞之所以能够执行命令,就是因为攻击者可以自定义被包含的文件内容。因此,本地文件包含漏洞要想执行命令,也需要最后一个攻击者能够控制内容的本地文件。目前主要有一下几种常见的技巧:

a.包含用户上传的文件。如果用户上传的文件中包含PHP代码,那么这些代码被

文件包含加载后将会被执行,至于成功与否,取决于功能的设计、上传文件有执行权限

b.包含日志文件。比如web服务器的访问日志文件,这是一种通用的技巧。因为几乎所有的网站都会将用用户的访问记录到访问日志中。因此,攻击者可以向web日志中插入PHP代码,通过文件包含漏洞来执行包含在Web日志中的代码。

c.Session文件。这部分需要攻击者能够控制部分Session文件的内容,PHP默认生成的Session文件一般存放在/tmp目录下。

 

七、DVWA之文件上传

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

这种攻击方式是最为直接和有效的,有时候几乎没有什么技术门槛。

“文件上传”本身没有问题,有问题的是文件上传后服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

(2)文件上传后导致的常见安全问题一般有:

a.上传文件是WEB脚本语言,服务器的WEB容器解释并且执行了用户上传的脚步,导致代码执行

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

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

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

 

(3)在low等级下上传文件:

可以查看low等级下的验证方式:


可以看到只要有文件上传就可以上传成功!


(4)medium等级的文件上传:

可以查看medium等级下的验证方式:

由源代码可以看出只能上传类型为“image/jpeg”的文件,并且限制了文件的大小,这里可以使用burp suite进行突破改防护:

上传PHP文件:

之后我们使用burp suite进行抓包:

之后我们把content-type:application/octet-stream改为:content-type:image/jpeg

之后再次上传:

上传成功!

只用high模式下照样如此,不过就是绕过的原理不一样而已,步骤差不多!


网站文章

  • [计算机网络]应用层协议,HTTP,SMTP,DNS

    [计算机网络]应用层协议,HTTP,SMTP,DNS

    应用层应用层协议原理网络应用程序体系结构规定如何在各种端系统上组织应用程序,由研发者设计客户机/服务器服务器:对外提供服务的一系列硬件和软件客户机:使用服务器提供的服务服务器7*24小时提供服务永久性...

    2024-04-01 04:42:47
  • VS 2005中使用C#创建及调用WebService完整实例

    关于WebService的概念及相关说明,在这里就不多说了,直接说如何实现IIS配置安装IIS(Windows 默认安装即可),确认可以从其他IP访问本机的默认主页,安装ASP.NET 2.0到IIS...

    2024-04-01 04:42:40
  • win10如何调整计算机时间同步,Win10系统如何设置时间同步间隔?修改时间同步频率的方法...

    win10如何调整计算机时间同步,Win10系统如何设置时间同步间隔?修改时间同步频率的方法...

    Win10系统如何设置时间同步间隔?如果系统时间并没有那么精确,偏差很多,你一定会去勾选“自动同步时间”的功能吧?!可是左等右等也不见调整时间,是这项功能没用吗?其实系统时间同步的频率是有间隔的,且这...

    2024-04-01 04:41:58
  • ES集群中节点与分片的区别

    ES集群中节点与分片的区别

    ES集群中节点与分片的区别 一开始我也搞混了,以为分片就是节点 节点:节点就是我们一个个的主机,你也可以理解为一个个的ES 分片:分片就是将原来存放在一个节点上面的数据进行分片,然后存放到不同的节点。...

    2024-04-01 04:41:50
  • android 从视频中提取音频及录音后合并到视频

    1.前段时间想开发一个app,用来提取mp4中的音频然后进行裁剪MediaExtractor extractor = new MediaExtractor();//新建提取器extractor.setDataSource(…);int numTracks = extractor.getTrackCount();for (int i = 0; i < numTracks; ++i) ...

    2024-04-01 04:41:44
  • MySQL可重复读和读已提交实现原理,深入理解MVCC。

    MySQL可重复读和读已提交实现原理,深入理解MVCC。

    1.隔离级别 MySQL中隔离级别分为4种,提未交读、读已提交、可重复读、串行化。同时MySQL默认隔离级别为可重复读。 图片 查看MySQL隔离级别 SELECT @@tx_isolation 设置...

    2024-04-01 04:41:03
  • Hadoop实训任务3:HDFS和MapReduce综合操作

    Hadoop实训任务3:HDFS和MapReduce综合操作

    Hadoop实训任务3:HDFS和MapReduce综合操作

    2024-04-01 04:40:56
  • Mybatis快速入门(二)

    Mybatis快速入门(二)

    第四章 动态SQL什么是动态SQL:同一个dao的方法,根据不同的条件可以表示不同的sql与语句,主要是where部分有变化,使用mybatis提供的标签实现动态sql的能力,主要讲if,where,...

    2024-04-01 04:40:50
  • 自学一年Java能找到工作吗? 最新发布

    自学一年Java能找到工作吗? 最新发布

    从入门到找到工作大概6个月的时间吧。前提条件是每天都有大块的时间,并且可以处于高效的学习状态当中,。——如果这句话没有劝退大家继续看后面的内容。根据经验来说,我们先找到Java学习目的,一般都是以就业...

    2024-04-01 04:40:04
  • python自动化测试框架学习 之 HTMLtestrunner

    python自动化测试框架学习 之 HTMLtestrunner

    前几天大致搭了个基于python的自动化测试框架: 其中reports是用来放生成报告的====== HTMLtestrunner 是基于unittest单元测试的html的一个库。 首先安装,安装的时候有点特殊,一般的python库直接pip install ... 即可,安装这个的时候我用这种方式试着安装了下“testrunner”和“html-testrunner” 后面发...

    2024-04-01 04:39:58