1. 程式人生 > >【經驗分享】滲透指定網站的思路

【經驗分享】滲透指定網站的思路

特性 數據庫基本 信息 實用 mysql數據庫 asp 域名 win 2016年

轉載:http://tieba.baidu.com/p/4296562184

首先說明我也是菜鳥,只不過花了不少時間在滲透上。下面我把自己會的和大家分享一下。不涉及提權和旁站。只單純的講指定站的滲透思路。
單絲不成線,獨木不成林。哪裏講的不好,請大家指出來,共同進步技術分享


【前戲】
信息探測:主要是網站的腳本語言、數據庫、搭建平臺、操作系統、服務器IP、註冊人信息、網站防護情況。

簡單說一下這些信息的獲取方式:
1.【目標站的腳本語言識別】
1-1 最簡單的方法,在域名後面分別加個/index.asp /index.aspx /index.php /index.jsp
大部分網站根目錄都會放個index首頁文件。這是最快速最簡單的方式。
1-2 愛站 站長工具這些綜合查詢,一般都會給出網站的腳本語言。
1-3 用一些發包工具,也可以探測。比如我們用burp發包時就會返回。
1-4 網站的robots.txt robot.txt site.xml 這些文件很可能會有暴露網站的語言
1-5 在網站任意界面直接查看源碼,搜索asp或aspx或ph或jsp 如果看到前面跟的是網站的域名,那就是網站支持的語言。
1-6 如果不是靜態或者偽靜態,多點開幾個界面,可以看到腳本後綴。
1-7 用google搜索site:目標站域名 inurl:腳本語言類型 如果收錄不是很少,一般都能看出來。
1-8 如果是php的站,網上有下載《php秒知程序》,在以上不能用的情況下可以判斷出來。
1-9 掃目錄或者用爬行工具都可以。


可以說,網站語言是最好判斷的。


2.【目標站使用的數據庫】
2-1 如果語言為asp,基本就是access數據庫 aspx可能是mssql或mysql很少是access 極少會是oracle jsp的站oracle居多
2-2 試網站報錯也可能會間接給出數據庫信息,使網站報錯的方法下面會詳細講。很多方法。
2-3 存在註入時 在參數後面加上 and len(‘a‘)=1 如果返回正常,一般數據庫為mssql或mysql 大站的話可能是db2 界面返回錯誤的話,數據庫基本是oracle
2-4 這個是網上的辦法 在參數後面加上 ;and (select count(*) from sysobjects)>0 如果返回正常那就是mssql數據庫 如果不正常那就不是mssql
2-5 這個很簡單,其實你掃一下端口。就知道是什麽數據庫了。1433對於mssql數據庫 而3306對應mysql數據庫。 如果端口被更改,可以逐一用 xx.xx.xx.xxI:端口 訪問嘗試,如果是數據庫端口,會返回對應的無法連接數據庫的英文 。不是數據庫,服務器會一直載入或者找不到界面。
2-6 有點雞肋,老站的話不確定是不是access,可以用一下暴庫漏洞,找個二級目錄的文件,然後在一級目錄下把/替換成%27 爆出數據庫,那肯定就是access。雖然現在不多了,但是可以隨手一試。




技術分享
加個表情,緩解一下疲勞。這裏大都是自己的經驗,如果引用會說明。




3.【目標網站的搭建平臺探測】
這個的話網上也沒有什麽資料。主要方法不是很多。
3-1 大部分網站直接放進愛站 站長工具,查一下就有了
3-2 查不出來的話,可以用軟件發包,如果用的不是和愛站一樣的探測方式,就可以得到搭建平臺信息
3-3 通過遺留文件獲取到網站的搭建平臺 一些探針文件都會有。而且可以有絕對路徑。所以需要強大的字典和隨手一試
3-4 其實有時候目標站查不出來,我們可以查旁站,一般和目標站搭建平臺一樣的。但是這裏要確保IP是真實的。
我是想不到更多的辦法了,希望有其他方法的朋友分享出來。不過一般情況下這幾個就夠了。




