0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Android中注入型漏洞基礎(chǔ)理論總結(jié)

哆啦安全 ? 來(lái)源:編碼安全 ? 作者:編碼安全 ? 2022-12-01 09:19 ? 次閱讀

背景

Android應(yīng)用開(kāi)發(fā)過(guò)程中,基于項(xiàng)目需求一般是團(tuán)隊(duì)開(kāi)發(fā),這就會(huì)出現(xiàn)使用多種編程語(yǔ)言(java、Kotlin、C++等)和一些通用框架。因此,當(dāng)忽略和沒(méi)有重視安全編程實(shí)踐時(shí),常見(jiàn)的注入型漏洞(如SQL注入、XML注入和跨站點(diǎn)腳本(XSS)等)可能會(huì)在應(yīng)用中表現(xiàn)出來(lái),從而給項(xiàng)目帶來(lái)一些安全風(fēng)險(xiǎn)和危害。

下面從基礎(chǔ)理論方面做下這方面的小總結(jié)。

注入漏洞原理

注入漏洞它就是將用戶(hù)輸入或插入后端查詢(xún)或命令時(shí)發(fā)生的一類(lèi)安全漏洞。通過(guò)注入元字符,攻擊者可以執(zhí)行無(wú)意中被解釋為命令或查詢(xún)的一部分的惡意代碼。

例如,通過(guò)操縱SQL查詢(xún),攻擊者可以檢索任意數(shù)據(jù)庫(kù)記錄或操縱后端數(shù)據(jù)庫(kù)的內(nèi)容。

這種注入類(lèi)型漏洞在服務(wù)器端或web服務(wù)中最常見(jiàn)。android應(yīng)用中也存在可利用的實(shí)例,但這種情況不太常見(jiàn),而且攻擊面更小。

SQL注入攻擊

SQL注入攻擊,它涉及將SQL命令集成到輸入的數(shù)據(jù)中,模仿預(yù)定義SQL命令的語(yǔ)法。成功的SQL注入攻擊允許攻擊者讀取或?qū)懭霐?shù)據(jù)庫(kù),并可能執(zhí)行管理命令,具體取決于服務(wù)器授予的權(quán)限。

Android應(yīng)用程序中一般情況下,使用SQLite數(shù)據(jù)庫(kù)來(lái)控制和管理本地?cái)?shù)據(jù)存儲(chǔ)。假設(shè)Android應(yīng)用程序通過(guò)將用戶(hù)憑據(jù)存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中來(lái)處理本地用戶(hù)身份驗(yàn)證。當(dāng)?shù)卿汼QLite數(shù)據(jù)庫(kù)后,應(yīng)用程序查詢(xún)數(shù)據(jù)庫(kù)以搜索用戶(hù)輸入的用戶(hù)名和密碼的記錄。

ab49b078-710e-11ed-8abf-dac502259ad0.png

如果上圖中用戶(hù)名和密碼都設(shè)置為'1' = '1'并且都為真的情況下,這個(gè)查詢(xún)后的數(shù)據(jù)庫(kù)就會(huì)返回所有記錄,這樣就能夠正常登錄,這樣就出現(xiàn)非正常授權(quán)的用戶(hù)也能夠正常登錄數(shù)據(jù)庫(kù)。

因此針對(duì)這種類(lèi)型的注入攻擊,除了對(duì)輸入數(shù)據(jù)進(jìn)行校驗(yàn)外,也可結(jié)合對(duì)用戶(hù)進(jìn)行多重身份驗(yàn)證。確保登錄的用戶(hù)為指定授權(quán)的用戶(hù)。

XML注入攻擊

在XML注入攻擊中,攻擊者注入XML元字符以從結(jié)構(gòu)上去改變XML內(nèi)容。這可以用來(lái)破壞基于XML的應(yīng)用程序或服務(wù)的邏輯,也可能允許攻擊者利用XML解析器處理內(nèi)容的操作。

