Ⅰ web安全測試個人閱讀心得
文章中提到的東西都是工作中實踐過的經驗,並不保證全面性.
Web測試一般包含如下內容:
功能測試
性能測試
用戶界面測試
兼容性測試
安全性測試
其實這只是大概的區分,各種不同的類別的測試之間其實是有很多交集的.比如:
當網站出現性能問題的時候,同時網站的某些功能可能會失效,比如頁面打開失敗,表單提交失敗等等
當網站在一個它不兼容的瀏覽器下運行的時候,也會導致功能失效,用戶界面出現混亂,甚至性能問題
以上的五項內容中的每一項都可以是一個大的主題做深入的分析.
另外,對於所有的web測試人員來說,學會使用Firebug以及Fiddler這樣的抓包工具絕對是必不可少的。這些工具的使用應該始終貫穿的測試工作之中
一.功能測試
對於一般被測試的軟體,我可以用"樹"來比喻一個軟體.一顆樹有主幹,分支和葉子.主幹和分支代表軟體的流程,葉子代表軟體的局部步驟(頁面). 我們測試軟體的時候既要保證軟體的流程正確,也要保證組成流程的各個分支步驟頁面的正確性.
拿淘寶來購物來說,我們可以把登錄頁面,購物車頁面之類的當成是葉子,完成一個購物流程,當成一個主幹或者分支. 軟體就是由這很多的葉子以及相對少一些的分支組成.
經典的教科書上往往會介紹如下功能測試測試用例的設計方法:
邊界值劃分
等價類
正交表
決策表
當我們測試單個頁面的時候,往往會用到這些方法.但是這些方法只是測試到了軟體的局部.
除此之外,我們還要考慮被測試軟體的工作流程,保證所有的提供給用戶的工作流程都可以跑通,這個時候,探索式測試可以派上用場.有時候,我們還需要化流程圖來輔助測試.
關於探索式測試,詳見探索式測試讀書筆記一文
另外,還有更重要的幾點:
每當打開頁面或者提交數據的時候,多打開Fiddler或者Firebug看看到底發送了哪些http請求,以及關鍵請求的http response是什麼.當發現功能異常之後,根據我們用Fiddler看到的數據,往往可以自己判斷問題到底是出在前台的JS還是後台service. 關於Fiddler,詳見Fiddler小結一文
有空多看看系統的日誌,哪裡能找到一些隱藏在頁面之外的異常
當我們在頁面上完成了一些功能之後,要徹底明白系統背後(資料庫)到底完成了什麼東西,我們提交的數據到底被存儲到哪裡去了
綜上所述,我們做功能測試的總體思路是從 點(樹葉)->面(主幹,分支)->後台(根)
二.性能測試
性能測試主要要從前端和後台兩個角度去理解,我們可以首先使用Fiddler去大概判斷網站的性能問題是出在前台還是後台.
如果Http請求的大部分時間是花在html,css,js之類的靜態資源載入上,那麼基本是前台性能有問題.如果某個後台的service特別費時,那麼後台必定存在性能問題
前台性能
除了用Fiddler看性能外,我們可以使用Yahoo的Firefox YSlow插件去檢測前端的性能.此外,關於前端性能具體的優化策略,可以參閱<High Performance Web Sites>,其中主要涉及到http協議和瀏覽器緩存機制
詳見Web前端優化14條原則一文
後台性能
對於大部分測試工程師來說是很難直接去優化後台性能的,但是依然能去發現一些有意義的線索
用Fiddler去查看http請求,如果某個請求特別耗時,則可能存在性能問題
後台代碼設計到sql查詢的時候,往往測試員也是有基礎去測試那些SQL的查詢時間和執行時間,如果因為數據量大而導致查詢太慢的話,可以建議使用資料庫的索引
後台的cache機制: 我們的項目大量的使用了後台的cache機制
總之,做性能測試絕對不是簡單地直接拿Loadrunner或者Jmeter去錄制一下腳本,然後運行,分析結果.這一切的前提應該是充分了解了被測試系統的前台跟後台的性能
三.用戶界面測試
這點關注不多,主要如下:
字體大小顏色(主要通過修改css文件)
彈窗的風格最好保持統一
四,兼容性測試
主要考慮如下幾個因素組合:
不同的操作系統
不同的瀏覽器
瀏覽器的不同版本
顯示器的不同解析度
不同的瀏覽設備(PC,手機,平板)
五.安全性測試
安全性測試主要知道有如下幾點:
SQL注入:後台使用Preparedstatement去處理SQL
XSS攻擊:這個問題非常復雜.學習中..
做為一個測試工程師,我覺得應該記住如下3點:
前台的JS驗證是不可靠的
用戶進行任何輸入都是有可能的
Web本身似乎也是不安全的:無法解釋更多....
接下去舉一些實際的例子:
隱藏的按鈕
當我們用Firebug看頁面的HTML的時候,往往能找到一些隱藏的內容,比如某個元素的 class="gradient hide",或者類似的東西.當我們直接修改掉這些屬性之後,這些隱藏的東西就會在頁面上暴露出來,對系統的安全造成隱患.
另外如果有某些值也可能會存儲在隱藏域中
Disabled按鈕
與隱藏的按鈕類似,頁面上經常有些可見但是灰調的按鈕,也可以嘗試改變他的屬性,讓它變成可以觸發的,或許會有所發現
不該被訪問的URL
如果某個URL不該被某些人訪問,一定要在許可權上去控制.僅僅去掉某個鏈接/按鈕是不夠的
後台Service
如果網站後台的Service能被捕捉到,而且又沒有許可權控制,那將是災難性的
Ⅱ 網路安全如何入門
零基礎、轉專業、跨行等等都可以總結為,零基礎或者有一點基礎的想轉網路安全方向該如何學習。
要成為一名黑客,實戰是必要的。安全技術這一塊兒的核心,說白了60%都是實戰,是需要實際操作。
如果你選擇自學,需要一個很強大的一個堅持毅力的,還有鑽研能力,大部分人是東學一塊西學一塊兒,不成體系化的紙上談兵的學習。許多人選擇自學,但他們不知道學什麼。
再來說說,先學編程還是滲透,
很多人說他們想學編程,但是在你學了編程之後。會發現離黑客越來越遠了。。。
如果你是計算機專業的,之前也學過編程、網路等等,這些對於剛入門去學滲透就已經夠了,你剛開始沒必要學那麼深,有一定了解之後再去學習。如果是轉專業、零基礎的可以看我下面的鏈接,跟著公開課去學習。
B站有相關零基礎入門網路安全的視頻
快速入門
另外說一句,滲透是個立馬可以見效的東西,滿足了你的多巴胺,讓你看到效果,你也更有動力去學。
舉個栗子:你去打游戲,殺了敵人,是不是很舒服,有了反饋,滿足了你的多巴胺。
編程這玩意,周期太長,太容易勸退了,說句不好聽的,你學了三個月,可能又把之前學的給忘了。。。這又造成了死循環。所以想要學網安的可以先學滲透。在你體驗了樂趣之後,你就可以學習編程語言了。這時,學習編程語言的效果會更好。因為你知道你能做什麼,你應該寫什麼工具來提高你的效率!
先了解一些基本知識,協議、埠、資料庫、腳本語言、伺服器、中間件、操作系統等等,
接著是學習web安全,然後去靶場練習,再去注冊src挖漏洞實戰,
學習內網,接著學習PHP、python等、後面就學習代碼審計了,
最後還可以往硬體、APP、逆向、開發去學習等等
(圖片來自A1Pass)
網路安全學習實際上是個很漫長的過程,這時候你就可以先找工作,邊工邊學。
怎麼樣能先工作:
學完web安全,能夠完成基本的滲透測試流程,比較容易找到工作。估計6到10k
內網學完估計10-15k
代碼審計學完20-50k
紅隊表哥-薪資自己談
再來說說如果你是對滲透感興趣,想往安全方面走的,我這邊給你一些學習建議。
不管想學什麼,先看這個行業前景怎麼樣--
2017年我國網路安全人才缺口超70萬,國內3000所高校僅120所開設相關專業,年培養1萬-2萬人,加上10
-
20家社會機構,全國每年相關人才輸送量約為3萬,距離70萬缺口差距達95%,此外,2021年網路安全人才需求量直線增長,預計達到187萬,屆時,人才需求將飆升278%!
因為行業人才輸送與人才缺口的比例問題,網路安全對從業者經驗要求偏低,且多數對從業者學歷不設限。越來越多的行業從業者上升到一定階段便再難進步,很容易被新人取代,但網路安全與其他行業的可取代性不同,網路安全工程師將在未來幾十年都處於緊缺狀態,並且,對於防禦黑客攻擊,除了極少數人靠天分,經驗才是保證網路安全的第一法則。
其次,不管是什麼行業都好,引路人很重要,在你剛入門這個行業的時候,你需要向行業里最優秀的人看齊,並以他們為榜樣,一步一步走上優秀。
不管是學習什麼,學習方法很重要,當你去學習其他知識時候,
都可以根據我下面介紹的方法去學習:
四步學習法
一、學習
二、模仿
三、實戰
四、反思
說在前頭,不管是干什麼,找到好的引路人很重要,一個好老師能讓你少走很多彎路,然後邁開腳步往前沖就行。
第一步,找到相關資料去學習,你對這個都不了解,這是你之前沒接觸過的領域,不要想著一次就能聽懂,當然天才除外(狗頭滑稽),聽完之後就會有一定的了解。
第二步,模仿,模仿什麼,怎麼模仿?先模仿老師的操作,剛開始可能不知道啥意思,模仿兩遍就會懂一些了。
第三步,實戰,怎麼實戰?先去我們配套的靶場上練習,確定靶場都差不多之後,再去申請成為白帽子,先去挖公益src,記住,沒有授權的網站都是違法的。(師父領進門,判刑在個人)
第四部,反思,總結你所做的步驟,遇到的問題,都給記錄下來,這個原理你理解了嗎?還是只是還是在模仿的部分養成做筆記的習慣。
學習方式有了,接下來就是找到正確的引路人進行學習,一個好的引路人,一個完整的體系結構,能讓你事半功倍。
Ⅲ 本人信息安全大一新生,想走web安全的滲透路線,需要完成什麼知識儲備希望前輩給點建議,謝謝。
作者:向生李
鏈接:https://www.hu.com/question/21914899/answer/39344435
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
Web安全工程師
Web安全相關概念
熟悉基本概念(SQL注入、上傳、XSS、CSRF、一句話木馬等)。通過關鍵字(SQL注入、上傳、XSS、CSRF、一句話木馬等)進行Google/SecWiki;
閱讀《精通腳本黑客》,雖然很舊也有錯誤,但是入門還是可以的;
看一些滲透筆記/視頻,了解滲透實戰的整個過程,可以Google(滲透筆記、滲透過程、入侵過程等);
3周
熟悉滲透相關工具
熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相關工具的使用。了解該類工具的用途和使用場景,先用軟體名字Google/SecWiki;
下載無後們版的這些軟體進行安裝;
學習並進行使用,具體教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;
待常用的這幾個軟體都學會了可以安裝音速啟動做一個滲透工具箱;
5周
滲透實戰操作
掌握滲透的整個階段並能夠獨立滲透小型站點。網上找滲透視頻看並思考其中的思路和原理,關鍵字(滲透、SQL注入視頻、文件上傳入侵、資料庫備份、dedecms漏洞利用等等);
自己找站點/搭建測試環境進行測試,記住請隱藏好你自己;
思考滲透主要分為幾個階段,每個階段需要做那些工作,例如這個:PTES滲透測試執行標准;
研究SQL注入的種類、注入原理、手動注入技巧;
研究文件上傳的原理,如何進行截斷、雙重後綴欺騙(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,參照:上傳攻擊框架;
研究XSS形成的原理和種類,具體學習方法可以Google/SecWiki,可以參考:XSS;
研究Windows/Linux提權的方法和具體使用,可以參考:提權;
可以參考: 開源滲透測試脆弱系統;
1周
關注安全圈動態
關注安全圈的最新漏洞、安全事件與技術文章。通過SecWiki瀏覽每日的安全技術文章/事件;
通過Weibo/twitter關注安全圈的從業人員(遇到大牛的關注或者好友果斷關注),天天抽時間刷一下;
通過feedly/鮮果訂閱國內外安全技術博客(不要僅限於國內,平時多注意積累),沒有訂閱源的可以看一下SecWiki的聚合欄目;
養成習慣,每天主動提交安全技術文章鏈接到SecWiki進行積淀;
多關注下最新漏洞列表,推薦幾個:exploit-db、CVE中文庫、Wooyun等,遇到公開的漏洞都去實踐下。
關注國內國際上的安全會議的議題或者錄像,推薦SecWiki-Conference。
3周
熟悉Windows/Kali Linux
學習Windows/Kali Linux基本命令、常用工具;熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;
熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;
熟悉Kali Linux系統下的常用工具,可以參考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;
熟悉metasploit工具,可以參考SecWiki、《Metasploit滲透測試指南》。
3周
伺服器安全配置
學習伺服器環境配置,並能通過思考發現配置存在的安全問題。Windows2003/2008環境下的IIS配置,特別注意配置安全和運行許可權,可以參考:SecWiki-配置;
Linux環境下的LAMP的安全配置,主要考慮運行許可權、跨目錄、文件夾許可權等,可以參考:SecWiki-配置;
遠程系統加固,限制用戶名和口令登陸,通過iptables限制埠;
配置軟體Waf加強系統安全,在伺服器配置mod_security等系統,參見SecWiki-ModSecurity;
通過Nessus軟體對配置環境進行安全檢測,發現未知安全威脅。
4周
腳本編程學習
選擇腳本語言Perl/Python/PHP/Go/Java中的一種,對常用庫進行編程學習。搭建開發環境和選擇IDE,PHP環境推薦Wamp和XAMPP,IDE強烈推薦Sublime,一些Sublime的技巧:SecWiki-Sublime;
Python編程學習,學習內容包含:語法、正則、文件、網路、多線程等常用庫,推薦《Python核心編程》,不要看完;
用Python編寫漏洞的exp,然後寫一個簡單的網路爬蟲,可參見SecWiki-爬蟲、視頻;
PHP基本語法學習並書寫一個簡單的博客系統,參見《PHP與MySQL程序設計(第4版)》、視頻;
熟悉MVC架構,並試著學習一個PHP框架或者Python框架(可選);
了解Bootstrap的布局或者CSS,可以參考:SecWiki-Bootstrap;
3周
源碼審計與漏洞分析
能獨立分析腳本源碼程序並發現安全問題。熟悉源碼審計的動態和靜態方法,並知道如何去分析程序,參見SecWiki-審計;
從Wooyun上尋找開源程序的漏洞進行分析並試著自己分析;
了解Web漏洞的形成原因,然後通過關鍵字進行查找分析,參見SecWiki-代碼審計、高級PHP應用程序漏洞審核技術;
研究Web漏洞形成原理和如何從源碼層面避免該類漏洞,並整理成checklist。
5周
安全體系設計與開發
能建立自己的安全體系,並能提出一些安全建議或者系統架構。開發一些實用的安全小工具並開源,體現個人實力;
建立自己的安全體系,對公司安全有自己的一些認識和見解;
提出或者加入大型安全系統的架構或者開發;
看自己發展咯~
Ⅳ 零基礎如何學習web安全能不能學會呢
Web業務的迅速發展也引起黑客們的強烈關注,輕則篡改網頁內容,重則竊取重要內部數據,更為嚴重的則是在網頁中植入惡意代碼,使得網站訪問者受到侵害。 去慕課網學
Ⅳ 如何學習網路安全
如果你是一個完全經驗的新手,想轉行網路安全,我們建議
第一步:需要了解整個行業的全貌
當你想快速進入一個行業的時候,第一步不是直接開始學習,而是梳理這個行業的知識體系,或者你這個行業所需要的掌握的必備能力,然後一步一步進行拆解。
這樣的好處在於,第一能夠清晰的理清楚你需要真正掌握的技能點,第二能夠增強執行力,因為當你拆解成各個能力模塊的時候,你的執行力會提高,因為你知道你需要每天做什麼。
相信很多新手想入門網路安全都知道,一般建議都是從Web安全入手,這不需要你有很多代碼等專業知識,更容易找到成就感增加你的學習興趣,因此,第一步,建議從Web安全方向入手,為了讓你快速入門Web安全,可以從我們針對上百家企業的Web安全工程師崗位做的深度調研,總結出的Web安全學習路徑,幫你建立Web安全整體知識體系。
web案例學習路線圖
第二步:加強實戰訓練
我們知道,任何職場上的能力,都需要通過實操才能確認是否真正掌握,而網路安全,實操技能要求比其他崗位更強,因此,每學完一個技能,你都需要去實操練習,這里推薦的實操平台
第三步:記筆記
每個知識點的學習,要詳細的記錄筆記的學習中遇到的問題,解決這個問題的思路,哪裡還有別的思路可以解決?後續再有類似的問題出現,我們就可以去看當初的筆記,進行鞏固,常言道:好記性不如爛筆頭(前輩們經過多年推敲的總是,不是沒有道理的)
最重要是 要不斷在學習,因為這個行業 技術更新頻次很快
Ⅵ web安全學習如何提高自己
橫向就是如圖所示,縱向就是數據流;數據流說白了就是http協議。
舉例:
1、如果在操作系統沒有處理好,就產生了OS命令執行的安全問題;
2、如果在存儲層的資料庫中沒有處理好,資料庫的SQL解析引擎把這個「特殊數據」當做指令執行,就產生了SQL注入;
3、如果在web容器層如nginx中沒有處理好,nginx把特殊數據當成指令執行時,就會產生遠程溢出、DoS等各種安全問題;
4、如果在web開發框架或web應用層中沒有處理好,把特殊數據當做指令執行時,可能就產生遠程命令執行的安全問題;
5、如果在web前端層中沒有處理好,瀏覽器的JS引擎把特殊數據當做執行執行時,就可能產生XSS跨站腳本的安全問題;
總結:
一切安全問題都體現在「輸入輸出」上,一切安全問題都存在「數據流」的整個過程中;
Ⅶ 新手想要學web滲透,網路安全,要如何開始
首先想想是不是真心想學,這條路註定孤獨寂寞,不斷碰壁。
想好後,就要每天堅持。
我的一些建議:每天多任務進行,比如早上兩小時看英語學習,之後看語言,(C語言之後python之後php),下午看些網路上的滲透資料,晚上實踐,等到資料看完。可以開始看看滲透博客,然後下午晚上自由分配
Ⅷ 零基礎如何學習 Web 安全
1.學習網站構建初級教程_W3C以及HTTP協議基礎-runoob上了解Web前後端以及HTTP協議的一些基礎介紹,花半天時間對相關技術有個概念性的了解就夠了。
2. Windows下下載phpStudy或者WAMP,在本地搭建Web伺服器環境,然後自己搜索兩篇文章學習下基本的操作方法。這個本地Web伺服器也就相當於學習過程中的一個實驗環境了。
3.學習瀏覽器的開發者工具(通常快捷鍵F12調出),搜索一些教學文章,掌握Chrome或者Firefox瀏覽器開發者工具中的Network、Elements功能的常見用法,可以查看HTTP數據包以及定位頁面元素。
那學習Web安全呢,同時還要掌握一些工具:瀏覽器開發者工具與瀏覽器插件(如HackBar、ProxySwitcher)、抓包工具如Burpsuite、漏洞掃描和驗證工具如御劍、sqlmap、AWVS,工具可以在Freebuf上自行搜索下載,教程可以參考Web安全-i春秋系列教程中對應這幾款工具的章節學習。
好的工具可以幫助我們提高測試效率,擴展測試思路。除了工具的使用,通過搭建本地實戰環境練習手工技巧,也是很好的進階之路,這里建議可以搭建DVWA漏洞測試環境,然後參考DVWA系列教程_Freebuf進行學習。
學習的同時也可以在在教育行業SRC等漏洞平台上挖掘漏洞,贏得認可,也是一種動力,但挖掘漏洞的時候一定要注意規范和界限,可以參考自律方能自由,《網路安全法》實施後的白帽子行為參考,挖掘漏洞的同時也要注意保護自己。
Ⅸ web安全要學什麼
Web安全的范圍實在太大,哪些先學,哪些後學,如果沒有系統的路線會降低大家效率,對於剛入門的同學們來說簡直就是「噩夢」。所以,這篇類似學習路線的文章,希望可以幫助剛入門的萌新們少走彎路。(文末附學習資料及工具領取)
首先我們來看看企業對Web安全工程師的崗位招聘需求是什麼?
1職位描述
對公司各類系統進行安全加固;
對公司網站、業務系統進行安全評估測試(黑盒、白盒測試)
對公司安全事件進行響應、清理後門、根據日誌分析攻擊途徑
安全技術研究,包括安全防範技術、黑客技術等;
跟蹤最新漏洞信息,進行業務產品的安全檢查。
熟悉Web滲透測試方法和攻防技術,包括SQL注入、XSS跨站、CSRF偽造請求、命令執行等OWSP TOP10 安全漏洞與防禦;
熟悉Linux、Windows不同平台的滲透測試,對網路安全、系統安全、應用安全有深入理解和自己的認識;
熟悉國內外安全工具,包括Kali、Linux、Metasploit、Nessus、Namp、AWVS、Burp等;
對Web安全整體有深刻理解,有一定漏洞分析和挖掘能力;
2崗位要求
根據崗位技能需求,再來制定我們的學習路徑,如下:
一、Web安全學習路徑
01 HTTP基礎
只有搞明白Web是什麼,我們才能對Web安全進行深入研究,所以你必須了解HTTP,了解了HTTP,你就會明白安全術語的「輸入輸出」。黑客通過輸入提交「特殊數據」,特殊數據在數據流的每個層處理,如果某個層沒處理好,在輸出的時候,就會出現相應層的安全問題。關於HTTP,你必須要弄明白以下知識:
HTTP/HTTPS特點、工作流程
HTTP協議(請求篇、響應篇)
了解HTML、Javascript
Get/Post區別
Cookie/Session是什麼?
02 了解如下專業術語的意思
Webshell
菜刀
0day
SQL注入
上傳漏洞
XSS
CSRF
一句話木馬
......
03 專業黑客工具使用
熟悉如何滲透測試安全工具,掌握這些工具能大大提高你在工作的中的效率。
Vmware安裝
Windows/kali虛擬機安裝
Phpstudy、LAMP環境搭建漏洞靶場
Java、Python環境安裝
子域名工具 Sublist3r
Sqlmap
Burpsuite
Nmap
W3af
Nessus
Appscan
AWVS
04 XSS
要研究 XSS 首先了解同源策略 ,Javascript 也要好好學習一下 ,以及HTML實體 HTML實體的10 或16進制還有Javascript 的8進制和16進制編碼,最終掌握以下幾種類型的XSS:
反射型 XSS:可用於釣魚、引流、配合其他漏洞,如 CSRF 等。
存儲型 XSS:攻擊范圍廣,流量傳播大,可配合其他漏洞。
DOM 型 XSS:配合,長度大小不受限制 。
05 SQL注入
所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。你需要了解以下知識:
SQL 注入漏洞原理
SQL 注入漏洞對於數據安全的影響
SQL 注入漏洞的方法
常見資料庫的 SQL 查詢語法
MSSQL,MYSQL,ORACLE 資料庫的注入方法
SQL 注入漏洞的類型:數字型注入 、字元型注入、搜索注入 、盲注(sleep注入) 、Sqlmap使用、寬位元組注入
SQL 注入漏洞修復和防範方法
一些 SQL 注入漏洞檢測工具的使用方法
06 文件上傳漏洞
了解下開源編輯器上傳都有哪些漏洞,如何繞過系統檢測上傳一句話木馬、WAF如何查殺Webshell,你必須要掌握的一些技能點:
1.客戶端檢測繞過(JS 檢測)
2.伺服器檢測繞過(目錄路徑檢測)
3.黑名單檢測
4.危險解析繞過攻擊
5..htaccess 文件
6.解析調用/漏洞繞過
7.白名單檢測
8.解析調用/漏洞繞過
9.服務端檢測繞過-文件內容檢測
10.Apache 解析漏洞
11.IIS 解析漏洞
12.Nginx 解析漏洞
07 文件包含漏洞
去學習下
include() include_once() require() require_once() fopen() readfile()
這些php函數是如何產生文件包含漏洞, 本地包含與遠程包含的區別,以及利用文件包含時的一些技巧如:截斷 /偽url/超長字元截斷等 。
08 命令執行漏洞
PHP代碼中常見的代碼執行函數有:
eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。
了解這些函數的作用然後些搞清楚如何造成的代碼執行漏洞。
09 CSRF 跨站點請求
為什麼會造成CSRF,GET型與POST型CSRF 的區別, 如何防禦使用 Token防止CSRF?
010 邏輯漏洞
了解以下幾類邏輯漏洞原理、危害及學會利用這幾類漏洞:
信息轟炸、支付邏輯漏洞、任意密碼修改、越權訪問、條件競爭、任意注冊、任意登錄、順序執行缺陷、URL跳轉漏洞.
011 XEE(XML外部實體注入)
當允許XML引入外部實體時,通過構造惡意內容,可以導致文件讀取、命令執行、內網探測等危害。
012 SSRF
了解SSRF的原理,以及SSRF的危害。
SSRF能做什麼?當我們在進行Web滲透的時候是無法訪問目標的內部網路的,那麼這個時候就用到了SSRF漏洞,利用外網存在SSRF的Web站點可以獲取如下信息。
1.可以對外網、伺服器所在內網、本地進行埠掃描,獲取一些服務的banner信息;
2.攻擊運行在內網或本地的應用程序(比如溢出);
3.對內網Web應用進行指紋識別,通過訪問默認文件實現;
4.攻擊內外網的Web應用,主要是使用get參數就可以實現的攻擊(比如struts2,sqli等);
5.利用file協議讀取本地文件等。
如果上述漏洞原理掌握的都差不多那麼你就算入門Web安全了。
如果看了上面你還不知道具體如何學習?可參考合天網安實驗室Web安全工程師崗位培養路徑學習:網頁鏈接
Ⅹ 學web安全前都需要掌握什麼
1、基礎網路協議/網站架構
互聯網的本質也就是一系列的網路協議,不管是C/S架構還是B/S架構都是基於網路通信,滲透人員需要了解到通信流程以及數據包走向等,才能使用相應手段跟工具去做滲透。
Web網站常見的協議以及請求方式,這些在做滲透的時候必不可少的。甚至也是可以利用協議來做滲透測試。所有的知識都是息息相關的,必不可少。
2、基礎的編程能力
一名Web滲透測試人員必須具有有一定的基礎編程能力的,每天都跟代碼打交道,如果不會寫代碼或者看不懂代碼,十分吃虧。
例如需要自己寫一款適合此刻情景漏洞的工具,如果不會寫會極大降低效率。再者就是關於後續進階的代碼審計問題,如果不會寫代碼,代碼也看不懂那麼就不知道怎麼從源代碼去審計漏洞,去發現原因。
3、滲透測試工具
滲透測試工具網上開源的很多,作為滲透測試人員會使用滲透測試工具這是必不可少的。一些優秀的工具要學會利用,還有就是要學會自己寫工具。例如在做滲透測試中,好比說大量的數據FUZZ,如果說人工操作將大大浪費時間跟效率。
如若網上的工具不符合此漏洞的情景,這時候就需要自己手動寫工具去調試。當然網上優秀的工具已不少,優先使用會極大提高我們的效率。
4、了解網站的搭建構成
試著去了解一個網站的形成架構,語言,中間件容器等。如果不知道一個網站是如何搭建起來的,那麼做滲透的時候根本就沒有對應的滲透測試方案。例如一個網站採用了某種中間件,或者什麼資料庫,再或者是採用網上開源的CMS。
如果對於這些不了解,那麼就只能在網頁上徘徊遊走,甚至無從下手。了解一個網站的搭建與構成,對於前期做踩點與信息收集有著很大的幫助。
5、漏洞原理(重要)
滲透測試人員肯定是要對漏洞原理去深入研究探究,這樣會從中發現更多有「趣」的東西。所有有「趣」的東西是可能你在原有的基礎漏洞上配合其他漏洞,從而達到組合漏洞,這樣效果有可能會更佳,不過不去了解漏洞原理,漏洞產生,不去從代碼層出發。
那就不知道漏洞起因,到後期的滲透利用以及修復方案,就會顯得吃力,這時候有可能你就需要去查資料,從某種形式的降低了速度與效率,所以,知識與積累必不可少。
6、報告撰寫能力
每次做完滲透測試之後,都是需要一個滲透測試報告,對於漏洞挖掘的梳理,網路結構印象加深,這是後期與客戶溝通還有與開發對接提修復建議能起到很大的幫助,這些細小的細節決定著你服務的質量與責任感,因此需要不斷的積累與提升。