2020年到现在已经到了十二月中旬,下半年所学的东西仍是挺多,我以为学习的一个效率也是有着飞跃般的提高。主要的缘由可能在于我和个人好朋友(基友)住在一个房间,互相督促学习。其次的缘由是在这互相督促中基本都撸到4点左右进行学习一个新的东西。包括生活中的一些小想法或者是在安全中的一些想法。还有的一点缘由是由于在后面一段时间中团队几我的一块儿为咱们几我的学习的一个方向进行一个头脑风暴
,而后去定制化一些脑图。后面对应脑图疯狂学习,而且输出对应的文章。java
在学习内容中其实也会实时进行一个更新,目前也是完成大半了。web
其实都知道今年并很差过,因为疫情的缘故有一个多月也是在家办公。而在这期间为个人Java学习的基础打下了一些基础。在这是将Java的一些基础其中包括JavaSE、Javaweb、以及SSM框架这些给刷了一遍。 而在疫情隔离之后,就是hvv。而在期间今年担任的是防守队,而在这期间也是学习了Java代码审计,成果是一个sql注入和两个xss。其实在这些相似于攻防演练蓝队都比较划水,大体是到4点左右没事件了,就直接打瞌睡。可是我以为并不能由于划水而划水
,而个人作法是查看其余师傅们的代码审计文章,而且查询开发资料,了解一个漏洞在Java中的产生过程和关键产生漏洞的一些类。那么了解了这些后,有开发基础的状况下,就能够对一套源代码进行一个代码审计。而我后面由于条件比较苛刻,就算能审计代码,可是在审计完成后,须要对该审计出来的漏洞进行验证,须要使用到一些payload。可是在蓝队划水
工做中,链接的是客户的内网环境,里面会有不少监测设备,并且这些都是全内网环境,不出网。因此验证漏洞和查询资料都不能去进行一个操做,而个人解决方式是开虚拟机而后手机开启热点,虚拟机网络链接热点。算法
我以为这是一个很好的学习(划水)机会,得将该时间给利用起来。在这期间是将这些漏洞在Java中产生原理给理了一遍,在此为代码审计打下基础。sql
后面发现网上不多会有Java的源代码,有一次在一次渗透中,利用信息泄露,打下的一个数据库,可是他的加密的是一个DES的加密(一开始不知道,一开始觉得是AES)。查询到一些指纹信息发现他的CMS后,网上进行了一个下载,而后进行审计。开始兴致大起,下了500m的源码后才发现,这压根就不是源代码。而是编译后的class文件。当时想着既然是编译后的文件公布出来为啥不能直接打包成war包呢?可是仍是得硬刚。放入JD-GUI进行反编译后,查看到伪代码,而后查询加密方式。后来是在一个他们开发中封装的jar包里面的一个工具类获得这个加密模式。由于在里面就定义了3DES的加密方式,这个方式会被插入一些数据的方法给调用,从而定位到该算法。而后拿到该密钥进行本地的解密,获得该数据结果。shell
从中不得不说的是没有源代码,没法直接快捷的方式进行跳转,只能去进行全局搜索,而后查找调用。数据库
因此后面的重点放在了反序列化漏洞分析这块。在hvv的后面几天就在分析这个URLDNS利用链以及实际运用场景。json
其实在这段时间中,发现通常作这方面的分为两类人:一种是为了应付工做,一种是真正的喜欢这么一个东西,想去这方面作得更好。安全
若是是应付工做的话,那么我以为这是一个痛苦的。网络
我以为若是喜欢这么一个东西的话,就应该作得更好,再者若是喜欢的东西,变成一个工做后,难道不该该作到更好?框架
其实在我接触到Java是在7月份开始学习,在9月下旬左右开始进行代码审计。而我接触到Java安全领域是在10月份左右,接触的第一个知识点貌似是ClassLoader
类加载器。
后面就是一些利用链的分析,在这里也是为个人一个漏洞调试分析奠基一个很是好的基础。因为第一个调试这些cc链,加上十月一假期,CC1这个链分析了10天,可是在后面摸清楚套路之后如鱼得水。后面就是学习了JNI、javaAgent等技术,在学习中途发如今安全中不少有意思的用途。在此先略过不讲。
在期间也开发了一些小工具,如webshell管理工具,可是目前只实现了一个命令执行,传输双向加密,随机ua、gui界面功能。动态密钥AES+HEX加密
最后面就是漏洞分析了,前天分析了Shiro 550 的漏洞,也是颇有意思,该漏洞就是Cookie里面某字段的值,而后进行AES解密后base64解密,最后进行反序列化。而在Shiro 里面自带cc的组件。
其实在Fastjson反序列化漏洞的分析也是写了一些,后面是由于各类缘由,没继续去进行分析。想法是等分析完Weblogic漏洞后,在继续编写该文。
关于明年的计划的话,其实我是想将weblogic和Fastjson反序列化漏洞和St2的表达式注入这些具备表明性的漏洞分析完成。
准备后面回去撸Java开发知识,好比SSH框架、Stringboot这些由于在以前就简单过了一遍,某些知识点可能不太了解。将代码审计的知识作一个更新。包括war包的审计这块,若是要作逆向如何更好的方式进行代码审计。
想着后面代码功底深了事后,去进行一个工具的开发,之前想实现或者是团队小伙伴提出的想法去作一个实现。具体想法在此不作赘述。好比burp的插件开发,好比一些反序列化漏洞的集合。
其实我在撸这个Java以来也是会前面有一段时间,很是很是的枯燥。可是学习中间一段时间后,发现不少有意思的点就没那么枯燥了,反而会更感兴趣。有一个不得不提的点是在学习中不能为了学习而学习
,由于这必然是枯燥的。好比学习到一个Java某一个类的时候,须要思考
该类有什么做用,实现一个什么功能,在安全领域能实现有一个什么功能。若是不去思考,那必然也是枯燥的
。