這種XML攻擊的一個(gè)流行變體是XML外部實(shí)體(XXE)。攻擊者將包含統(tǒng)一資源標(biāo)識(shí)符(URI)的外部實(shí)體定義注入到輸入XML中。在解析過(guò)程中,XML解析器通過(guò)訪(fǎng)問(wèn)URI指定的資源來(lái)擴(kuò)展攻擊者定義的實(shí)體。解析應(yīng)用程序的完整性最終決定了攻擊者所具備的能力,惡意用戶(hù)可以在其中執(zhí)行以下任何操作:訪(fǎng)問(wèn)本地文件,觸發(fā)對(duì)任意主機(jī)和端口的HTTP請(qǐng)求,發(fā)起跨站點(diǎn)請(qǐng)求偽造(CSRF)攻擊,并導(dǎo)致拒絕服務(wù)條件。

XXE示例:打開(kāi)本地文件/dev/random,返回?zé)o限字節(jié)流,可能導(dǎo)致拒絕服務(wù)。

ab5ce314-710e-11ed-8abf-dac502259ad0.png

當(dāng)前的Android應(yīng)用開(kāi)發(fā)趨勢(shì)主要集中于基于REST/JSON的服務(wù),基于XML越來(lái)越不常見(jiàn)。但是在使用用戶(hù)提供的或不受信任的內(nèi)容來(lái)構(gòu)造XML查詢(xún)的罕見(jiàn)情況下,它可以由本地XML解析器進(jìn)行解釋。因此,在開(kāi)發(fā)過(guò)程中應(yīng)始終做好驗(yàn)證所述輸入,并轉(zhuǎn)義元字符。

注入攻擊向量

android應(yīng)用程序的攻擊面與典型的web和網(wǎng)絡(luò)應(yīng)用程序截然不同。android應(yīng)用程序通常不會(huì)在網(wǎng)絡(luò)上公開(kāi)服務(wù),應(yīng)用程序用戶(hù)界面上的可行攻擊向量也比較少。針對(duì)android應(yīng)用程序的注入攻擊最有可能通過(guò)進(jìn)程間通信(IPC)接口發(fā)生,其中惡意應(yīng)用程序攻擊設(shè)備上運(yùn)行的另一個(gè)應(yīng)用程序。

在手動(dòng)安全審查過(guò)程中發(fā)現(xiàn),潛在漏洞需要執(zhí)行以下任一操作:

1.識(shí)別不可信輸入的可能入口點(diǎn),然后從這些位置進(jìn)行跟蹤,以查看目標(biāo)是否包含潛在的易受攻擊的函數(shù)。

2.識(shí)別已知的、危險(xiǎn)的庫(kù)/API調(diào)用(例如SQL查詢(xún)),然后檢查未檢查的輸入是否成功地與相應(yīng)的查詢(xún)交互。

對(duì)于不受信任的輸入,一般是通過(guò)以下常見(jiàn)的幾個(gè)方式進(jìn)入應(yīng)用程序:IPC調(diào)用;自定義URL方案;二維碼;通過(guò)藍(lán)牙、NFC或其它方式接收的輸入文件;粘貼板;用戶(hù)界面。

降低注入攻擊向量的實(shí)踐方案:

1.使用可接受值列表對(duì)不受信任的輸入進(jìn)行類(lèi)型檢查和/或驗(yàn)證。

2.執(zhí)行數(shù)據(jù)庫(kù)查詢(xún)時(shí),使用帶有變量綁定的準(zhǔn)備語(yǔ)句(即參數(shù)化查詢(xún))。如果定義了準(zhǔn)備好的語(yǔ)句,用戶(hù)提供的數(shù)據(jù)和SQL代碼將自動(dòng)分離。

3.解析XML數(shù)據(jù)時(shí),確保解析器應(yīng)用程序配置為拒絕解析外部實(shí)體,以防止XXE攻擊。

4.使用x509格式的證書(shū)數(shù)據(jù)時(shí),請(qǐng)確保使用了安全的解析器。

跨站點(diǎn)腳本

跨站點(diǎn)腳本(XSS),它允許攻擊者將客戶(hù)端腳本注入用戶(hù)查看的網(wǎng)頁(yè)。這種類(lèi)型的漏洞在web應(yīng)用中很常見(jiàn)。

當(dāng)用戶(hù)在瀏覽器中查看注入的腳本時(shí),攻擊者能夠繞過(guò)同源策略,從而實(shí)現(xiàn)各種攻擊(例如竊取會(huì)話(huà)cookie、記錄按鍵、執(zhí)行任意操作等)。