4【目標站的操作系統】
4-1 愛站這些一般都能返回
4-2 發包也可以返回
4-3 可以區別是windows還是linux得小技巧,在網站任意文件鏈接修改任意字符為大寫,返回正常為windows 返回錯誤為linux 這就是特性,原理大家都懂的。
4-4 ping 目標站 根據返回的TTL值可以大概判斷出操作系統。這個我也沒記,需要用的時候百度一下 TTL對於操作系統就可以。 另外說一個小技巧 ping的時候如果返回的TTL不穩定,可以在後面加個 -T 大小寫都可以。就會持續返回了。修網線的都用這個參數,哈哈!
4-5 根據搭建平臺判斷目標操作系統 比如是IIS6.0 一般就是win2003 IIS7.0 7.5 大部分是win2008 IIS8.0 8.5 一般就是win2012
這個有點基礎的人應該都明白。


5.【探測服務器真實IP】
5-1 我一般就直接在愛站這些網站查,多用幾個查詢網站對比一下IP。
5-2 查詢的時候,如果看到有帶有子域名,並且站不多。基本上就是真實IP。
5-3 用seay大法師的神器,子域名挖掘工具。很容易可以看出來
5-4 這是一個簡單的方法,直接本地ping網站 但是不要加www. 一般情況真實IP居多。
5-5 很多主站雖然使用了CDN 但是分站,子域名。一般不會使用。所以這個也可以探測到真實的IP.


6.【獲取網站註冊人的信息】
作用:這個作用很大啊,雖然以前我不這麽認為!
比如一個站你一定要搞,旁站和C短沒辦法利用的時候。那就用註冊人的郵箱查詢他的其他網站,收集密碼。然後在搞目標站,爆破之類的就很好搞了。
6-1 愛站 站長之類的可以查詢到註冊人的信息,郵箱啊 姓名啊 聯系方式啊。然後我們收集起來,社工庫查一下密碼。然後用工具生成字典。爆破他的網站,幾率就會很大。
6-2 網站一般也會有暴露,比如版權那邊 聯系方式那邊。


7.【獲取網站防護情況】
安全狗啊,防火墻啊,雲盾啊等等。。
1-1 直接用網站防護探測工具判斷,八九不離十。下載的話,有群的朋友們,我已經共享上去了。
1-2 找個帶參數的界面,加上 and 1=1 如果有安裝防護(大部分都會開啟註入防護),會暴露防護軟件。如果不是高版本的,網上也是有一些方法繞過的。額,扯遠了。
1-3 網站底部,可能會有防護軟件的平臺入口。細心觀察。昨天就是一個站底部有雲盾超鏈接。


技術分享
歇一會。


以上的方法基本可以獲取到網站的全面信息。
俗話說,知己知彼,百戰不殆。

先不要想著找註入,什麽的。
先觀察一下網站,大概結構。是什麽CMS。這很重要,知道了是什麽CMS,日站(友情檢測),就快速多了。

【淺談CMS識別的幾種方法】
1.看網站底部,如果未修改的話,一般都會有CMS的信息以及版本。
2.robots.txt 確實很多robots都會有CMS的版權,一般在頭部居多。
3.這個方法我常用,就是在google裏site:目標站 CMS 或者內容管理系統。很多時候都能出結果。
4.找到後臺的話,後臺大部分都會有CMS的信息。
5.通過網站鏈接來識別,很多時候鏈接中已經包含了CMS的信息。所以仔細觀察,掃目錄也可以,就不單說了。
6.http://whatweb點bugscaner點com/ 這個是大名鼎鼎的bugscan團隊開發的在線CMS識別平臺,非常給力。我也用這個接口寫了個工具。可以批量,需要的話聯系我,分享。

但是不要看了這個在線的平臺就忘記上面看的方法了,切記。沒有捷徑的啊。苦為良藥。
技術分享


