日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 近日據(jù)慢霧區(qū)情報(bào)顯示,針對(duì)門羅幣(XMR)轉(zhuǎn)賬鎖定攻擊在多個(gè)交易所出現(xiàn),慢霧安全團(tuán)隊(duì)在收到情報(bào)第一時(shí)間進(jìn)行分析跟進(jìn),本著負(fù)責(zé)任披露的原則我們第一時(shí)間在慢霧區(qū)進(jìn)行了預(yù)警并為我們所服務(wù)的客戶進(jìn)行了及

近日據(jù)慢霧區(qū)情報(bào)顯示,針對(duì)門羅幣(XMR)轉(zhuǎn)賬定攻擊在多個(gè)交易所出現(xiàn),慢霧安全團(tuán)隊(duì)在收到情報(bào)第一時(shí)間進(jìn)行分析跟進(jìn),本著負(fù)責(zé)任披露的原則我們第一時(shí)間在慢霧區(qū)進(jìn)行了預(yù)警并為我們所服務(wù)的客戶進(jìn)行了及時(shí)的情報(bào)同步以及協(xié)助檢測(cè)和修復(fù)。

攻擊步驟

0x01:通過 monero-wallet-cli 輸入密碼登錄錢包

0x02:通過命令發(fā)送鎖定交易

0x03:轉(zhuǎn)賬完成,交易所未進(jìn)行鎖定交易(locked_transfer)檢測(cè),接收到被設(shè)置鎖定區(qū)塊高度才能解鎖的幣(可以理解為鎖定了指定時(shí)間)。

0x04:惡意用戶立即提幣走人,留下交易所一臉懵逼。

造成影響

首先該攻擊不會(huì)導(dǎo)致交易所任何資金損失,但是會(huì)鎖定了交易所 XMR 流動(dòng)性。