在本地應(yīng)用程序的環(huán)境中,XSS風(fēng)險(xiǎn)遠(yuǎn)沒(méi)有那么普遍,原因很簡(jiǎn)單,這類(lèi)應(yīng)用程序不依賴(lài)web瀏覽器。然而,android中存在很多使用WebView組件,這樣就可能容易受到此類(lèi)攻擊。

可以在android應(yīng)用程序中,分析所有存在的WebView,并分析應(yīng)用程序呈現(xiàn)的不可信輸入。

如果WebView打開(kāi)的URL部分由用戶(hù)輸入決定,則可能存在XSS問(wèn)題。

ab81640a-710e-11ed-8abf-dac502259ad0.pngab9dd7de-710e-11ed-8abf-dac502259ad0.png

如果使用WebView顯示遠(yuǎn)程網(wǎng)站,則逃避HTML的負(fù)擔(dān)將轉(zhuǎn)移到服務(wù)器端。如果web服務(wù)器上存在XSS漏洞,則可用于在WebView上下文中執(zhí)行腳本。

降低跨站點(diǎn)腳本攻擊實(shí)踐:

1.除非絕對(duì)必要,否則不會(huì)在HTML、JavaScript或其它解釋上下文中呈現(xiàn)不受信任的數(shù)據(jù)。

2.適當(dāng)?shù)木幋a應(yīng)用于轉(zhuǎn)義字符,例如HTML實(shí)體編碼。特別注意:當(dāng)HTML嵌套在其他代碼中時(shí),轉(zhuǎn)義規(guī)則會(huì)變得復(fù)雜,呈現(xiàn)位于JavaScript塊中的URL。

考慮如何在響應(yīng)中呈現(xiàn)數(shù)據(jù)。如果數(shù)據(jù)在HTML上下文中呈現(xiàn),則必須轉(zhuǎn)義六個(gè)控制字符:

abacd1e4-710e-11ed-8abf-dac502259ad0.png

針對(duì)跨站點(diǎn)腳本動(dòng)態(tài)分析,可以使用手動(dòng)或者自動(dòng)輸入模糊化來(lái)檢測(cè),即將HTML標(biāo)記和特殊字符注入所有可用的輸入字段,以驗(yàn)證web應(yīng)用程序拒絕無(wú)效輸入或轉(zhuǎn)義其輸出中的HTML元字符。

反射XSS攻擊是指通過(guò)惡意鏈接注入惡意代碼的攻擊。為了測(cè)試這些攻擊,自動(dòng)輸入模糊被認(rèn)為是一種有效的方法。例如,BURP掃描程序在識(shí)別反映的XSS漏洞方面非常有效。

與自動(dòng)化分析一樣,確保所有輸入向量都包含在測(cè)試參數(shù)的手動(dòng)審查中。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3936

    瀏覽量

    127403
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104751
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    764

    瀏覽量

    44130
  • XSS
    XSS
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    2378

原文標(biāo)題:Android中注入型漏洞總結(jié)

