精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:安全行業(yè)動態(tài) → 正文

如何入侵Pocket內(nèi)網(wǎng)

責(zé)任編輯:editor005 作者:Sphinx |來源:企業(yè)網(wǎng)D1Net  2015-08-25 14:34:39 本文摘自:FreeBuf

最近,Pocket應(yīng)用的開發(fā)人員修復(fù)了幾個泄露數(shù)據(jù)的漏洞,黑客可從服務(wù)器上獲取敏感信息。這里獻(xiàn)上教程,供大家學(xué)習(xí)交流。

如何入侵Pocket內(nèi)網(wǎng)

  Pocket是什么

我已經(jīng)很多年沒把Firefox當(dāng)作我的主力瀏覽器了,所以其實之前我都沒有聽說過Pocket,直到我在Bugzilla看到這么篇帖子,講的就是Mozilla基金會在所有版本的Firefox中預(yù)裝了Pocket插件,并且這個插件無法卸載。盡管這引起了用戶們的強烈抗議,基金會還是固執(zhí)地綁定Pocket。

Pocket的功能就是讓用戶保存網(wǎng)頁“稍后閱讀”。Pocket可以將你要閱讀或者一時沒有讀完的網(wǎng)頁標(biāo)記下來,接著同步到服務(wù)器端,然后你就可以在不同的設(shè)備上閱讀。作為信息安全從業(yè)者,我發(fā)現(xiàn)這種功能通常都會導(dǎo)致安全問題,所以我就打算檢查一下Pocket有沒有問題。

事實上,這些漏洞中,大部分就可以被攻擊者利用了。攻擊者想要利用這些漏洞都不需要什么復(fù)雜的工具,甚至連腳本的知識都不需要。

嘗試1:協(xié)議處理程序

用戶可以通過Pocket網(wǎng)站上的隊列管理功能添加URL到隊列中。由于應(yīng)用的用途主要是瀏覽網(wǎng)上的網(wǎng)頁,所以這些URL理應(yīng)被限制,應(yīng)該只允許http和https鏈接。所以首先我嘗試在隊列中添加以下鏈接:

file:///etc/passwd

ssh://localhost

telnet://localhost:25

很遺憾,經(jīng)過測試,這些都沒成功

嘗試2:利用Pocket功能作為內(nèi)網(wǎng)代理

我之前在Apache服務(wù)器的狀態(tài)頁面看到過一條Apache錯誤信息。這種錯誤信息通常是.htaccess或者Apache配置文件限制了localhost或一些信任的網(wǎng)段訪問server-status的時候才會出現(xiàn)的:

Forbidden

You don't have permission to access /server-status on this server.

我在我的Pocket隊列中加了一條新鏈接:http://127.0.0.1/server-status。加入后,后端服務(wù)器就會發(fā)送HTTP請求獲取內(nèi)容。Apache會信任來自localhost的請求嗎?

事實證明,這一招很管用,之后我就在Pocket隊列中看到了如下信息:

Apache Server Status for 127.0.0.1

Server Version: Apache/2.2.29 (Unix) DAV/2

Server Built: Mar 12 2015 03:50:17

Current Time: Tuesday, 28-Jul-2015 10:07:45 CDT

Restart Time: Tuesday, 28-Jul-2015 03:20:12 CDT

Parent Server Generation: 12

Server uptime: 6 hours 47 minutes 32 seconds

Total accesses: 241913 - Total Traffic: 4.1 GB

CPU Usage: u1209.24 s110.06 cu0 cs0 - 5.4% CPU load

9.89 requests/sec - 177.5 kB/second - 17.9 kB/request

40 requests currently being processed, 14 idle workers

...

服務(wù)器狀態(tài)情況的全部輸出被同步到了我的Android上。Apache的mod_status可以顯示出大量有用的信息,包括內(nèi)部來源和目標(biāo)IP地址,發(fā)送的請求中的URL的參數(shù),還有查詢參數(shù)。對于Pocket應(yīng)用,請求的URL包括Pocket用戶們正在瀏覽的URL,因為這些請求是通過HTTP GET方式進(jìn)行的。

要隱藏上述的這些服務(wù)器信息,我們可以關(guān)閉Apache中的ExtendedStatus。大部分Pocket的后端服務(wù)器都關(guān)閉了ExtendedStatus,但是很小一部分的服務(wù)器還是開著,所以就導(dǎo)致攻擊者可以獲取到這些有用的信息。

