ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

这几场CTF赛后总结

2021-09-25 11:00:20  阅读:683  来源: 互联网

标签:__ 协议 netdoc SSRF xxx CTF file 几场 赛后


失踪人口回归

打CTF这么长时间了弟弟还是很菜呜呜呜,
这东西知识点多而且杂,还是要经常总结一下的,希望自己以后能多进步一点,进步地快一点。


一、PHP序列化字符串类名大小写不敏感问题

PHP中的变量名还有常量名是区分大小写的,但是函数名类名不区分


二、【长城杯web3】吐了做不出来但是初次手搓opcode搞一手Pickle变量覆盖

参考两篇文章学习pickle opcode
pickle反序列化初探
pickle反序列化的利用技巧总结

web3原题里面有一个显示源代码的,就open(__file__).read()

本来以为__file__这个变量就相当于写死了,但是后来在第二篇文章里面摸摸__main__摸出了东西

太菜了,昨晚搓opcode搓到一点还没搓出来,今天早上终于搓出来了。
在这里插入图片描述
重点就是最后这个s(小写)指令
在这里插入图片描述

得注意的是,在实际的操作中,这个key-value在栈上的顺序是反过来的:最上面的是value,下面的是key。
在这里插入图片描述
应用文件目录下面放一个flag.txt
在这里插入图片描述
在这里插入图片描述
还就那个成功

如果有大佬觉得太小儿科,弟弟初学pickle别骂弟弟呜呜呜


三、【长城杯】java_url 知识点

P神知识星球里有这么个知识点

new URL("url:file://xxxxxxx")
等价于
new URL("file://xxxxxxx")

提一嘴,如果是windows系统下,那么路径就应该是:

file:/盘符:/xxxxxxx

或者把前面的url:换成类似%00%0a这样的空字符也是可以过的。

三续、扩展SSRF知识点

1.netdoc 协议

What is the SSRF vulnerability (Server Side Request Forgery)? 一文中介绍到了 netdoc 协议
在这里插入图片描述
就像图上作者所说的,如果简单的 file 协议就能读到文件,那对攻击者(倒不如说是CTFer)来说,就太轻松了。在最后他介绍道,在java的环境下,netdoc协议也可以和前者发挥同样的作用。

但是经过测试,我发现netdoc协议的使用是有限制的,在JDK 9之后,netdoc协议将会失效。
消息来源:https://bugs.openjdk.java.net/browse/JDK-8176351
在这里插入图片描述
在JDK 9里面会报MalformedURLException,而在我的JDK 13的测试环境下,报的是:

unknown protocol:netdoc

证明netdoc协议在后面版本已经被完全废除。

2. jar协议

jar协议在SSRF里一般拿来获取压缩文件里面的内容

jar:file:/xxxxx/xxx.zip!/xxx.xxx

在这里插入图片描述

(flag写得逼真点拿来YY)

3. IP地址的trick

ctfshow上SSRF专题里有关于IP的tricks,看了下羽师傅写的wp,等价本机地址的格式有:

  • 127.1
  • 127.0.1
  • 0.0.0.0 (Linux)
  • 0 (Linux)

在第一点的参考文章里也写到了这一点:
在这里插入图片描述
总而言之,就是IP地址的每个数字部分都可以用八进制、十进制和十六进制书写,三者混用也没有关系,而且整条IP转换成无符号整数也不影响使用。

图片中的IP地址我在Windows下ping过了,可以用。

三、【天翼杯】redis SSRF

1.基本知识

redis通信使用RESL协议,该协议序列化后的格式如下:

  • +xxx 加号后面为简单字符串类型,即原文的Simple Strings 类型
  • -xxx 减号后面为错误类型,即原文的error类型
  • :xxx 冒号后面为整数类型,即原文的Integer类型
  • $xxx 美元符号后面为主体字符串的长度,在\r\n之后为主体字符串(自己翻译的),即原文的Bulk Strings
  • *xxx 星号后面为数组的长度,在\r\n之后为数组的内容,即array类型内容

redis通信的请求和响应中,每条命令或声明都以\r\n结束。

2. 认证和加载外部模块

认证部分在菜鸟教程中的Redis 连接版块中有介绍到:
在这里插入图片描述
那么在实际环境中对远程redis服务器请求(socket)如下内容即可进行认证:

AUTH 你的密码\r\n

在认证完成后,即可利用module load命令(Redis 4.x后)加载外部扩展(即so库),之后便可执行对应的命令,这个内容在WP里有,有兴趣的师傅们可以搜一下EDI的天翼杯WP。

未完待续

本来还想复现下谷歌上搜不到的CVE-2019-14439,有点晚,先写这么多吧。
CTFer们一起加油!
Hack the planet!

标签:__,协议,netdoc,SSRF,xxx,CTF,file,几场,赛后
来源: https://blog.csdn.net/qq_17696915/article/details/120462205

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有