如果作為一名滲透測試人員(乙方/甲方),應該如何提升自己的能力?滲透這種東西沒有徹底的有一個體系?那麼應該如何提升自己的能力,是朝一個方向前進嗎?比如代碼審計,或者安全開發,掃描器之類的.fuzz?還是說不斷挖src或者日站。還是說去學習pwn…等等。Emm提升自己可以換成如何有加工資的實力底氣。謝謝師傅們


謝邀,其實,我倒認為這個問題更應該你自己問自己。

對於web安全學習走到一定階段後,其實每個人都會有一個疑惑,想繼續向前走,卻完全迷失方向,道理很簡單,web應用的新增代碼量就那麼點,偏偏又是人滿為患的領域,所以,掌握更多的新漏洞只能增加你的經驗,卻不能帶給你本質上的提升。說難聽一點就是,除非碰到了一樣的漏洞,否則該搞不下的目標,你還是搞不下。

其實就我目前注意到的情況來看,就甲方和乙方的工作場景和需求來說。其實隨著安全行業的發展,相當多的滲透需求被甲方自己的內部團隊給解決了(騰訊雲鼎/阿里飛天九部/360的0kee等)

對於甲方自己的應急響應和滲透團隊來說,更多的是希望你充當一個從正面硬上的暴徒,把所有開發可能犯錯的地方進行輪番測試。這個時候你對白盒代碼審計的能力就非常的重要。因為比起你從一個點寫出一整套exp,他們更希望你能夠對整個邏輯有更深入的瞭解,把整個面的漏洞都盡量補上,補不上的,就交給waf吧。

作為國內最早幾個搞機器學習waf的人,我至今對它深惡痛絕。原因不多說,不過這東西忽悠一些領導挺好使的。

而期待乙方來解決自己安全問題的更多是一些剛準備上市,甚至規模更小的企業。對他們來說,很多時候你只需要做重複性工作而已。

也就是說,恐怕尤其在某些企業按照漏洞數量給合同定價的情況下,你更需要的是完成大量的安全開發工作(自動化掃描器)和增加自己知識面的廣度。避免一直在搞php/python相關的安全卻突然接到個全是java單子的尷尬。

所以說,這個時候你必須做出抉擇

你到底是享受入侵成功的快感,還是說享受高效的挖掘漏洞,或者是想更深入安全技術,探尋底層的奧祕?or 像問題描述中寫的,只是想要更多薪水?

如果是純粹享受hacking樂趣的人,我倒覺得不妨去一些專業red team,你會對怎麼樣高效的利用漏洞有更好的理解。

如果是享受高效的挖掘漏洞,就好好的做自動化工具和爬蟲,注意收集每天的新鮮poc並抽空寫exp放到掃描器裏。

如果像我這個強迫症一樣,不瞭解那些隱藏在各種奇技淫巧後的細節就徹夜難眠的話,可以考慮往邏輯漏洞/二進位的方向靠攏。說句實話,就算挖不出漏洞,瞭解了各大系統上的二進位漏洞利用方法,你也可以熟練的應用0.5day漏洞輕鬆的從對方的瀏覽器/文檔閱讀器得手。這年頭,就連app裏都要內置個瀏覽器。

如果單純想要更多薪水,就去做一些讓簡歷變得好看的項目,無論它有用與否,誠然,有被看穿的風險,但是這個行業的濫竽充數者超出你的想像。咦?想要更多薪水的話,為什麼要選擇安全行業呢。當然,這不是說我們不應該追求更好的待遇,而是希望能夠堅持技術的初心。

如果公司開出的價碼不夠。有能力作為底氣,也敢於跳槽。

當然,以上觀點純屬個人口胡。說實話,每當面對國內各位神仙打架,看到國外loki hardt, james forshaw,tavis等人成噸的挖掘系統/瀏覽器漏洞,我都覺得自己應該好好的沉下心,繼續學習知識,因為我啊,說不定也是濫竽充數的那個人呢。


