加入渗透小组后的首次任务是搭一个靶机并进行提权,由于最近的事情比较多,拖到现在,给队友和学长先说一声抱歉。

进入DVWA

由于本次渗透训练的主要目的是文件上传,所以没有配置数据库,下载配置这一步由我的队友完成了。首先打开服务器的dvwa页面,是一个登陆的界面。
一次对于DVWA上传漏洞的渗透练习
之前配的账号密码有些多,忘记是什么了,试了几个不对,想到前一阵刚学的burp suite,不如用一下BP**,反正密码肯定很简单。

首先得登陆进去

打开代理,打开BP,随便输入一个用户名和密码进行抓包
一次对于DVWA上传漏洞的渗透练习
话不多说,直接send to intruder

使用最基本的password字典**,得到密码password

一次对于DVWA上传漏洞的渗透练习
可以看出这个返回的是index.php而不是login.php。

低难度的文件上传

首先选择安全难度
一次对于DVWA上传漏洞的渗透练习
从low开始,查看源码


<?php 
    if (isset($_POST['Upload'])) { 

            $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/"; 
            $target_path = $target_path . basename( $_FILES['uploaded']['name']); 

            if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) { 
                 
                echo '<pre>'; 
                echo 'Your image was not uploaded.'; 
                echo '</pre>'; 
                 
              } else { 
             
                echo '<pre>'; 
                echo $target_path . ' succesfully uploaded!'; 
                echo '</pre>'; 
                 
            } 

        } 
?>

从源码看出根本没有过滤,只要你传进来的文件不为空即可。于是直接上传木马。

一次对于DVWA上传漏洞的渗透练习
这是之前写好的一句话木马,由于没有过滤,直接上传成功并返回了路径,这是再好不过了。

漏洞利用

在low的安全级别下直接上传成功并返回路径,直接启动大名鼎鼎的中国菜刀。额,这里菜刀出了点问题,启动中国蚁剑
一次对于DVWA上传漏洞的渗透练习
把自己上传的木马进行连接,拿到webshell,获得文件读写权限。
一次对于DVWA上传漏洞的渗透练习

其实这个服务器的ssh正好在本次任务ddl的时候崩了,这次渗透测试的靶机就是用的之前留的webshell来进行配置的。。。。。

中难度的文件上传

首先设置dvwa的安全级别为medium。源码审计一下。

<?php 
    if (isset($_POST['Upload'])) { 

            $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/"; 
            $target_path = $target_path . basename($_FILES['uploaded']['name']); 
            $uploaded_name = $_FILES['uploaded']['name']; 
            $uploaded_type = $_FILES['uploaded']['type']; 
            $uploaded_size = $_FILES['uploaded']['size']; 

            if (($uploaded_type == "image/jpeg") && ($uploaded_size < 100000)){ 


                if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) { 
                 
                    echo '<pre>'; 
                    echo 'Your image was not uploaded.'; 
                    echo '</pre>'; 
                     
                  } else { 
                 
                    echo '<pre>'; 
                    echo $target_path . ' succesfully uploaded!'; 
                    echo '</pre>'; 
                     
                    } 
            } 
            else{ 
                echo '<pre>Your image was not uploaded.</pre>'; 
            } 
        } 
?>

审查源码发现有一行中有过滤
if (($uploaded_type == "image/jpeg") && ($uploaded_size < 100000))
其中限制了文件格式必须为’image/jpeg’并且不能太大,这可以尝试用burp修改数据报的文件格式。
(这里我的火狐出了点问题,只能用谷歌边写博客边做测试,然后写一行博客换一下代理,十分麻烦)

一次对于DVWA上传漏洞的渗透练习
这个是使用BP抓到的数据包,在黄标处改成image/jpeg就可以上传成功。
一次对于DVWA上传漏洞的渗透练习
一开始我源码没看清楚,一直以为是image/png,找了半天不知道错误在哪里,emmmmm。

这个上传也是返回了路径,并且是直接上传的php文件,之后的漏洞利用于第一个low级别的方法相同,不再赘述。

high级别的文件上传

高级的安全下,我经过一些尝试果断放弃,开始阅读WP,一开始我先用00截断,发现php版本不够低,没有效果,于是阅读大佬们的WP,发现可以用到文件包含的漏洞。

首先制作一张内涵图。
一次对于DVWA上传漏洞的渗透练习
直接用cmd中的copy命令,或者直接用记事本打开图片,把小马赋值到最后就行,这里的图片最好小一点,不然记事本打开很慢。制作好的图片是这个样子。最后一行加入了木马。
一次对于DVWA上传漏洞的渗透练习
这里直接上传,成功绕过,现在的问题就是怎么用这个漏洞,由于之前搭的靶机出现了奇奇怪怪的毛病,我在本地的wamp上继续完成后续的渗透实验。
一次对于DVWA上传漏洞的渗透练习

这里同样将图片上传成功。
一次对于DVWA上传漏洞的渗透练习
使用中国蚁剑进行连接
一次对于DVWA上传漏洞的渗透练习
额,发现这里是IANA保留地址,就是私人的地址。中国蚁剑毕竟是一个开源项目,带有 gov,edu等的webshell都不能连接,理论上如果是正常的靶机,这个时候已经可以连接了。

实验总结

这次渗透实验看似十分简单,但在过程中出现了很多奇奇怪怪的问题,包括服务器的各种毛病,还有自身技术不过关等等。不过最后勉强拿到webshell算是完成实验。

  • 通过本次实验接触了web服务器的搭建,熟悉了一些基本的Linux文件管理操作。
  • 通过本次实验对文件上传漏洞以及一些简单的绕过更加了解,之后的CTF中如果遇到相应的题目可以又更多的思路。
  • 通过蚁剑,达到webshell的连接和利用,熟悉蚁剑的基本操作。
  • 如果在真正的生产环境中进行渗透,肯定不会返回上传木马的路径,这可能去猜解文件路径,或者于sql注入结合拿到webshell。
  • 其次,真实的生产环境中可能还会滤过木马中的eval等关键字符,这就导致小马可能上传不了,可以通过base64或者url编码尝试
    这些在之后的学习中可以练习。

相关文章: