2020年下半年总结与计划

2020年下半年总结与计划0x00前言2020年到如今已经到了十二月中旬,下半年所学的东西还是挺多,我觉得学习的一个效率也是有着飞跃般的提升。主要的原因可能在于我和我的好朋友(基友)住在一个房间

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

2020年下半年总结与计划

0x00 前言

2020年到如今已经到了十二月中旬,下半年所学的东西还是挺多,我觉得学习的一个效率也是有着飞跃般的提升。主要的原因可能在于我和我的好朋友(基友)住在一个房间,互相督促学习。其次的原因是在这互相督促中基本都撸到4点左右进行学习一个新的东西。包括生活中的一些小想法或者是在安全中的一些想法。还有的一点原因是因为在后面一段时间中团队几个人一起为我们几个人学习的一个方向进行一个头脑风暴,然后去定制化一些脑图。后面对应脑图疯狂学习,并且输出对应的文章。

2020年下半年总结与计划

在学习内容中其实也会实时进行一个更新,目前也是完成大半了。

0x01 絮絮叨叨

其实都知道今年并不好过,由于疫情的缘故有一个多月也是在家办公。而在这期间为我的Java学习的基础打下了一些基础。在这是将Java的一些基础其中包括JavaSE、Javaweb、以及SSM框架这些给刷了一遍。 而在疫情隔离以后,就是hvv。而在期间今年担任的是防守队,而在这期间也是学习了Java代码审计,成果是一个sql注入和两个xss。其实在这些类似于攻防演练蓝队都比较划水,大致是到4点左右没事件了,就直接打瞌睡。但是我觉得并不能因为划水而划水,而我的做法是查看其他师傅们的代码审计文章,并且查询开发资料,了解一个漏洞在Java中的产生过程和关键产生漏洞的一些类。那么了解了这些后,有开发基础的情况下,就可以对一套源代码进行一个代码审计。而我后面因为条件比较苛刻,就算能审计代码,但是在审计完成后,需要对该审计出来的漏洞进行验证,需要使用到一些payload。但是在蓝队划水工作中,连接的是客户的内网环境,里面会有很多监测设备,而且这些都是全内网环境,不出网。所以验证漏洞和查询资料都不能去进行一个操作,而我的解决方式是开虚拟机然后手机开启热点,虚拟机网络连接热点。

我觉得这是一个很好的学习(划水)机会,得将该时间给利用起来。在这期间是将这些漏洞在Java中产生原理给理了一遍,在此为代码审计打下基础。

后面发现网上很少会有Java的源代码,有一次在一次渗透中,利用信息泄露,打下的一个数据库,但是他的加密的是一个DES的加密(一开始不知道,一开始以为是AES)。查询到一些指纹信息发现他的CMS后,网上进行了一个下载,然后进行审计。开始兴致大起,下了500m的源码后才发现,这压根就不是源代码。而是编译后的class文件。当时想着既然是编译后的文件公布出来为啥不能直接打包成war包呢?但是还是得硬刚。放入JD-GUI进行反编译后,查看到伪代码,然后查询加密方式。后来是在一个他们开发中封装的jar包里面的一个工具类得到这个加密模式。因为在里面就定义了3DES的加密方式,这个方式会被插入一些数据的方法给调用,从而定位到该算法。然后拿到该密钥进行本地的解密,得到该数据结果。

从中不得不说的是没有源代码,无法直接快捷的方式进行跳转,只能去进行全局搜索,然后查找调用。

所以后面的重点放在了反序列化漏洞分析这块。在hvv的后面几天就在分析这个URLDNS利用链以及实际运用场景。

其实在这段时间中,发现一般做这方面的分为两类人:一种是为了应付工作,一种是真正的喜欢这么一个东西,想去这方面做得更好。

如果是应付工作的话,那么我觉得这是一个痛苦的。

我觉得如果喜欢这么一个东西的话,就应该做得更好,再者如果喜欢的东西,变成一个工作后,难道不应该做到更好?

0x02 下半年学习复盘

其实在我接触到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漏洞后,在继续编写该文。

0x03 计划

漏洞分析