另外,通過修改server-status 的GET參數(shù),攻擊者可以強制然Pocket重新下載頁面,這樣黑客就有可能獲取到不同服務(wù)器的信息。

http://127.0.0.1/server-status?meaningless_parameter=1

http://127.0.0.1/server-status?meaningless_parameter=2

http://127.0.0.1/server-status?meaningless_parameter=3

Pocket搭建在亞馬遜EC2上

既然Pocket存在漏洞可以讓用戶獲取到Pocket后端服務(wù)器的相關(guān)信息,我們就看看利用這個漏洞我們還能獲取到哪些信息。簡單使用dig命令,我們就可以知道Pocket用的是亞馬遜的EC2服務(wù)器。亞馬遜的EC2有個實例元數(shù)據(jù)服務(wù)。這個服務(wù)只能從內(nèi)部訪問,無需驗證,在所有的EC2實例上都有。我們可以嘗試使用這個服務(wù)獲取更多的信息:

http://169.254.169.254/latest/meta-data/

http://169.254.169.254/latest/meta-data/hostname

http://169.254.169.254/latest/meta-data/ami-id

在Pocket隊列中添加了上面的這些鏈接后,我就能看到完整的服務(wù)器回應(yīng)了。EC2的元數(shù)據(jù)包括很多對攻擊者有用的信息,包括IAM登錄信息,還有關(guān)于這個instance的細(xì)節(jié)信息,包括可用區(qū)、instance類型、網(wǎng)絡(luò)類型、MAC地址,塊存儲器的信息等。

攻擊者還可以干什么呢?

對localhost的HTTP服務(wù)進(jìn)行端口掃描,這可以繞過EC2的防火墻規(guī)則

對端口掃描的結(jié)果進(jìn)行分析,識別開啟的web應(yīng)用

在Pocket內(nèi)部環(huán)境下進(jìn)行漏洞利用

很多大企業(yè)或者小公司都會有只能通過內(nèi)部訪問的web應(yīng)用,這些應(yīng)用通常無需驗證,因此很容易會被攻擊者利用。

server-status中的這些內(nèi)部IP地址能用來干什么呢

從亞馬遜EC2元數(shù)據(jù)上可以看出,Pocket使用的EC2服務(wù)器是在us-east-1(美東1區(qū))區(qū)域,網(wǎng)絡(luò)類型是classic(EC2有兩種網(wǎng)絡(luò)類型可選:EC2-Classic 和VPC。VPC更好一些,有些實例類型也只有VPC上才有。VPC在創(chuàng)建子網(wǎng)絡(luò)和訪問控制列表(ACL)的時候更加靈活)。

由于Pocket用的是EC2-Classic,要訪問server-status中的內(nèi)部IP地址,只需要在us-east-1區(qū)域租個2美分/小時的t1.micro實例。這樣攻擊者就可以使用RFC-1918地址訪問這些實例上運行的服務(wù)了,例如ssh和http,甚至還可以進(jìn)行端口掃描。

使用這些內(nèi)部IP地址訪問后端服務(wù)器有幾個優(yōu)點:

可以繞過前端負(fù)載平衡器和前端的WAF防火墻之類的東西,在有前端負(fù)載平衡器的情況下,攻擊者可以通過設(shè)置X-Forwarded-For修改源IP地址,黑客可以通過這種方法避開ACL或者偽造log。

輸入重定向

像Pocket這一類的應(yīng)用在處理HTTP重定向鏈接的時候很有可能會忽視某些問題,造成安全隱患。那在URL隊列中加入重定向鏈接會發(fā)生什么呢?我輸入了file:///etc/passwd,后果很嚴(yán)重:

HTTP/1.1 301 Moved Permanently

Location: file:///etc/passwd

Content-Length: 52

Date: Tue, 28 Jul 2015 18:42:58 GMT

Connection: keep-alive

Moved Permanently. Redirecting to file:///etc/passwd

我在Android機上刷新了Pocket應(yīng)用后,隊列中就增加了file:///etc/passwd。點擊之后,/etc/passwd完整的內(nèi)容就呈現(xiàn)在了我眼前。

應(yīng)Pocket的要求,/etc/passwd內(nèi)容已刪除