謝邀,感覺自己配不上回答這個問題,因為在我的人生經歷中,安服是一個我不喜歡的職業,在很多次面臨抉擇的時候我都選擇繞著走。

所以我就單純的從Web方向上聊聊看。

對我來說我感覺的學習過程中有幾個關鍵點給我很大的感觸。

1、應該是大三左右的時候,我開始嘗試學著寫一些工具。

其中有一些稍微比較大的比如Feigong

LoRexxar/Feigong?

github.com圖標

也有很簡單的一些爬蟲什麼的

也有花費了超多精力進去的自動化靜態代碼審計工具Cobra-W

LoRexxar/Cobra-W?

github.com圖標

寫工具是一個我在這幾年一直在做的事情,在寫工具的時候,不僅是代碼能力的提高,一方面也迫使我重新思考,我的那些人工能完成的事情,到底怎麼能從自動化的角度解釋。

在這個過程中,一次次重構給我帶來的不只是編碼能力,也是對很多基礎的重新思考,我開始漸漸明白一個工具的誕生要多少心血進去,這也逐漸成為了我的一個習慣,給我非常積極的影響。

2、應該是大二左右開始,除了ctf以外我開始嘗試去混一些src

其實我想這點可能幫不到題主,但我還是想說說,因為這個經歷讓我重新認識了一些東西。

一個很有意思的體驗,我經常分享給別人,ctf和滲透最大的區別是什麼?

CTF:ctf永遠一定有解,無論多複雜多牛逼甚至多腦洞的題目,它一定有解,當這個預期在心裡的時候,你對目標的思考永遠就可以被量化為條件,當所有的條件都擺在明面上的時候,會不會做就成了你如何思考的問題了。

但有趣的點就在於,只有CTF中讓我感受到,居然有這麼牛逼這麼巧妙地利用思路可以使用,CTF給我帶來的是各種開拓的思路和奇技淫巧。也同樣是很多實際很難遇到的場景的難得再現。

滲透:滲透的一些都是未知,就像一個裝滿水的桶,你只需要找到其中最弱的一個點,輕輕戳一下就可以了,你不需要多鋒利的矛,也不需要多牛逼的武功。你更需要的可能是一個火眼金睛!

除開CTF和滲透的區別以外,我開始慢慢明白甲方安全和乙方安全的區別。

在我慢慢了解業務安全的過程,我開始明白任意url跳轉到底有啥危害?信息泄露問題多大?CORS配不好會怎麼樣?反射性XSS在一定的場景下可能爆發無窮的力量?

這是一個很有趣的過程,有些東西我也一下子說不明白,但我覺得懂的都懂。

3、應該是我到大四以來,我們開始逐漸接觸一些開發

從最開始的PHP,到後面的js再到後面一些python開發。我開始簡單的接觸一些大型項目的開發。HaoTian(一個區塊鏈智能合約的監控審計分析平臺)可能是我開發過的最大的一個項目。從前端到後端到開發端。

在這個過程中我開始有一點兒明白為什麼會有這樣那樣的漏洞會存在,一個很大的體驗就是,為了保證安全真的可能要犧牲很多才能保證業務的正常,反過來也就是,為了保證業務的正常,有時候可能真的要犧牲安全,所以很多漏洞就誕生了

4、從到404實習之後,從開始的漏洞應急,到學習他們挖掘漏洞的思考方式

從來到404實習的第一個階段就是做漏洞應急,大概就是爆出來的各種漏洞,我們需要迅速復現並且完成簡報,看情況可能會完成分析文。

Discuz x3.4 前臺 SSRF 分析?

paper.seebug.org圖標

在一次次的復現+分析中,其實每一次就能帶來一些理解,慢慢學習他們挖掘漏洞的思考方式,這真是一件很有趣的事情。

從學習再到自己嘗試去思考,去審計,我還在這個過程中,你不妨也試試看。