【正式開始日站(友情檢測)】
如果你夠認真的話,大部分的站都能判斷出是什麽CMS,然後我相信你會用百度。你需要做的就是耐心的多看,多嘗試。多翻幾頁搜索結果。夠耐心,還是有很多站可以秒的。防護什麽的除外。

即使有防護,實在搞不下的話也可以在網上下載相應的源碼。本地測試,很多利用的地方啊。
如果識別不出CMS或者全部利用失敗。


1.【網站文件探測】
1-1.我們需要掃描網站的目錄,文件。還是推薦禦劍,但是字典要用大字典。
1-2.放進AWVS或者其他的漏洞掃描器裏面跑


個人習慣:先隨手嘗試找後臺,
一般在域名後面加admin manage manager login 等等一些常用的,或者是用網站域名結合試試。也有可能是域名前兩個字母 後兩個字母+admin等等 反正就是要多試試。大部分都能找到。實在找不到也沒事,後面講找後臺的多種方法。
【提示】
後臺登錄的時候註意一下提示框的內容,比如輸入錯誤的賬號密碼有些站(大部分)是提示 賬號或密碼不正確,但是有的站提示密碼不正確。那時候就可以確定我們輸入的賬號是正確的。因為賬號驗證通過。程序員在寫提示的時候,是分別提示的。
技術分享
如果很容易找到了後臺,那就先嘗試一下弱口令。多嘗試幾個。記得,多嘗試幾個!耐心。不行的話用網站域名登錄,或者加上弱口令稍微組合一下。
如果沒有耐心也可以,隨手特殊符號登錄,比如管理員賬號我用~!@#¥%&* 密碼隨便填。如果登錄報錯呢,那就是沒過濾完全。然後用排除法看看對哪些字符沒過濾。
這時候可以嘗試POST註入,直接用工具就可以。


如果對登錄沒產生影響,那就看登錄有沒有驗證碼。
【後臺無驗證碼情況下】:
爆破。最好用前面收集的註冊人信息,然後用字典生成器,生成一下,在添加上常用的密碼。可以用burp爆破,這個百度上搜索:《burp suite暴力破解網站密碼》,有個百度經驗就是講這個的。 或者用AWVS自帶的爆破,《楊凡的AWVS系列教程22課》有詳細說明。


為什麽和大家說這兩個工具,因為確實好用,確保滲透一點差錯都不能出,不然會耽誤很多時間。






【後臺有驗證碼情況下】
這個時候也分為好幾種情況,
1.驗證碼不變(老站居多)
2..先驗證用戶名密碼
3.先驗證的是驗證碼


1的利用方法,驗證碼不變,我們只要抓包仍然可以爆破。
2的利用方法,如果先驗證用戶名和密碼,一般會提示錯誤。然後密碼清空。這時候驗證碼沒變化的(先驗證用戶的大部分都這樣),我們同樣抓包也可以無視驗證碼。直到正確,驗證碼才會變化。
3的利用方法,這個說白了。就是要搞定驗證碼。
一般我們搞滲透遇到這種情況就不管了,其實也可以搞啊。但是要會點腳本或者編程。


比如我拿次世代驗證碼識別系統舉例,我們拿到一個站,實在沒辦法了。可以試試爆破帶驗證碼的後臺,用什麽語言都可以,抓個包,這個你們會的都會,我也不賣弄,沒啥講的。不會的人也看不懂,所以我就只講方法。次世代本地制造那個驗證碼地址的識別庫,然後各種語言的接口網上都有。
這樣的話可以自動識別驗證碼,教程網上也有,慢慢看。如果密碼不變態,我們夠耐心,還是可以爆破出來的。
技術分享
其實還有一些方法,烏雲有人給出,技術不夠利用不好。


好了剛才說的是爆破,如果不麻煩可以隨手放到工具裏,麻煩可以先不管,我們先看別的情況,


如果網站是IIS的,不論版本。都可以放進短文件腳本跑一下。
如果網站是nginx,可以隨手試試php執行的解析漏洞