漏洞能夠造成什么影響可以留給讀者考慮。

有了/etc/passwd之后能干什么

在測試Pocket的時候,我用這個重定向漏洞請求了file:///proc/self/status文件,這個文件可以用來獲取正在運行的進(jìn)程的更多信息。

下面就是部分進(jìn)程狀態(tài)信息:

Uid: 0 0 0 0

Gid: 0 0 0 0

以root身份運行這個進(jìn)程能夠造成什么后果也留給讀者考慮。

把漏洞結(jié)合起來

Pocket針對我的報告快速做出了回應(yīng),所以我沒能夠把這些漏洞結(jié)合起來。但是設(shè)想如果真的有個心懷不軌的攻擊者發(fā)現(xiàn)了這些漏洞,他能做些什么呢?

1. 通過301重定向獲取file:///etc/passwd文件,然后獲取EC2用戶的home目錄

2. 從用戶home目錄獲取ssh私鑰

3. 使用/server-status獲取內(nèi)部IP地址

4. 租一個EC2實例,地區(qū)設(shè)置在US-EAST-1地區(qū)

5. 用獲取的到的ssh私鑰連接Pocket后端服務(wù)器的IP地址

接下來能做什么,你懂的^_^

Pocket的漏洞披露政策還是很負(fù)責(zé)的,我把所有的漏洞細(xì)節(jié)第一時間提交給了Pocket官方,而漏洞披露時間是由提交者自行決定的,不過要在漏洞提交后的21天后,好讓Pocket有時間處理漏洞?,F(xiàn)在漏洞都已經(jīng)修復(fù)。

關(guān)鍵字:Pocket元數(shù)據(jù)服務(wù)WAF

本文摘自:FreeBuf

x 如何入侵Pocket內(nèi)網(wǎng) 掃一掃
分享本文到朋友圈
當(dāng)前位置:安全行業(yè)動態(tài) → 正文

如何入侵Pocket內(nèi)網(wǎng)

責(zé)任編輯:editor005 作者:Sphinx |來源:企業(yè)網(wǎng)D1Net  2015-08-25 14:34:39 本文摘自:FreeBuf

最近,Pocket應(yīng)用的開發(fā)人員修復(fù)了幾個泄露數(shù)據(jù)的漏洞,黑客可從服務(wù)器上獲取敏感信息。這里獻(xiàn)上教程,供大家學(xué)習(xí)交流。

如何入侵Pocket內(nèi)網(wǎng)

  Pocket是什么

我已經(jīng)很多年沒把Firefox當(dāng)作我的主力瀏覽器了,所以其實之前我都沒有聽說過Pocket,直到我在Bugzilla看到這么篇帖子,講的就是Mozilla基金會在所有版本的Firefox中預(yù)裝了Pocket插件,并且這個插件無法卸載。盡管這引起了用戶們的強烈抗議,基金會還是固執(zhí)地綁定Pocket。

Pocket的功能就是讓用戶保存網(wǎng)頁“稍后閱讀”。Pocket可以將你要閱讀或者一時沒有讀完的網(wǎng)頁標(biāo)記下來,接著同步到服務(wù)器端,然后你就可以在不同的設(shè)備上閱讀。作為信息安全從業(yè)者,我發(fā)現(xiàn)這種功能通常都會導(dǎo)致安全問題,所以我就打算檢查一下Pocket有沒有問題。

事實上,這些漏洞中,大部分就可以被攻擊者利用了。攻擊者想要利用這些漏洞都不需要什么復(fù)雜的工具,甚至連腳本的知識都不需要。

嘗試1:協(xié)議處理程序

用戶可以通過Pocket網(wǎng)站上的隊列管理功能添加URL到隊列中。由于應(yīng)用的用途主要是瀏覽網(wǎng)上的網(wǎng)頁,所以這些URL理應(yīng)被限制,應(yīng)該只允許http和https鏈接。所以首先我嘗試在隊列中添加以下鏈接:

file:///etc/passwd

ssh://localhost

telnet://localhost:25

很遺憾,經(jīng)過測試,這些都沒成功

嘗試2:利用Pocket功能作為內(nèi)網(wǎng)代理

