成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

有趣的閃存:通過實踐分析意外內(nèi)存泄漏

存儲 存儲軟件
在這篇文章中,我們將對閃存進行分析。我的實驗?zāi)繕?biāo)是一臺別人“捐贈”過來的Netcomm N300路由器,在進行了深入研究之后,我可以通過修改設(shè)備閃存的讀入操作并從未認(rèn)證的Web接口獲取目標(biāo)Web服務(wù)器的內(nèi)存數(shù)據(jù)。

寫在前面的話

在這篇文章中,我們將對閃存進行分析。我的實驗?zāi)繕?biāo)是一臺別人“捐贈”過來的Netcomm N300路由器,在進行了深入研究之后,我可以通過修改設(shè)備閃存的讀入操作并從未認(rèn)證的Web接口獲取目標(biāo)Web服務(wù)器的內(nèi)存數(shù)據(jù)。

開始分析

[[228668]]

我們的路由器使用的是一塊Macronix MX15L12835FMI閃存芯片(16針腳SOP):

首先,我需要觀察芯片的常規(guī)操作。在研究過程中,我發(fā)現(xiàn)它的閃存并沒有得到充分使用,只有設(shè)備在啟動(或加載整個操作系統(tǒng))時或在使用Web管理面板時會使用到閃存。閃存芯片似乎使用的是Single API模式,其常規(guī)讀取命令如下所示:

命令開頭為一個05 FF命令,根據(jù)數(shù)據(jù)表提供的信息,這條命令可以讀取出寄存器的狀態(tài)信息。我最初的目的是對閃存讀取命令進行篡改,并用它來從硬盤中讀取數(shù)據(jù)。

考慮到SPI命令是與時鐘信號同步的,那我的攻擊同樣可以跟同一個時鐘信號同步:我可以記錄下時鐘上升沿信號的數(shù)量,并在特定數(shù)量的時鐘信號下將閃存芯片的15號針腳接地,然后修改閃存的讀取命令并用它來讀取其他信息。放大時鐘信號后我們可以看到,數(shù)據(jù)只會在時鐘信號的下降沿發(fā)生變化,所以我們的攻擊應(yīng)該是有效的。

首先我們進入到設(shè)備的串行控制臺中,然后使用命令cat /dev/mtdblock0來觸發(fā)閃存的讀取命令。該命令的原始狀態(tài)如下所示:

為了方便進行對比,所以我運行了cat /dev/mtdblock2:

接下來,我連接了一個晶體管和一個FPGA,F(xiàn)PGA可以讀取時鐘信號并控制晶體管的開關(guān),接地針腳15暫時等待幾個時鐘周期,并讓其中的一個讀取指令地址失效:

我還專門編寫了一個腳本來讓程序等待一定的時鐘周期,并修改閃存的讀取操作,然后運行cat /dev/mtdblock2并通過示波器來監(jiān)控閃存的命令執(zhí)行情況:

如果你仔細(xì)看的話,你就會發(fā)現(xiàn)右邊是原始閃存讀取操作的殘余部分(原始命令/dev/mtdblock2為03 01 00 00),我們可以通過運行cat /dev/mtdblock2命令來驗證我們的發(fā)現(xiàn):

需要注意的是,命令確實成功執(zhí)行了,/dev/mtdblock2的第一個數(shù)據(jù)塊跟之前/dev/mtdblock0的一樣,表示我們的操作已經(jīng)成功了。

現(xiàn)在,我們就可以用這種方法來對Web服務(wù)器接口進行攻擊了,如果我可以讓硬盤中的某個資源加載失敗,理論上來說我就可以讓它來讀取任何我想要讀取的內(nèi)容了,比如說通過Web請求來獲取到固件文件等等。

但是,我很快就遇到了如下所示的問題:

雖然我可以從物理閃存中讀取任意區(qū)塊,但我無法保證數(shù)據(jù)可以正確解壓。雖然Web服務(wù)器似乎還可以正常工作,但是其中的一個圖片已經(jīng)無法正確加載了。用Burp進行分析后,我很快就找到了“罪魁禍?zhǔn)?rdquo;:

