漏洞挖掘中的常見的源碼泄露

這幾天一直想寫點啥,偶然間,逛我們團長 小艾 的博客,我看到一個文章,題目是 " 常見的web 源碼泄露漏洞 ",其中記錄了好多源碼泄露,但是我就見過其中三個,所以就想著總結一份挖洞中常見的源碼泄露吧。

小艾那篇文章的地址:http://www.htmlsec.com/?p=50n

在記錄之前,我為了證明我的想法,我以關鍵詞 源碼泄露 在烏雲漏洞庫刷了一遍案例。

一共 300 多個,但是說白了還是常見的那幾種,我就從多到少的方式開始寫。

一,svn 源碼泄露

SVN(subversion)是源代碼版本管理軟體。在使用SVN管理本地代碼過程中,會自動生成一個名為.svn的隱藏文件夾,其中包含重要的源代碼信息。但一些網站管理員在發布代碼時,不願意使用『導出』功能,而是直接複製代碼文件夾到WEB伺服器上,這就使.svn隱藏文件夾被暴露於外網環境,黑客可以藉助其中包含的用於版本信息追蹤的『entries』文件,逐步摸清站點結構。

svn 源碼泄露示例:

http://127.0.0.1/.svn/entriesn

1,

2,

如果存在以上案例中的情形,說明存在 svn 源碼泄露 。

svn 源碼泄露利用工具:

這個一般都是使用的 Seay SVN漏洞利用工具 法師的工具。

鏈接: http://pan.baidu.com/s/1eSP6lUE 密碼: a7b1n

漏洞利用證明截圖:

二, 網站源碼壓縮備份泄露

一般網站管理員在日常維護中,總會把網站源碼給備份一下,防止網站出現問題時,能馬上的恢復使用,不過一般的管理員安全意識不高,在備份的時候,會使用一些常見的壓縮備份名,而且不光使用常見的備份名字,大部分的管理還會把備份好的源碼直接放在網站根目錄里,這樣給一些不法之徒,提供了一個很方便的滲透思路,或者有些直接不需要滲透了,因為備份中的數據,就已經滿足那些不法之徒的需求了。

網站源碼壓縮備份示例:

1,

2,

部分常見的網站源碼壓縮備份名:

0.rarnweb.rarnwww.rarnwwwroot.rarnback.rarntemp.rarnbackup.rarnbbs.zipnwebsite.rarn

常用探測源碼備份工具:

這個其實不是靠工具的,是靠字典的,工具的話,網上任何能掃目錄的工具,都可以用來探測源碼備份的,不過常見的還是用的 御劍1.5 ,或者自己寫的一些掃目錄的小腳本工具。

三, .git 源碼泄露

在運行git init初始化代碼庫的時候,會在當前目錄下面產生一個.git的隱藏文件,用來記錄代碼的變更記錄等等。在發布代碼的時候,把.git這個目錄沒有刪除,直接發布了。使用這個文件,可以用來恢復源代碼。

.git 源碼泄露示例:

http://127.0.0.1/.git/confign

這類案例網站不好站,但是我千找萬找,還是找見一個案例。。。

.git 漏洞利用工具:

1, GitHack

GitHack.py http://127.0.0.1/.git/n

GitHack 工具使用說明:

GitHack:一個git泄露利用腳本 - FreeBuf.COM | 關注黑客與極客

2,dvcs-ripper

rip-git.pl -v -u http://127.0.0.1/.git/n

暫無使用詳細使用說明,推薦使用第一個工具。

四,GitHub 項目源碼泄露

github 是全球最大的 那個啥 交流網站,數以百計的大俠,高手,聖手,教主,小白,宗主,等等級別人物的彙集之地,而平台的服務設施,很人性化,而且用戶體驗度高,所以,用的人很多,而且很人也都喜歡把自己的代碼上傳到平台,反正是很方便。

有些安全意識不高的程序員大意的把自己的項目源碼上傳到 GitHub ,一些 不法份子 在收集信息中,通過關鍵詞進行搜索,可以找到關於目標站點的信息,有些信息直接泄露了網站源碼,管理員賬號密碼,資料庫信息等。

漏洞示例:

http://www.loner.fm/bugs/searchbug.php?q=github&page=1n

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

總結:

源碼泄露,正如一開始我看小艾那個文章,有好多個,但是在實際的漏洞挖掘中,就這不幾個常見的,或者說就前三種,剩下的源碼泄露的漏洞都是不好找。

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

完了嗎?肯定不能完啊!主要還是閑的沒事,就自己想著自己寫一個掃源碼泄露的小腳本吧,結果,從一開始遠大的抱負,寫一個讓自己用的腳本,結果越寫, bug 越多,,,多到我自己都不會改了。。。

從多線程批量掃描式,刪到單線程批量,再繼續刪到單個網站外接式探測,再繼續刪到單個網站內接式探測,,,,最後全刪完了。。。

恩,然後瞎幾把寫了一個純屬娛樂的還誤報很多的垃圾小腳本。。。

# (幸虧我不是程序員啊!要不然真的成了,錢多,話少,還 ④ 的早的段子了。。。)

# -*- coding:utf-8 -*-nn# 導入 request 模塊nimport requestsn# 把需要探測的文件放到這個列表裡,並賦值給 mulu nmulu = [/.git/config, /.svn/entries, web.rar, www.rar, wwwroot.rar, 1.rar, bbs.zip, website.rar]nprint - - - - - - - - - - - - - - - - - - - - - # 沒啥用nprint u| 這是一個很娛樂的源碼泄露探測腳本 |# 沒啥用nprint - - - - - - - - - - - - - - - - - - - - - # 沒啥用n# 用來輸入需要探測的網址ndizhi = raw_input(請輸入URL地址:.decode(utf-8).encode(gbk))n# 把列表裡的元素一個一個遍歷出來nfor a in mulu:nt# 把網址和探測的文件連接到一起n tance = "%s/%s" % (dizhi, a)n # print tance 這一行是我看看到底連接到一起了沒的。。。nt# 使用 request 模塊里的 get 來獲取這個網址n qq = requests.get(url=tance)nnt# 獲取響應碼並賦值給 dqn dq = qq.status_codent# 判斷響應碼是否為 200 ,是,就進行下一步n if dq == 200 :ntt# 輸出 響應碼和探測地址n print u"響應碼:[%s] - 地址:%s" % (dq, tance)nt# 如果響應碼不是 200 就進行著一步n else:nt# 輸入響應碼和地址n print u"響應碼:[%s] - 地址:%s" % (dq, tance)n

來,開始玩一玩這個垃圾腳本 (*^__^*) 嘻嘻……

恩,測試測試 離心小姐姐 的博客吧? #(斜眼笑...)

請輸入URL地址:http://www.lsafe.orgn

@我是離心 你不會打我把? #( 一臉無辜.GIF )

完 ...


推薦閱讀:

如何玩轉Intel多款產品提權漏洞?
漏洞之我觀
漏洞提交級別說明
安卓開發/反編譯工具中多存在嚴重漏洞

TAG:源码泄露 | 漏洞挖掘 |