我之前在Apache服務(wù)器的狀態(tài)頁面看到過一條Apache錯誤信息。這種錯誤信息通常是.htaccess或者Apache配置文件限制了localhost或一些信任的網(wǎng)段訪問server-status的時候才會出現(xiàn)的:

Forbidden

You don't have permission to access /server-status on this server.

我在我的Pocket隊列中加了一條新鏈接:http://127.0.0.1/server-status。加入后,后端服務(wù)器就會發(fā)送HTTP請求獲取內(nèi)容。Apache會信任來自localhost的請求嗎?

事實證明,這一招很管用,之后我就在Pocket隊列中看到了如下信息:

Apache Server Status for 127.0.0.1

Server Version: Apache/2.2.29 (Unix) DAV/2

Server Built: Mar 12 2015 03:50:17

Current Time: Tuesday, 28-Jul-2015 10:07:45 CDT

Restart Time: Tuesday, 28-Jul-2015 03:20:12 CDT

Parent Server Generation: 12

Server uptime: 6 hours 47 minutes 32 seconds

Total accesses: 241913 - Total Traffic: 4.1 GB

CPU Usage: u1209.24 s110.06 cu0 cs0 - 5.4% CPU load

9.89 requests/sec - 177.5 kB/second - 17.9 kB/request

40 requests currently being processed, 14 idle workers

...

服務(wù)器狀態(tài)情況的全部輸出被同步到了我的Android上。Apache的mod_status可以顯示出大量有用的信息,包括內(nèi)部來源和目標(biāo)IP地址,發(fā)送的請求中的URL的參數(shù),還有查詢參數(shù)。對于Pocket應(yīng)用,請求的URL包括Pocket用戶們正在瀏覽的URL,因為這些請求是通過HTTP GET方式進(jìn)行的。

要隱藏上述的這些服務(wù)器信息,我們可以關(guān)閉Apache中的ExtendedStatus。大部分Pocket的后端服務(wù)器都關(guān)閉了ExtendedStatus,但是很小一部分的服務(wù)器還是開著,所以就導(dǎo)致攻擊者可以獲取到這些有用的信息。

另外,通過修改server-status 的GET參數(shù),攻擊者可以強制然Pocket重新下載頁面,這樣黑客就有可能獲取到不同服務(wù)器的信息。

http://127.0.0.1/server-status?meaningless_parameter=1

http://127.0.0.1/server-status?meaningless_parameter=2

http://127.0.0.1/server-status?meaningless_parameter=3

Pocket搭建在亞馬遜EC2上

既然Pocket存在漏洞可以讓用戶獲取到Pocket后端服務(wù)器的相關(guān)信息,我們就看看利用這個漏洞我們還能獲取到哪些信息。簡單使用dig命令,我們就可以知道Pocket用的是亞馬遜的EC2服務(wù)器。亞馬遜的EC2有個實例元數(shù)據(jù)服務(wù)。這個服務(wù)只能從內(nèi)部訪問,無需驗證,在所有的EC2實例上都有。我們可以嘗試使用這個服務(wù)獲取更多的信息:

http://169.254.169.254/latest/meta-data/

http://169.254.169.254/latest/meta-data/hostname

http://169.254.169.254/latest/meta-data/ami-id

在Pocket隊列中添加了上面的這些鏈接后,我就能看到完整的服務(wù)器回應(yīng)了。EC2的元數(shù)據(jù)包括很多對攻擊者有用的信息,包括IAM登錄信息,還有關(guān)于這個instance的細(xì)節(jié)信息,包括可用區(qū)、instance類型、網(wǎng)絡(luò)類型、MAC地址,塊存儲器的信息等。

攻擊者還可以干什么呢?

對localhost的HTTP服務(wù)進(jìn)行端口掃描,這可以繞過EC2的防火墻規(guī)則

對端口掃描的結(jié)果進(jìn)行分析,識別開啟的web應(yīng)用

在Pocket內(nèi)部環(huán)境下進(jìn)行漏洞利用

很多大企業(yè)或者小公司都會有只能通過內(nèi)部訪問的web應(yīng)用,這些應(yīng)用通常無需驗證,因此很容易會被攻擊者利用。

server-status中的這些內(nèi)部IP地址能用來干什么呢