這是一個針對/wireless_1.gif的有效請求的一條響應(yīng)數(shù)據(jù),我知道這是一個無效的GIF文件,但我并不知道它到底是什么,我猜測它要么來自于Web服務(wù)器的內(nèi)存,或者是磁盤中的數(shù)據(jù)塊。

為了進行測試,我對整個Web應(yīng)用程序進行了分析,然后發(fā)送了一條新的/wireless_1.gif請求:

神奇的是,這個gif文件竟然自己發(fā)生了變化,而且我也沒觀察到其他的SPI流量生成,這表示我成功實現(xiàn)了內(nèi)存泄漏(很可能是一個內(nèi)存用后釋放漏洞),只不過唯一的遺憾是它并非目標(biāo)系統(tǒng)的密碼文件。

攻擊代碼

PoC:【點我獲取

總結(jié)

雖然這項攻擊技術(shù)對物聯(lián)網(wǎng)設(shè)備來說可能沒那么有效,但是它的影響還是顯而易見的,因為我們可以在不需要系統(tǒng)級訪問控制權(quán)限的情況下,就能夠隨意加載出閃存中存儲的數(shù)據(jù)了。

責(zé)任編輯:武曉燕 來源: FreeBuf
相關(guān)推薦

2025-03-11 09:30:00

2018-09-14 10:48:45

Java內(nèi)存泄漏

2017-11-09 16:07:00

Web應(yīng)用內(nèi)存

2017-03-19 16:40:28

漏洞Node.js內(nèi)存泄漏

2017-03-20 13:43:51

Node.js內(nèi)存泄漏

2018-10-25 15:24:10

ThreadLocal內(nèi)存泄漏Java

2012-08-13 10:14:36

IBMdW

2020-01-03 16:04:10

Node.js內(nèi)存泄漏

2013-11-20 10:21:30

閃存

2015-03-30 11:18:50

內(nèi)存管理Android

2019-01-30 18:24:14

Java內(nèi)存泄漏編程語言

2009-06-16 11:26:22

弱引用內(nèi)存泄露

2012-05-30 15:14:11

ibmdw

2019-09-29 00:25:11

CC++內(nèi)存泄漏

2021-06-28 06:45:06

內(nèi)存溢出內(nèi)存泄露JavaScript

2016-12-05 16:33:30

2021-06-03 21:13:03

內(nèi)存Python管理

2009-06-16 11:17:49

內(nèi)存泄漏

2024-03-11 08:22:40

Java內(nèi)存泄漏

2012-06-19 15:12:20

Java內(nèi)存泄露
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲在线一区 | 2023亚洲天堂 | 精品久久久久久国产 | 亚洲一区二区中文字幕 | 久久久久久国产精品 | 日本成人三级电影 | 亚洲嫩草 | www.成人.com| a级毛片免费高清视频 | 韩国久久精品 | 福利一区视频 | aaa在线| 亚洲国产精品一区二区第一页 | 精品一区二区在线观看 | 亚洲欧美在线一区 | 免费观看一区二区三区毛片 | 亚洲国产成人在线观看 | 成人免费黄色 | www.色.com| 午夜激情免费视频 | 欧美激情在线观看一区二区三区 | 黑人精品欧美一区二区蜜桃 | 久久午夜精品福利一区二区 | 欧美日韩亚洲三区 | 亚洲成人国产 | 亚洲精品一区二三区不卡 | 福利一区二区在线 | 国产精品99久久久久久动医院 | 欧美一区二区三区在线看 | 日韩欧美一区二区三区四区 | 日韩三级在线观看 | 久久高清免费视频 | 久久免费看| 日韩福利 | 在线一级片 | 日韩精品中文字幕在线 | 日韩一区二区三区在线观看 | 中文字幕在线观看成人 | 国产69精品久久99不卡免费版 | xx性欧美肥妇精品久久久久久 | 久久久久久国产精品免费免费 |