可以在前臺找找註入點(終於進入註入了)
1.找不到,都是靜態(偽靜態)
2.存在帶參數的鏈接


1.的解決方法【找到偽靜態的真實地址】
比如網站是www。xxxx。com/indexphp/test/id/189.html
那我們可以嘗試如下↓
www。xxxx。com/index.php/test/id/189 看看會不會返回正常,正常的話那就可以直接嘗試註入。不正常繼續。
www。xxxx。com/index.php/test/id=189
這樣試試,正常嘗試註入。不正常繼續試,多嘗試一點。
www。xxxx。com/index.php/test.php?id=189
我舉得這個例子不好,不難猜。比如↓
www。xxxx。com/news/cc/id_189.html
技術分享


www。xxxx。com/news/test/aa_news1.html
比如這種,也是經常有的。很可能就是偽靜態啊,說不準的,所以我們要多試試。

www。xxxx。com/news/testphp?aa=news1d
www。xxxx。com/news/test.php?aa_news1=1
www。xxxx。com/news/test.php?aa_news1=10
www。xxxx。com/news/test.php?aa_news1=100
www。xxxx。com/news/test.php?=aa_news1
www。xxxx。com/news/test/aa.php?news=1
www。xxxx。com/news/test/aa/news1.php?id=1




像我們看到這些鏈接都可以試試,還有很多更奇葩的鏈接,其實說白了。如果真是偽靜態,自己多構造嘗試,耐心有的話,肯定能出來。
這玩意我是上次看cracer的教程學的。


再說一種簡單的方法,
就是很多偽靜態,你仔細看,一看開這個就界面是有個鏈接的轉換過程的。就是從動態轉為靜態。這時候你手快的話可以截圖,不過一般都截不到。可以抓包,一下就看到真實的動態界面。


技術分享總之舉一反三,多嘗試。


【嘗試註入】
嘗試註入的話,不止用and xor也可以,or我一直都沒用過。
返回正常界面↓
+xoR+5>6 因為xor是非,和且相反。所以需要相反
+xOr+5=6
+And+666=666
等等,只要讓語句成立就可以。


返回正常界面↓
+xoR+5>4 因為xor是非,和且相反。所以需要相反
+xoR+5=5
+aNd+666=777


都可以,以此類推。技術分享
因為很多站沒防護的話,有的防註入只是黑名單,and 或者=號。
所以大牛的繞過思路是,看網站過濾什麽字符,然後能不能用其他的字符達到目的。所以要逐一的測試。




有註入的話先別忙著註入,放到工具裏面看看權限,如果是access數據庫。sa權限,可以用用工具直接寫馬進去getshell。根本不需要註入。找後臺。如果是mssql,mysql,一般魔術引號(有點基礎的人懂的,簡單說一下就是字符轉義),沒開的話,可以利用工具寫文件進去網站(高權限),也可以執行命令,明小子就可以,所以註入時候看看權限。一般權限可以讀網站文件,瀏覽目錄。


不能註入,放進工具試試cookie註入。
如果提示非法註入,或者過濾。可以試試cookie註入。不行的話,在試幾個界面,因為每個界面的代碼都不一樣。很可能有的界面就沒過濾完。




如果存在那種防註入系統,提示您的註入信息已經被記錄,IP:XX.XX.XX.XX 非法字符:and 1=1 操作時間:2016年1月1日 幾點幾分什麽的。


這個也可以通過這個防註入系統拿shell,因為他會記錄我們的註入信息。那我們只需要寫一句話進去。他也會記錄,而且是腳本文件。這時候只要找到他的文件地址連接一句話就可以。這個利用方法網上都有。 可以百度:利用防註入系統拿shell
技術分享
所以說,註入點可以利用的地方很多。


累了,寫了三個多個小時了。

