24龙年展望
今天是新年的第一个工作日,时间如流水般飞逝,匆匆而过。此刻,正是静心回顾过去一年的时刻,反思所经历的点滴,同时也是规划新的一年的计划与目标的良机。
兔年
过去一年总的来说学习了三样东西。
巩固java编程技术
契机是看了一篇内存马的文章,里面用到搜索算法。
因为大学的算法记忆有点模糊了,加之想加深一下对于java语言的掌握,年初的时候又去OJ上面刷了一些简单的算法,包括广度、深度优先算法。
java反序列化漏洞学习
去年跟着P神的文章学习了CB、CC链反序列化漏洞的相关之后,感觉掌握不扎实,2月底又重新学了一遍,使用搜索算法在Tomcat上写了执行java代码动态注册内存马、使用req获取resp来实现内存马回显,还审计了log4j、shiro这俩经典漏洞,编写了使用搜索算法在代码执行阶段修改shiro的key。并留下了一个高版本jndi的坑,今年得填一下了。
前端安全的入门
前端安全学习的契机是因为遇到过很多次某数的waf,导致burp不能重复攻击,再加上前端业务交互越来越多都使用js加密,所以才打算学习一下js。
在这里再次非常的感谢猿人学平台,js逆向的题质量真的很高。
js的学习之路大概包括以下内容:
- 前端dom的相关知识:dom加载顺序、dom树增删改查
- 原型链:原理链、原型对象的继承关系
- v8的Object相关函数学习
- jQuery的相关知识
- ast:ast还原混淆(if转switch、ob解密、合并控制流等)
目前掌握的能力有:
- 对极其复杂的js的阅读能力
- 对控制流平坦化的处理能力
- 对js中多种动态参数的处理能力
- 对于加密的参数可以使用扣代码的方式将加密js抠出来,并编写sqlmap脚本(参考base64脚本改就行)
- 能过某数6代最新vmp
在学习js的过程中,感触最深的就是学习新的知识、难的知识一定是需要花费大量的时间的,从alert(‘xss’)到绕过某数我花费了三个月的时间,在这三个月里,在翻越js逆向的山峰上遇见了一座有一座的大山,翻阅一座大山又会出现另一座大山,最难的是也不知还有多少坐这样的大山,所幸最后终于翻越过去了。
又加深了游褒禅山记的理解。
1 | 而世之奇伟、瑰怪,非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。 |
龙年
今年总的来说打算做两件事情,一是整合已有的知识能力形成自动化,二是学习新的知识。
整合已有能力
在攻防的过程当中信息收集很重要,为了更好的进行信息收集以及成果获取,目前我在开发指纹识别、漏洞扫描两个程序。
指纹识别
如何发送最少得数据包,在不进行poc探测的情况下进行指纹识别呢?目前打算使用三个逻辑:
一个是对index也就是首页进行识别,识别的方式有word、正则。
第二个是icon也就是logo进行hash比对。
第三个就是前两种方案识别不到的,进行简单探测,不进行任何poc测试。
目前实现了模版去识别这三种路径,以实现发最少得数据包,进行指纹识别。
漏洞扫描
漏洞扫描是仿照这nuclei的模版逻辑重新编写的发包器,网上有很多扫描器如nuclei,fscan、xray等等,重新造轮子的原因是打算形成自己的漏洞库,以及如果要实现自动化渗透,发最少的数据包,做准确的检查,自己写的工具缝合起来应该会简单一些。目前还在做测试。
自动化渗透的瞎想
我们使用扫描器比如去扫一些waf站点的时候,可能会被拦截,例如某数6,如何实现自动化渗透器,我觉得应该是这样的。
如果要将各个阶段的功能缝合起来,如爬取ICP资产信息、子域名收集、端口服务探测、搜索引擎API调用,WAF绕过,如果要加新功能还是自己造轮子可控一点。
当然扫描器也有不足点,对于表单数据、自定义web应用路径如/test/,可能就需要爬虫引擎获取path和表单,当然burp插件也是个很不错的选择,今年打算把burp插件开发这个坑也填一下。
学习新的知识
现在还没学的有:
- 常规和极端环境(纯净不出网最小化docker)下不同容器系统命令执行、java代码执行如何注入内存马。
- JDBC攻击
- 密码学
- 云渗透也没学
- CODEQL
- C3P0利用链,以及其他的链
- Groovy依赖和利用链
- Fastjson各个版本
- ldap高版本绕过