关于明年的计划的话,其实我是想将weblogic和Fastjson反序列化漏洞和St2的表达式注入这些具有代表性的漏洞分析完成。

代码审计

准备后面回去撸Java开发知识,比如SSH框架、Stringboot这些因为在之前就简单过了一遍,某些知识点可能不太了解。将代码审计的知识做一个更新。包括war包的审计这块,如果要做逆向如何更好的方式进行代码审计。

工具开发

想着后面代码功底深了过后,去进行一个工具的开发,以前想实现或者是团队小伙伴提出的想法去做一个实现。具体想法在此不做赘述。比如burp的插件开发,比如一些反序列化漏洞的集合。

0x04 总结

其实我在撸这个Java以来也是会前面有一段时间,非常非常的枯燥。但是学习中间一段时间后,发现很多有意思的点就没那么枯燥了,反而会更感兴趣。有一个不得不提的点是在学习中不能为了学习而学习,因为这必然是枯燥的。比如学习到一个Java某一个类的时候,需要思考该类有什么作用,实现一个什么功能,在安全领域能实现有一个什么功能。如果不去思考,那必然也是枯燥的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119895.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm激活码 2021(注册激活)

    (pycharm激活码 2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1435QFILVV-eyJsaWNlbnNlSWQi…

    2022年3月30日
    363
  • GOGS代码仓库迁移教程

    GOGS代码仓库迁移教程前言安装复制原始仓库数据修改用户配置启动 gogs 关键步骤更新 authorized keys 和 HooK0 前言 GOGS 部署到本机比较方便 这次遇到需要将 GOGS 从 win10 系统迁移到安装 UbuntuMate 的树莓派上面 在此记录下迁移教程 1 安装树莓派需要下载对应的版本 raspi2 armv6 zip 下载地址 https dl gogs io 下载后解压到自定义目录 如

    2025年6月24日
    1
  • 重定向与转发的区别_响应重定向和请求转发的区别

    重定向与转发的区别_响应重定向和请求转发的区别重定向和转发的区别: 重定向和转发的区别就是请求服务器几次, 如果请求服务器地址没有变说明这是一次请求请求在自己的服务器里面流转这就是转发这是服务器行为。 如果请求服务器地址变了,说明这是请求了二次,第二次请求由客户端流浪器负责,在多台服务器之间流转这就是客户端行为。 重定向: 1、重定向的速度比较慢,需要跨越服务器 2、重定向是两次不同的请求 3、重定向是执行重定向之后的代码 4、地址栏的地址是会发生变化的 5、重定向不包含项目的根目录 6、重定向是会就是.

    2022年9月8日
    3
  • python logging模块

    python logging模块

    2022年3月8日
    43
  • TCP三次握手和四次挥手详解(面试常见问题)

    TCP三次握手和四次挥手详解(面试常见问题)  大概两个月前,一位朋友在面试360集团时,在面试过程中被问及TCP三次握手和四次挥手的相关知识,他当时只知道大概,但当时面试官问他TCP三次握手过程中发送的数字是多少,他一下子就懵住了,因为这也是他第一次参加面试,准备的并不充分,也根本没想到会问到具体发送的数字,结果显而易见,最后被刷了。由此可见,TCP三次握手和四次挥手在面试中是面试官非常喜欢的问题,所以掌握这个知识是十分重要的。  T…

    2022年6月16日
    27
  • 程序员如何学习量化交易,一文总结

    程序员如何学习量化交易,一文总结最近有位金融行业的朋友想把一个盈利能力很强的策略做成量化程序遇到问题,问题是这样的线程A在while(true)的循环里做条件判断,循环耗时1分钟。循环结束判断条件满足的时候调用交易接口下单建仓。想实现条件成立马上建仓,而不需要等待1分钟的循环。想通过多进程或者多线程方式,但两个线程不知道如何交互。对有经验的开发来说这样的逻辑很简单,只要通过线程通信的方式就可以实现。A线程判断到满足条件就发个消息给B线程,B线程while(true)等待消息就行。技术本身不复杂,只是没接触过编程的不知道还可以这么干

    2022年6月26日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号