【註入查不到表的解決方法】
說到註入了,可以註入查不到表就很坑了,我就經常遇到。要是access的話,就簡單社工一下,看看域名。組合一下多嘗試一下,如果不行。也可以看看後臺的字段,有沒有字段前綴,有可能表前綴和字段前綴是一樣的。知道cms的話,下載一下看看默認的是什麽,試試,在試試組合。
要是Mysql數據庫的表就沒那麽好猜了,方法同理。不過一般多發於5.0以下,因為5.0以上有自帶的表可供查詢。
技術分享


【註入查不到字段的解決方法】
這個的話就稍微好點
最簡單的方法:在後臺登錄框,查看登錄的 字段。肯定是可以看到的,但是不是100%就是數據庫登錄的字段,前提是管理員沒有修改。
看人品的辦法:《偏移註入》這裏我簡單講一下,剛才準備詳細講,但是太困了。後面還有不少東西要講。 這玩意就是字段越多,越利於偏移註入的利用,如果你order by 時候只有三個五個,那就不用試了,基本不可能成功。具體原理網上有,用到的時候查一下就行。






註入不能利用,就找上傳(其實應該先找上傳,但是上傳一般掃出來的多。註入就隨手試),前面講了掃目錄,這時候可以看看有沒有什麽可以利用的,也可以在網站後面隨手加up_loadfile.asp uploadfile.asp loadfile.asp fileload.asp 等等,或者是upload目錄,類似的多試試。


技術分享
還可以看看,網站的搜索框。 幫助欄目裏面啊,一般都有搜索的,試試特殊符號會不會有影響。有影響可以搜索註入啊,有些轉義了把引號轉成\‘ 可以用寬字符啊。%bf‘ 其實你在搜索結果中一般都能看到過濾了哪些字符。這種一般手工試,會提升水平的,因為經常要構造。而且如果是POST提交的根據也沒辦法跑搜索型的註入,雖然很少post提交。這些東西說不準的。




沒有的話,那就看看網站有沒有什麽下載文件啊,很多網站都有下載文件。這個也是前陣子才註意到的,比如有兩種下載鏈接如下↓
www。test。com/down/file/123456.doc
www。test。com/down/file.php?file=123456.doc


你像這兩種鏈接,第二種就可能存在下載漏洞。
比如在網站點新聞,有個news.php?id=35
我們可以嘗試
www。test。com/down/file.php?file=../news.php
www。test。com/down/file.php?file=/../news.php
有的站點就可以下載,雖然不多。但是可以嘗試一下。
可以利用,一般access的數據庫就下載配置文件,然後查看數據庫信息。嘗試下載數據庫。
mysql或mssql的站也是下載配置文件,查看數據庫連接信息。找不到配置文件路徑?沒事,隨便下載個新聞一般都可以,很多文件都包含了數據庫配置的文件路徑。主要是耐心。
技術分享


然後還可以試試網站有沒有遍歷啊,www。test.com/news/up_image/test.jpg 可以在後面加../或&=../或/../ 等等,自己多試試。主要是耐心。





看看掃出來的目錄有沒有什麽,敏感信息啊。比如類似於木馬的文件,那可以訪問一下。嘗試爆破。如果掃出來大馬,asp的可以用工具溢出密碼。網上有下載,耐心找找。很好用的。php的馬就爆破,最好用burp或者AWVS,不會的話上網查,現在學習環境很好的。你還需要一手好字典,不然再好的工具也徒勞。所以你需要收集,上網查。


【掃描中的敏感信息】
如果是已知的cms,一般不會有上傳文件、數據庫什麽的掃出。主要就是掃備份,和txt,馬兒之類的。xml,html、或者一些遺留。還有可能管理員會增加一些目錄,裏面會有驚喜。