極端情況舉例:如果交易所收到的都是需要鎖定一年甚至更多年的門羅幣則會(huì)導(dǎo)致一年內(nèi)用戶來提幣的時(shí)候無幣可以提(只能去購(gòu)買額外的幣來給用戶提?。?/p>

關(guān)于 locked_transfer 命令

monero-wallet-cli 關(guān)于 locked_transfer 命令解釋如下:

locked_transfer [index=《N1》[,《N2》,。..]] [《priority》] [《ring_size》] (《URI》 | 《addr》 《amount》) 《lockblocks》 [《payment_id (obsolete)》]

轉(zhuǎn)賬命令:

locked_transfer FromAddress ToAddress 0.0101 20000

FromAddress:發(fā)送地址(一般為攻擊者錢包地址)

ToAddress:接收地址(一般為交易所錢包地址)

0.0101:為轉(zhuǎn)賬金額

20000:為鎖定區(qū)塊數(shù)

如何防護(hù)

一般交易所會(huì)通過 get_transfers RPC 接口來解析 XMR 交易檢測(cè)充值是否到賬,在進(jìn)行解析的時(shí)候只需要對(duì) unlock_time 字段進(jìn)行判斷是否大于 0 則可以進(jìn)行有效檢測(cè)。

注:unlock_TIme 為 int 類型,如果大于 0 則意味著該交易有鎖定區(qū)塊,為惡意交易可以不予確認(rèn)到賬。為了避免充值不予到賬損害“用戶”利益可以進(jìn)行另外一種處理:判斷鎖定區(qū)塊是否到達(dá),如果未到達(dá)則不予入賬。

所有受影響 RPC 接口

(1)get_transfer

(2)get_bulk_payments

(3)show_transfer

(4)get_payments

同理:在其他地方使用了如上四個(gè)接口的地方也需要對(duì) unlock_TIme 字段進(jìn)行判斷是否大于 0 ,大于 0 則不予充值到賬。

該問題之前在 HackerOne 也有被白帽子提過漏洞賞金,其中門羅官方回復(fù):

附:以下內(nèi)容為官方文檔摘錄

get_transfers

Returns a list oftransfers.

Alias: None.

Inputs:

· in - boolean; (OpTIonal) Include incoming transfers.

· out - boolean; (OpTIonal) Include outgoing transfers.

· pending - boolean; (Optional) Include pending transfers.

· failed - boolean; (Optional) Include failed transfers.

· pool - boolean; (Optional) Include transfers from the daemon‘s transaction pool.

· filter_by_height - boolean; (Optional) Filter transfers by block height.

· min_height - unsigned int; (Optional) Minimum block height to scan for transfers, if filtering by height is enabled.

· max_height - unsigned int; (Opional) Maximum block height to scan for transfers, if filtering by height is enabled (defaults to max block height)。

· account_index - unsigned int; (Optional) Index of the account to query for transfers. (defaults to 0)

· subaddr_indices - array of unsigned int; (Optional) List of subaddress indices to query for transfers. (Defaults to empty - all indices)

Outputs:

· in array of transfers:

· address - string; Public address of the transfer.

· amount - unsigned int; Amount transferred.

· confirmations - unsigned int; Number of block mined since the block containing this transaction (or block height at which the transaction should be added to a block if not yet confirmed)。

· double_spend_seen - boolean; True if the key image(s) for the transfer have been seen before.

· fee - unsigned int; Transaction fee for this transfer.

· height - unsigned int; Height of the first block that confirmed this transfer (0 if not mined yet)。

· note - string; Note about this transfer.

· payment_id - string; Payment ID for this transfer.

· subaddr_index - JSON object containing the major & minor subaddress index:

major - unsigned int; Account index for the subaddress.

minor - unsigned int; Index of the subaddress under the account.

· suggested_confirmations_threshold - unsigned int; Estimation of the confirmations needed for the transaction to be included in a block.

· timestamp - unsigned int; POSIX timestamp for when this transfer was first confirmed in a block (or · timestamp submission if not mined yet)。

·txid - string; Transaction ID for this transfer.

·type - string; Transfer type: “in”

·unlock_time - unsigned int; Number of blocks until transfer is safely spendable.

·out array of transfers (see above)。

·pending array of transfers (see above)。

·failed array of transfers (see above)。

·pool array of transfers (see above)。

Example:

$ curl -X POST http://127.0.0.1:18082/json_rpc -d ’{“jsonrpc”:“2.0”,“id”:“0”,“method”:“get_transfers”,“params”:{“in”:true,“account_index”:1}}‘ -H ’Content-Type: application/json‘

{

“id”: “0”,

“jsonrpc”: “2.0”,

“result”: {

“in”: [{

“address”: “77Vx9cs1VPicFndSVgYUvTdLCJEZw9h81hXLMYsjBCXSJfUehLa9TDW3Ffh45SQa7xb6dUs18mpNxfUhQGqfwXPSMrvKhVp”,

“amount”: 200000000000,

“confirmations”: 1,

“double_spend_seen”: false,

“fee”: 21650200000,

“height”: 153624,

“note”: “”,

“payment_id”: “0000000000000000”,

“subaddr_index”: {

“major”: 1,

“minor”: 0

},

“suggested_confirmations_threshold”: 1,

“timestamp”: 1535918400,

“txid”: “c36258a276018c3a4bc1f195a7fb530f50cd63a4fa765fb7c6f7f49fc051762a”,

“type”: “in”,

“unlock_time”: 0

}]

}

}

get_payments

Get a list ofincoming payments using a given payment id.

Alias: None.

Inputs:

· payment_id - string; Payment ID used to find the payments (16 characters hex)。

Outputs:

· payments - list of:

· payment_id - string; Payment ID matching the input parameter.

· tx_hash - string; Transaction hash used as the transaction ID.

· amount - unsigned int; Amount for this payment.

· block_height - unsigned int; Height of the block that first confirmed this payment.

· unlock_time - unsigned int; Time (in block height) until this payment is safe to spend.

·subaddr_index - subaddress index:

major - unsigned int; Account index for the subaddress.

minor - unsigned int; Index of the subaddress in the account.

· address - string; Address receiving the payment; Base58 representation of the public keys.

Example:

$ curl -X POST http://127.0.0.1:18082/json_rpc -d ’{“jsonrpc”:“2.0”,“id”:“0”,“method”:“get_payments”,“params”:{“payment_id”:“60900e5603bf96e3”}}‘ -H ’Content-Type: application/json‘

{

“id”: “0”,

“jsonrpc”: “2.0”,

“result”: {

“payments”: [{

“address”: “55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt”,

“amount”: 1000000000000,

“block_height”: 127606,

“payment_id”: “60900e5603bf96e3”,

“subaddr_index”: {

“major”: 0,

“minor”: 0

},

“tx_hash”: “3292e83ad28fc1cc7bc26dbd38862308f4588680fbf93eae3e803cddd1bd614f”,

“unlock_time”: 0

}]

}

}

get_bulk_payments

Get a list ofincoming payments using a given payment id, or a list of payments ids, from agiven height. This method is the preferred method over get_paymentsbecause it has the same functionality butis more extendable. Either is fine for looking up transactions by a singlepayment ID.

Alias: None.

Inputs:

· payment_ids - array of: string; Payment IDs used to find the payments (16 characters hex)。

· min_block_height - unsigned int; The block height at which to start looking for payments.

Outputs:

·payments - list of:

· payment_id - string; Payment ID matching one of the input IDs.

· tx_hash - string; Transaction hash used as the transaction ID.

· amount - unsigned int; Amount for this payment.

· block_height - unsigned int; Height of the block that first confirmed this payment.

·unlock_time - unsigned int; Time (in block height) until this payment is safe to spend.

· subaddr_index - subaddress index:

major - unsigned int; Account index for the subaddress.

minor - unsigned int; Index of the subaddress in the account.

· address - string; Address receiving the payment; Base58 representation of the public keys.

Example:

$ curl -X POST http://127.0.0.1:18082/json_rpc -d ’{“jsonrpc”:“2.0”,“id”:“0”,“method”:“get_bulk_payments”,“params”:{“payment_ids”:[“60900e5603bf96e3”],“min_block_height”:“120000”}}‘ -H ’Content-Type: application/json‘

{

“id”: “0”,

“jsonrpc”: “2.0”,

“result”: {

“payments”: [{

“address”: “55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt”,

“amount”: 1000000000000,

“block_height”: 127606,

“payment_id”: “60900e5603bf96e3”,

“subaddr_index”: {

“major”: 0,

“minor”: 0

},

“tx_hash”: “3292e83ad28fc1cc7bc26dbd38862308f4588680fbf93eae3e803cddd1bd614f”,

“unlock_time”: 0

}]

}

}

get_transfer_by_txid

Show informationabout a transfer to/from this address.

Alias: None.

Inputs:

· txid - string; Transaction ID used to find the transfer.

· account_index - unsigned int; (Optional) Index of the account to query for the transfer.

Outputs:

·transfer - JSON object containing payment information:

·address - string; Address that transferred the funds. Base58 representation of the public keys.

·amount - unsigned int; Amount of this transfer.

·confirmations - unsigned int; Number of block mined since the block containing this transaction (or block height at which the transaction should be added to a block if not yet confirmed)。

·destinations - array of JSON objects containing transfer destinations:

·amount - unsigned int; Amount transferred to this destination.

·address - string; Address for this destination. Base58 representation of the public keys.

·double_spend_seen - boolean; True if the key image(s) for the transfer have been seen before.

·fee - unsigned int; Transaction fee for this transfer.

·height - unsigned int; Height of the first block that confirmed this transfer.

·note - string; Note about this transfer.

·payment_id - string; Payment ID for this transfer.

·subaddr_index - JSON object containing the major & minor subaddress index:

major - unsigned int; Account index for the subaddress.

minor - unsigned int; Index of the subaddress under the account.

·suggested_confirmations_threshold - unsigned int; Estimation of the confirmations needed for the transaction to be included in a block.

·timestamp - unsigned int; POSIX timestamp for the block that confirmed this transfer (or timestamp submission if not mined yet)。

·txid - string; Transaction ID of this transfer (same as input TXID)。

·type - string; Type of transfer, one of the following: “in”, “out”, “pending”, “failed”, “pool”

·unlock_time - unsigned int; Number of blocks until transfer is safely spendable.

Example:

$ curl -X POST http://localhost:18082/json_rpc -d ’{“jsonrpc”:“2.0”,“id”:“0”,“method”:“get_transfer_by_txid”,“params”:{“txid”:“c36258a276018c3a4bc1f195a7fb530f50cd63a4fa765fb7c6f7f49fc051762a”}}‘ -H ’Content-Type: application/json‘

{

“id”: “0”,

“jsonrpc”: “2.0”,

“result”: {

“transfer”: {

“address”: “55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt”,

“amount”: 300000000000,

“confirmations”: 1,

“destinations”: [{

“address”: “7BnERTpvL5MbCLtj5n9No7J5oE5hHiB3tVCK5cjSvCsYWD2WRJLFuWeKTLiXo5QJqt2ZwUaLy2Vh1Ad51K7FNgqcHgjW85o”,

“amount”: 100000000000

},{

“address”: “77Vx9cs1VPicFndSVgYUvTdLCJEZw9h81hXLMYsjBCXSJfUehLa9TDW3Ffh45SQa7xb6dUs18mpNxfUhQGqfwXPSMrvKhVp”,

“amount”: 200000000000

}],

“double_spend_seen”: false,

“fee”: 21650200000,

“height”: 153624,

“note”: “”,

“payment_id”: “0000000000000000”,

“subaddr_index”: {

“major”: 0,

“minor”: 0

},

“suggested_confirmations_threshold”: 1,

“timestamp”: 1535918400,

“txid”: “c36258a276018c3a4bc1f195a7fb530f50cd63a4fa765fb7c6f7f49fc051762a”,

“type”: “out”,

“unlock_time”: 0

}

}

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

北京2026年3月26日 /美通社/ -- 2026年3月21日至23日,實(shí)驗(yàn)醫(yī)學(xué)領(lǐng)域的年度盛會(huì)“創(chuàng)之聲”第十一屆中國(guó)實(shí)驗(yàn)醫(yī)學(xué)大會(huì)(CPCEM)及第二十三屆中國(guó)國(guó)際檢驗(yàn)醫(yī)學(xué)暨輸血儀器試劑博覽會(huì)(CACLP)在廈門舉行。作...

關(guān)鍵字: 防護(hù) AN AC MIDDOT

悉尼2026年3月27日 /美通社/ -- 全球領(lǐng)先的光伏逆變器和儲(chǔ)能系統(tǒng)供應(yīng)商陽光電源,與國(guó)際檢測(cè)、檢驗(yàn)與認(rèn)證機(jī)構(gòu)德國(guó)萊茵TÜV集團(tuán)聯(lián)合發(fā)布白皮書。該白皮書題為《...

關(guān)鍵字: 陽光電源 防護(hù) 電網(wǎng) 電站

北京2026年3月13日 /美通社/ -- 2025年3月13日至3月16日,第38屆中國(guó)國(guó)際汽車服務(wù)用品及設(shè)備展覽會(huì)(即雅森北京展)于首都國(guó)際會(huì)展中心舉行。多元化科技創(chuàng)新企...

關(guān)鍵字: 汽車 防護(hù) 汽車產(chǎn)業(yè) 中國(guó)汽車

聚合精選合作伙伴方案 實(shí)現(xiàn)極簡(jiǎn)采購(gòu)部署與一站式安全管理 北京2026年3月2日 /美通社/ -- 亞馬遜云科技宣布推出Amazon Security Hub 拓展方案。作為Amazon Security Hu...

關(guān)鍵字: SECURITY 亞馬遜 防護(hù) 全棧

深圳2026年1月23日 /美通社/ -- 隨著AI技術(shù)的爆發(fā)式發(fā)展,AIDC已成為支撐前沿算力的核心基礎(chǔ)設(shè)施。與此同時(shí),其電力需求與可靠性要求也呈指數(shù)級(jí)增長(zhǎng),單機(jī)柜功率躍升至50kW以上,甚至突破750kW。在這樣的高...

關(guān)鍵字: 不間斷電源 鋰離子蓄電池 防護(hù) UPS

廣州2026年1月16日 /美通社/ -- 近日,SGS消防科技事業(yè)部順利通過香港實(shí)驗(yàn)所認(rèn)可計(jì)劃(HOKLAS)針對(duì)墜落防護(hù)安全網(wǎng)產(chǎn)品阻燃性能測(cè)試能力的擴(kuò)項(xiàng)認(rèn)可! HOKLAS由香港認(rèn)可處管理,是香港地區(qū)最具權(quán)威性的實(shí)...

關(guān)鍵字: 防護(hù) 阻燃 測(cè)試 GB

北京2026年1月11日 /美通社/ -- 12月29日,由中國(guó)國(guó)家博物館、工業(yè)和信息化部新聞宣傳中心聯(lián)合主辦的"筑基強(qiáng)國(guó)路——中國(guó)制造‘十四五'成就展"在中國(guó)國(guó)家博物館盛大開幕,匯聚了全國(guó)300余件...

關(guān)鍵字: 廣汽 固態(tài)電池 電池技術(shù) 防護(hù)

新加坡2025年11月13日 /美通社/ -- XTransfer,全球領(lǐng)先的B2B跨境貿(mào)易支付平臺(tái),與馬來亞銀行(Maybank),東盟領(lǐng)先銀行,欣然宣布達(dá)成全面合作協(xié)議,...

關(guān)鍵字: TRANSFER 新加坡 RAM SALEH

蕪湖2025年11月7日 /美通社/ -- 當(dāng)汽車從出行工具拓展到生活半徑,在產(chǎn)業(yè)智能化變革的浪潮下,"安全"已經(jīng)成為消費(fèi)者優(yōu)雅生活的必選項(xiàng),更是品牌可持續(xù)發(fā)展的生命線。奇瑞集團(tuán)旗下全新新能源品牌LE...

關(guān)鍵字: 防護(hù) 奇瑞 新能源 內(nèi)核

深圳2025年10月31日 /美通社/ -- 近日,TÜV南德意志集團(tuán)(以下簡(jiǎn)稱"TÜV南德")正式向深圳海柔創(chuàng)新科技有限公司(以下簡(jiǎn)...

關(guān)鍵字: 機(jī)器人 信息安全 無線設(shè)備 防護(hù)
關(guān)閉