1. 程式人生 > >2020年下半年總結與計劃

2020年下半年總結與計劃

# 2020年下半年總結與計劃 ## 0x00 前言 2020年到如今已經到了十二月中旬,下半年所學的東西還是挺多,我覺得學習的一個效率也是有著飛躍般的提升。主要的原因可能在於我和我的好朋友(基友)住在一個房間,互相督促學習。其次的原因是在這互相督促中基本都擼到4點左右進行學習一個新的東西。包括生活中的一些小想法或者是在安全中的一些想法。還有的一點原因是因為在後面一段時間中團隊幾個人一起為我們幾個人學習的一個方向進行一個`頭腦風暴`,然後去定製化一些腦圖。後面對應腦圖瘋狂學習,並且輸出對應的文章。 ![](https://img2020.cnblogs.com/blog/1993669/202012/1993669-20201214071520729-25077522.png) 在學習內容中其實也會實時進行一個更新,目前也是完成大半了。 ## 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某一個類的時候,`需要思考`該類有什麼作用,實現一個什麼功能,在安全領域能實現有一個什麼功能。`如果不去思考,那必然也是枯燥