不是cms,很多可以利用↓
1.看掃出來的目錄名字,多思考。很大幫助。
2.一些txt,txt的字典一定要多添加點進去。作用很大,會有你想不到的收獲,
3.數據庫掃出來,哪怕是備份的數據庫。密碼不對也沒事,一般多猜猜就進去了。
4.備份,這個出來很重要。
5.xml這種也要看,打開xml文件界面後以後搜索.txt .mdb .php .asp root admin pass等等,我前兩天就是在一個站,沒什麽利用的情況下掃出來了一個編輯器目錄下的xml,然後打開搜索到了一個txt的地址,然後通過這個地址發現了數據庫的所在地址。然後下載了數據庫,拿到了shell。
6.一些奇怪的html文件都要看,而且要細心觀察。
7.短目錄。根據我的經驗,很多網站管理員都會在根目錄下建目錄,然後裏面是另一個站或者是分站。亦或者是以前的備份。所以這些目錄千萬不要偷懶,也掃一下。
技術分享
還有很多思路。下面講一下端口的利用吧,這方面的教程很少。


先歇會技術分享眼疼

網站所有地方都沒辦法日(友情檢測)的話,從端口下手也是不錯的選擇。
技術分享





端口的話,其實東西不多,但是網站沒人出教程,只能自己搞。搜到的都是抓雞的。


【容易利用的端口】
21端口 ftp
1433端口 mssql數據庫
3306端口 mysql數據庫
3389端口 遠程端口
還有一些端口,這裏只講幾個我們滲透容易利用的。


其實說白了就是爆破,主要問題是工具和字典。字典的話,多收集好字典吧。
工具我給推薦幾個
21端口 推薦Kali的Metasploit
1433端口 推薦Kali的Metasploit
3306端口 推薦MysqlPasswordAuditor 這是windows的,很好用。網上有破解版。
3389端口 這個我暫時沒好工具。


【其他端口】
我們在掃端口的時候經常會看到一些奇怪的端口,或者不認識的端口。


嘗試利用:直接用 服務器IP:端口 在瀏覽器訪問,很可能phpmyadmin就在哪個端口下面,說不準的,或者一些管理空間入口,其他wdcp什麽的 很多。總之還是耐心,多試試。
技術分享

下面講一下找後臺,老生常談。希望幫助到新手朋友。


【實用找後臺的幾種方法】
1.常用後臺地址
2.掃後臺
3.google黑客 site:xxx.com 登錄|登陸|後臺|系統|中心|管理員 或者site:目標站 inurl:admin|manage|login 一般雖然改了後臺,大部分都是在添加了字符,很少會把關鍵詞去掉。|代表或
4.查看網站圖片,其中目錄很可能包含管理目錄
5.這個方法是我前陣子註入的時候發現的,就是很多首頁文件都會包含後臺目錄,可以試試。比較雞肋。
6.結合域名或者cms猜一下,耐心。、


【網站絕對路徑的獲取方法】
很多時候需要絕對路徑,比如跨庫註入、sqlmap下用sql-shell、註入可寫文件但是不可讀文件。還有很多。
通過遺留文件獲得,比如phpinfo info sitephp 一些探針文件啊都有,等等。
通過報錯獲得,下面有報錯方法。


【實用報錯的幾種辦法】
1.直接在鏈接後面加特殊符號 引號不行就換別的
2.訪問不存在的文件
4.如果網站配置不當 在任意登錄界面,你隨意登錄,也會報錯。
5.google搜索site:xx.com error等報錯特有關鍵詞
我覺得還有很多,希望朋友們分享。
技術分享



講個短點的供新手參考,
首先網站環境要摸清楚,先踩點,cms要判斷清楚。目錄和漏洞掃起來,有上傳就上傳,沒上傳找註入,有註入就註入,沒註入找後臺,有後臺弱口令,字符登錄看看是否報錯,報錯就post註入,不行就爆破,前面收集的註冊人信息社工下密碼,對爆破有幫助,再不行就掃端口,幾個端口都可以爆破,要用好字典。不行就旁站吧,旁不下就C段。


-----------------------------------------------------------------------------------------------------------------

希望對新手有幫助。傾情奉獻。技術分享

【經驗分享】滲透指定網站的思路