前面瞎bb了一大堆,最後想說的是,Web領域不同於別的,我覺得真的有很多東西能玩,而怎麼走應該是你自己去想明白的。學習到了每一個階段都有瓶頸,重要的不是有沒有到瓶頸,或者怎麼突破瓶頸,重要的是你知不知道自己要成為什麼樣的人?只有知道目標,你才能知道自己現在最缺的是什麼...

不管怎麼樣,祝好運


誒說到心坎裏了,接觸安全也有兩年半了,學的比較雜從web安全,滲透測試,安卓都有接觸過些,從來都是保持一顆謙遜的心,但是真的有些時候太迷茫了,有個事情不得不承認,安全這個東西,有些真的不是你一個人摸索就能摸索的到的,因為沒人教,有些體系化的東西不是你能瞭解參與的到的。

最近面了幾家,有些問題真的被問懵逼了,問我sdl,我沒接觸過,問我密碼學,我一個非科班出身真的不瞭解,再問我一些安全問題的防範,說實話攻擊的話還可以,但是防禦的體系需要考慮的不單純是防禦,就單單一個csrf防禦所引申出來的安全修復方法就有好多,但是如果在企業內部,所要考慮不單單是安全防禦的問題,還要考慮開發,業務帶來的影響。

不知道自己想的對不對,如果上升我覺得可能是上升到一個宏觀的角度,去看待整個的安全問題。或者是沉澱自己,沉澱到一個底層都特別瞭解的成度

但是這兩個高度,確確實實不是自己能快速摸索出來的,真的,現在遇到好多問題就有種很尷尬的事,沒有一個我可以問的人……


安全從業者,解決的是什麼問題呢?

是對抗攻擊,是與黑客戰爭。

換位思考纔是一個合格安全從業者該有的精神。

如果你是一名黑客,如何從目標系統中獲利呢?

比如重放攻擊優惠券,各種薅羊毛,訂單信息泄露。。。。

一名合格的安全測試工程師,並不是非要攻擊系統拿到許可權的。

另外未來的攻防一定會是以人為本的攻防。

畢竟大數據時代,誰也不敢保證自己的絕對安全。

順便說一下,安全行業的泡沫期快過去了,一堆人被淘汰也是很正常的,跟不上變化註定被淘汰掉,每個行業都是這樣。別以為政策紅利期,就會一直喫老本喫香的喝辣的。生於憂患死於安樂!


滲透測試,其實需要把名字拆開來看,滲透是一個點,持久性的,測試是一個面,覆蓋性的,想提升技能你要麼摸點,要麼觸面。難在點,勤在面,要麼專攻一個方向,總能得到一個點(shell),代碼審計和漏洞挖掘,要麼信息收集,收集漏洞利用方式寫好漏洞批量檢測腳本,關注最新漏洞和利用方式,瞭解各種網路環境。

關於提升列出幾點來說:

1.有一定的基礎的話,可以上來就復現幾個漏洞的利用方式和相關的工具的使用,msf ms08067漏洞,ms12020,ms1701,iis-dev等等。其他工具awvs,nessus,appscan,sqlmap,nmap,burp suite等等。

2. 有一定的漏洞量的時候一定要自動化,列資產,就算沒有漏洞,資產信息列的好,也可以沖工作量,批量漏洞檢測,從埠到服務再到應用,每一層的相關漏洞要清楚。

3. 思路猥瑣,漏洞的產生都和人有關,沒有路子可走,就社工,溜達,假裝之類的,喫喫喝喝,反正各種去冒險,臉皮厚,藉口多,好乾活。

4. 相互配合,滲透測試也不是一個人能完全做好的,摸索全面,有長有短。


終極目標,我認為是滲透測試的「道」,也就是回答滲透測試的本質是什麼,為什麼要有滲透。

摸清楚這個方向,再選擇時,都是圍繞這個「道」在積累技巧,也就是「術」,工具都不難,工具背後代表的含義才難,但也是根本。

祝順利!


任何一個方向都可以鴨~~代碼是功底,學好數理化,走遍天下都不怕;學好數據結構與演算法,代碼審計、安全開發、挖洞都不怕


推薦閱讀:
查看原文 >>
相關文章