從亞馬遜EC2元數(shù)據(jù)上可以看出,Pocket使用的EC2服務(wù)器是在us-east-1(美東1區(qū))區(qū)域,網(wǎng)絡(luò)類型是classic(EC2有兩種網(wǎng)絡(luò)類型可選:EC2-Classic 和VPC。VPC更好一些,有些實例類型也只有VPC上才有。VPC在創(chuàng)建子網(wǎng)絡(luò)和訪問控制列表(ACL)的時候更加靈活)。

由于Pocket用的是EC2-Classic,要訪問server-status中的內(nèi)部IP地址,只需要在us-east-1區(qū)域租個2美分/小時的t1.micro實例。這樣攻擊者就可以使用RFC-1918地址訪問這些實例上運行的服務(wù)了,例如ssh和http,甚至還可以進(jìn)行端口掃描。

使用這些內(nèi)部IP地址訪問后端服務(wù)器有幾個優(yōu)點:

可以繞過前端負(fù)載平衡器和前端的WAF防火墻之類的東西,在有前端負(fù)載平衡器的情況下,攻擊者可以通過設(shè)置X-Forwarded-For修改源IP地址,黑客可以通過這種方法避開ACL或者偽造log。

輸入重定向

像Pocket這一類的應(yīng)用在處理HTTP重定向鏈接的時候很有可能會忽視某些問題,造成安全隱患。那在URL隊列中加入重定向鏈接會發(fā)生什么呢?我輸入了file:///etc/passwd,后果很嚴(yán)重:

HTTP/1.1 301 Moved Permanently

Location: file:///etc/passwd

Content-Length: 52

Date: Tue, 28 Jul 2015 18:42:58 GMT

Connection: keep-alive

Moved Permanently. Redirecting to file:///etc/passwd

我在Android機上刷新了Pocket應(yīng)用后,隊列中就增加了file:///etc/passwd。點擊之后,/etc/passwd完整的內(nèi)容就呈現(xiàn)在了我眼前。

應(yīng)Pocket的要求,/etc/passwd內(nèi)容已刪除

漏洞能夠造成什么影響可以留給讀者考慮。

有了/etc/passwd之后能干什么

在測試Pocket的時候,我用這個重定向漏洞請求了file:///proc/self/status文件,這個文件可以用來獲取正在運行的進(jìn)程的更多信息。

下面就是部分進(jìn)程狀態(tài)信息:

Uid: 0 0 0 0

Gid: 0 0 0 0

以root身份運行這個進(jìn)程能夠造成什么后果也留給讀者考慮。

把漏洞結(jié)合起來

Pocket針對我的報告快速做出了回應(yīng),所以我沒能夠把這些漏洞結(jié)合起來。但是設(shè)想如果真的有個心懷不軌的攻擊者發(fā)現(xiàn)了這些漏洞,他能做些什么呢?

1. 通過301重定向獲取file:///etc/passwd文件,然后獲取EC2用戶的home目錄

2. 從用戶home目錄獲取ssh私鑰

3. 使用/server-status獲取內(nèi)部IP地址

4. 租一個EC2實例,地區(qū)設(shè)置在US-EAST-1地區(qū)

5. 用獲取的到的ssh私鑰連接Pocket后端服務(wù)器的IP地址

接下來能做什么,你懂的^_^

Pocket的漏洞披露政策還是很負(fù)責(zé)的,我把所有的漏洞細(xì)節(jié)第一時間提交給了Pocket官方,而漏洞披露時間是由提交者自行決定的,不過要在漏洞提交后的21天后,好讓Pocket有時間處理漏洞。現(xiàn)在漏洞都已經(jīng)修復(fù)。

關(guān)鍵字:Pocket元數(shù)據(jù)服務(wù)WAF

本文摘自:FreeBuf

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號-6 京公網(wǎng)安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 余江县| 柘荣县| 榆社县| 柳江县| 内江市| 巴林左旗| 马公市| 松江区| 三穗县| 边坝县| 达州市| 富锦市| 苏尼特左旗| 堆龙德庆县| 阿拉善盟| 昭苏县| 滨州市| 清苑县| 怀化市| 聂荣县| 临漳县| 临邑县| 墨竹工卡县| 三亚市| 轮台县| 齐河县| 平阴县| 沂源县| 莱芜市| 龙岩市| 柳河县| 大厂| 钦州市| 濉溪县| 海原县| 丰城市| 兴宁市| 晋州市| 垦利县| 新乡县| 当雄县|