文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MPEG基礎(chǔ)理論和協(xié)議分析

    MPEG基礎(chǔ)理論和協(xié)議分析MPEG 基礎(chǔ)理論和協(xié)議分析(包括DVB和ATSC)的指南MPEG 是當(dāng)今最流行的音頻/ 視頻壓縮技術(shù)之一。這是因?yàn)樗粌H僅是一個(gè)單獨(dú)的標(biāo)準(zhǔn),而是一系列以相似理論為基礎(chǔ)且
    發(fā)表于 10-20 17:36

    高速PCB基礎(chǔ)理論及內(nèi)存仿真技術(shù)

    基礎(chǔ)理論及內(nèi)存仿真技術(shù)</strong></font><br/></p><
    發(fā)表于 10-20 16:03

    高速PCB基礎(chǔ)理論及內(nèi)存仿真技術(shù)

    一本介紹高速PCB基礎(chǔ)理論及內(nèi)存仿真技術(shù)的經(jīng)典書(shū)籍
    發(fā)表于 05-21 15:59

    請(qǐng)問(wèn)單片機(jī)的基礎(chǔ)理論需要看那些書(shū)籍啊

    請(qǐng)問(wèn)單片機(jī)的基礎(chǔ)理論需要看那些書(shū)籍啊?????我是新人,請(qǐng)多關(guān)照
    發(fā)表于 09-27 13:21

    基礎(chǔ)理論之反射詳解

    ,走線(xiàn)從細(xì)變寬,會(huì)增加一次反射,那是不是全程按照breakout區(qū)域走線(xiàn)會(huì)比較好?源端匹配電阻是不是也增加了一次反射? ......小編在此給大家分享下信號(hào)反射的基礎(chǔ)理論知識(shí),希望對(duì)大家有用。
    發(fā)表于 06-15 17:07

    檢測(cè)技術(shù)基礎(chǔ)理論知識(shí)

    檢測(cè)技術(shù)基礎(chǔ)理論知識(shí)
    發(fā)表于 11-27 14:51

    Spark集群安裝步驟和基礎(chǔ)理論

    Spark基礎(chǔ)理論及安裝
    發(fā)表于 11-05 09:24

    步進(jìn)電機(jī)基礎(chǔ)-步進(jìn)電機(jī)的原理與特性之基礎(chǔ)理論

    步進(jìn)電機(jī)基礎(chǔ)(3.1)-步進(jìn)電機(jī)的原理與特性之基礎(chǔ)理論前言基本信息公式前言說(shuō)明步進(jìn)電機(jī)的原理與特性之基礎(chǔ)理論3. 1 基礎(chǔ)理論1. 轉(zhuǎn)矩的產(chǎn)生及負(fù)載角1) PM電機(jī)的轉(zhuǎn)矩及負(fù)載角2)
    發(fā)表于 06-30 07:21

    磁場(chǎng)定向控制的基礎(chǔ)理論

    我覺(jué)得我應(yīng)該寫(xiě)點(diǎn)什么了從去年10月,也就是2019年10月15號(hào)開(kāi)始研究永磁同步驅(qū)動(dòng),一個(gè)漫長(zhǎng)的學(xué)習(xí)過(guò)程終于理解了 磁場(chǎng)定向控制的基礎(chǔ)理論, 實(shí)際操作讓電機(jī)轉(zhuǎn)起來(lái),還是不太容易的.想要轉(zhuǎn)好,難上加難
    發(fā)表于 08-27 06:17

    邏輯與或非基礎(chǔ)理論簡(jiǎn)析

    一、邏輯與或非基礎(chǔ)理論:邏輯與或非,運(yùn)算對(duì)象是布爾值(1或0,真或假),類(lèi)似于數(shù)字電路的與門(mén),或門(mén),非門(mén)。與關(guān)系運(yùn)算符配合,一般用于選擇語(yǔ)句與循環(huán)語(yǔ)句中1、邏輯與符號(hào)為&&。 參與
    發(fā)表于 01-24 06:30

    USB接口的基礎(chǔ)理論知識(shí)

    USB接口的基礎(chǔ)理論知識(shí) USB的重要關(guān)鍵字:
    發(fā)表于 10-15 13:08 ?958次閱讀
    USB接口的<b class='flag-5'>基礎(chǔ)理論</b>知識(shí)

    高速PCB基礎(chǔ)理論及內(nèi)存仿真技術(shù)

    本文檔介紹了高速PCB基礎(chǔ)理論及內(nèi)存仿真技術(shù)
    發(fā)表于 08-25 15:52 ?0次下載

    高速PCB基礎(chǔ)理論及內(nèi)存仿真技術(shù)

    高速PCB基礎(chǔ)理論及內(nèi)存仿真技術(shù) 電子書(shū)籍,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-16 18:32 ?0次下載

    混頻器的基礎(chǔ)理論和應(yīng)用

    混頻器的基礎(chǔ)理論和應(yīng)用
    發(fā)表于 09-18 16:53 ?32次下載
    混頻器的<b class='flag-5'>基礎(chǔ)理論</b>和應(yīng)用

    探討碲鎘汞紅外探測(cè)器工藝中注入溫度的影響

    本文從離子注入工藝的溫度控制出發(fā),研究了離子注入工藝中的束流、注入能量、接觸面粗糙度等因素對(duì)溫控的影響,并結(jié)合器件的I-V曲線(xiàn),探究了碲鎘汞紅外探測(cè)器工藝中注入溫度的影響。
    的頭像 發(fā)表于 09-29 10:45 ?2804次閱讀
    探討碲鎘汞紅外探測(cè)器工藝<b class='flag-5'>中注入</b>溫度的影響