開始前的思考
- 我真的喜歡搞安全嗎?
- 我想通過安全賺錢錢?
- 我不知道做什麼就是隨便?
- 一輩子做安全嗎?
\
這些不想清楚會對你以後的發展很不利,與其盲目的學習web安全,不如先做一個長遠的計劃。否則在我看來都是浪費時間。
【Web安全學習路線&資料】
首先你得了解Web
Web分為好幾層,一圖勝千言:
事實是這樣的:如果你不瞭解這些研究對象是不可能搞好安全研究的。
這樣看來,Web有八層(如果把瀏覽器也算進去,就九層!每層都有幾十種主流組件!!!)這該怎麼辦?
一法通則萬法通,這是橫向的層,縱向就是數據流!搞定好數據流:從橫向的層,從上到下→從下到上,認真看看這些數據在每個層是怎麼個處理的。
\
零基礎web安全學習計劃
2.1 HTTP協議請求 (TIME: 一週)
對以下下知識點做了解學習
http協議請求
http狀態碼
post / get 區別
可以使用Chrome瀏覽器中F12查看“Network”標籤中的HTTP請求響應,來了解HTTP協議請求.
2.2.危險的HTTP頭參數 (TIME: 一週)
HTTP請求時需對一些必要的參數做一些瞭解,這些參數也會造成很嚴重的安全安全問題如下:
user_agent
X-Forwarded-For
Referer
clien_ip
Cookie
2.3 專業術語 (TIME: 一天)
瞭解如下專業術語的意思
- webshell
- 菜刀
- 0day
- SQL注入
- 上傳漏洞
- XSS
- CSRF
- 一句話木馬
2.4 專業黑客工具使用 (TIME: 10天)
熟悉如何滲透測試安全工具,掌握這些工具能大大提高你在工作的中的效率。
sqlmap
Burpsuite
nmap
w3af
nessus
Appscan
AWVS
2.5 腳本語言+代碼審計入門 (TIME: 10天)
推薦php不用學的太靈通,我們又不是搞開發,瞭解基本語法和一些危險函數即可如:open exec 等函數會造成什麼漏洞,瞭解了php中的危險函數會造成那些漏洞可舉一反三套用到別的腳本當中 asp aspx java這些語言的危險函數可能只是寫法不一樣功能是相同的,瞭解這些後就可以來做一些web漏洞的代碼審計了.
php入門學習
php代碼審計
2.6 Sql注射 (TIME: 3天)
零基礎就先用最有效的辦法注入推薦注入工具 sqlmap如何使用?
如果你不想只停留在使用工具的層面,那麼你需要學習一下數據庫,mysql sqlserver 隨便先學一個前期學會 selsct 就行,php嘗試自己寫一個查詢數據庫的腳本來了解手工sql注入的原理,這樣進步會很快,如果想深入可以把各種數據庫注入都温習一邊。關於需要掌握的技術點:
1. 數字型注入
2.字符型注入
3.搜索注入
4.盲注(sleep注入)
5.sqlmap使用
6.寬字節注入
mysql入門
Sqlmap
sleep原理
盲注sleep函數執行sql注入攻擊
【Web安全學習路線&資料】
2.7 CSRF 跨站點請求 (TIME: 3天)
為什麼會造成csrf,GET型與POST型CSRF 的區別, 如何防禦使用 token防止 csrf?
2.8 XSS (TIME: 7天)
要研究xss首先了解同源策略 ,Javascript 也要好好學習一下 ,以及html實體 html實體的10 或16進制還有javascript 的8進制和16進制編碼,
xss
進制編碼
同源策略
2.9 文件上傳漏洞 (TIME: 7天)
瞭解下開源編輯器上傳都有那些漏洞,如何繞過系統檢測上傳一句話木馬
上傳繞過
2.10 php-遠程/本地 文件包含 (TIME: 10天)
去學習下include() include_once() require() require_once() fopen() readfile()這些php函數是如何產生文件包含漏洞, 本地包含與遠程包含的區別。
以及利用文件包含時的一些技巧如:截斷 /偽url/超長字符截斷 等 。
2.11 php-命令執行 (TIME: 3天)
PHP代碼中常見的代碼執行函數有:
eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。
瞭解這些函數的作用然後些搞清楚如何造成的代碼執行漏洞。
2.12 ssrf (TIME: 3天)
1\瞭解ssrf的原理,以及ssrf的危害。
2\ssrf能做什麼。
當我們在進行web滲透的時候是無法訪問目標的內部網絡的,那麼這個時候就用到了ssrf漏洞,利用外網存在ssrf的web站點可以獲取如下信息。
1.可以對外網、服務器所在內網、本地進行端口掃描,獲取一些服務的banner信息;
2.攻擊運行在內網或本地的應用程序(比如溢出);
3.對內網web應用進行指紋識別,通過訪問默認文件實現;
4.攻擊內外網的web應用,主要是使用get參數就可以實現的攻擊(比如struts2,sqli等);
5.利用file協議讀取本地文件等。
2.13 邏輯漏洞 (TIME: 7天)
常見的邏輯漏洞一般都會在如下地方出現
1.訂金額任意修改--購物站經常出現 2.驗證碼回傳 3.越權操作,其主要原因是沒對ID參數做cookie驗證導致。 4.找回密碼存在設計缺陷 5.接口無限制枚舉
2.14 xee(XML外部實體注入) (TIME: 5天)
當允許xml引入外部實體時,通過構造惡意內容,可以導致文件讀取、命令執行、內網探測等危害
2.15 XPath注入 (TIME: 5天)
path注入攻擊本質上和SQL注入攻擊是類似的,都是輸入一些惡意的查詢等代碼字符串,從而對網站進行攻擊
2.16 服務器解析漏洞
Iis 解析漏洞
nginx 解析漏洞
tomcat 後台上傳漏洞
jboss 上傳漏洞
如果上述漏洞原理掌握的都差不多那麼你就可以去找個工作實踐一下了.
# 加分項目-滲透信息蒐集 (TIME: 15天)#
子域名蒐集 利用DNS域名傳送漏洞蒐集二級域名
Liunx測試命令如下:
Dns服務器 1.1.1.1 測試域名http://wooyun.org
dig @1.1.1.1 http://sechook.org axfr
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=http://wooyun.org -p 53 -Pn 1.1.1
實例查詢蘇寧DNS服務器
D:\deep>nslookup
默認服務器: localhost
Address: 10.11.0.1
> set type=ns
> http://suning.com
服務器: localhost
Address: 10.11.0.1
非權威應答:
http://suning.com nameserver = http://lns1.zdnscloud.info
http://suning.com nameserver = http://gns2.zdnscloud.net.cn
http://suning.com nameserver = lns2.zdnscloud.biz
http://suning.com nameserver = http://gns1.zdnscloud.net
>
查詢蘇寧 IP
C:\Users\jack>nslookup http://suning.com
服務器: localhost
Address: 10.11.0.1
非權威應答:
名稱: http://suning.xdwscache.ourwebcdn.com
Addresses: 203.130.60.48 //對應ip
203.130.60.49 //對應ip
203.130.60.50 //對應ip
Aliases: http://suning.com
http://Suning.com.wscdns.com //別名
在線二級域名爆破網站
https://dnsdumpster.com/
Netcraft - Search Web by Domain
工具獲取二級域名
滲透測試中常用的在線工具--SecWiki 專題 參考鏈接
subDomainsBrute
wydomain
theHarvester.py
Fierce
Dig
knock
dnsspider
SubDomainscollect
SubBrute
dirfuzz
使用格式:
fierce -dns http://baidu.com -threads 3
subDomainsBrute.py http://suning.com
python theHarvester.py -d http://suning.com -l 500 -b baidu -v 國內百度找的多
python theHarvester.py -d 公司名 -l 500 -b baidu -v
python theHarvester.py -d http://suning.com -l 500 -b google -v國外站google多
python theHarvester.py -d school -l 1000 -b all all使用所有的搜索引擎進行搜索
subDomainsBrute使用需要安裝依賴支持
報錯信息:ImportError: No module named dns.resolver
需要安裝的庫是 dnspython
pip install dnspython
沒有pip的話, 可以用
到https://github.com/rthalley/dnspython.git 下載
cd dnspython
python setup.py install
搜索引擎 Google新經驗:
+ 把google可能忽略的字列如查詢範圍
- 把某個字忽略
~ 同意詞
. 單一的通配符
* 通配符,可代表多個字母
"" 精確查詢
代碼託管泄漏信息搜索
Google:
http://andy-game.googlecode.com/svn-history/
Gitbub: https://github.com/search?utf8=%E2%9C%93&q=%E5%A4%96%E7%BD%91+%E8%B1%86%E7%93%A3&type=Code&ref=searchresults
ip反查域名
http://dns.aizhan.com
二級兄弟域名蒐集
查詢郵件服務器信息
目標IP地址範圍蒐集
利用代碼託管網站蒐集目標信息
確定ip 地址範圍
掃描c段
獲取cdn真實ip地址
社會工程學
【Web安全學習路線&資料】
整理筆記
這個我覺得最重要,這是一個好習慣 可以讓我們重新把學習的技術做一個總結和鞏固。在總結的過程形成自己對技術的理解與創新。從而讓書本上的知識變成自己的東西。