如何高效的進行子域名收集與篩選?
時間:2023-02-19 13:52:01 | 來源:建站知識
時間:2023-02-19 13:52:01 來源:建站知識
如何高效的進行子域名收集與篩選?:
介紹
當我在尋找Hackerone上的新目標時,我總是會去關(guān)注已解決報告的數(shù)量,因為這一更高的數(shù)字可能意味著你在這里能夠發(fā)現(xiàn)漏洞的機會比在那些關(guān)閉了提交意見的程序上更為容易。正因為這個原因,所以我選擇了雅虎!
我們都知道雅虎是大型的國際公司,所以我預計其會有很多子域名,路徑和重定向,但從哪里開始呢?這時候就要用到我最喜歡的枚舉/強化子域名工具:Sublister(aboul3la/Sublist3r)和Fierce(davidpepper/fierce-domain-scanner)了。我希望能夠通過他們找到那些被遺忘、錯誤配置或運行舊版本軟件的子域名。最終,Subliste3r給了我9000多個子域,但我該如何檢查它們呢?
半自動搜索
我相信在這9000個子域名中,至少會存在一個薄弱的點。因為在我看來要想記住如此大的一家公司的一切是非常困難的。當Sublist3r做了他的工作后,我打開了這一結(jié)果,并手動刪除了無用的和重復的子域名,以及那些沒有解決或沒有響應的。當然我沒有一個一個檢查,但這樣下來仍然還有7000個子域名。
接下來讓我們試試快速掃描,我想這應該有助于整理。而為了達成這一目的,我嘗試使用Nmap的輸出到XML,因為它更容易解析。
nmap -sS -p80,443 -iL nmap_input.txt -oX nmap_output
來自Nmap的示例XML輸出:
<hostnames><hostname name=”start.producersdesktop.yahoo.com” type=”user”/><hostname name=”proxy.publish.bf1.yahoo.com” type=”PTR”/></hostnames><ports><port protocol=”tcp” portid=”80"><state state=”closed” reason=”reset” reason_ttl=”42"/><service name=”http” method=”table” conf=”3"/></port></ports><times srtt=”148262" rttvar=”148262" to=”741310"/></host>
我們只能通過添加 – 打開nmap命令來掃描打開的端口。對我來說,最有用的參數(shù)是“state”和“hostname name”。我相信“hostname name”是DNS,在這種情況下,我發(fā)覺有時候有我的ISP的地址,所以我知道他們可能沒有解決這一問題。在這個基礎上,我們可以嘗試拋出另外幾百個子域。我寫了一個腳本,它能夠根據(jù)主機名的名稱刪除xml條目,并將其另存為另一個XML。
import xmltreedef removeHostname(): for host in root.iter('host'): for elem in host.iter(): if 'name' in elem.attrib and elem.attrib['name'] == 'ISP_redir_site': root.remove(host)tree.write('output.xml')
好的,現(xiàn)在我們已經(jīng)有了開放80端口的所有子域名。接下來我們可以掃描nmap他們的HTML標題,并再次刪除那些有些相似的標題。
雅虎有很多不同語言的網(wǎng)站,例如:
http://ru.search.yahoo.com,
http://br.search.yahoo.com,
http://de.stars.yahoo.com等,下一步是把那些重要的子域名拒之門外。最后我整理出了約700個潛在的易受攻擊的子域名。
這時候該是檢查剩下的內(nèi)容的時間了。我不知道如何找到其他子域之間的下一個共同點,所以我手動檢查了它們。過了一段時間,我在一些子域看到了相似性和重復性,所以實際看來比我想象的容易得多。因此這樣我就可以在YQL Internal Console上找到開放的YQL內(nèi)部控制臺。而我進一步的探索也逐漸展示了在
http://ygh-app.media.yahoo.com/上進行對Beaker實例的測試。
除了
http://yvap.query.yahoo.com/v1/test/js/console_ajax.js之外的JavaScript代碼,我找不到任何有趣的東西。雖然有不止一個內(nèi)部控制臺,但其他內(nèi)部控制臺都關(guān)閉了,至少看起來像像是如此。
YQL的示例查詢是在
https://query.yahooapis.com/v1/public/yql?q=show%20tables&diagnostics=true,所以我在其余的控制臺鎖定過程中也嘗試了這種方法。這意味著內(nèi)部控制臺的主面板已關(guān)閉,但您仍然可以通過url提交查詢。我列舉了所有的這些,并一一進行了檢查?!皊how tables”的命令完成了其中的大部分工作,所以我試圖走得更遠,但在我報告之后,證明其是可以公開訪問的,甚至應該說必須是。在
http://ygh-app.media.yahoo.com/我發(fā)現(xiàn)了正在測試Beaker的網(wǎng)站,說實話,我其實并不一定需要處理Beaker,但經(jīng)過快速的檢測,我發(fā)現(xiàn)了另一個信息已經(jīng)被披露。
總結(jié)
我知道這不是革命性的方法,但這樣做肯定會更快,更精確,當然也會更省時,因此我仍然希望與您分享這種方法。幾周前,我發(fā)現(xiàn)了一個名為Aquatone的工具,其中包含我所需要的一切。當然,如果您使用任何其他工具進行檢測,也可以分享給我們。
本文翻譯自:https://medium.com/@woj_ciech/how-to-find-internal-subdomains-yql-yahoo-and-bug-bounty-d7730b374d77,如若轉(zhuǎn)載,請注明來源于嘶吼: 如何高效的進行子域名收集與篩選? 更多內(nèi)容請關(guān)注“嘶吼專業(yè)版”——Pro4hou