htmlimgbanner(htmlimg標(biāo)簽屬性)
網(wǎng)安教育
培養(yǎng)網(wǎng)絡(luò)安全人才
技術(shù)交流、學(xué)習(xí)咨詢
業(yè)務(wù)邏輯篡改
密碼修改/重置流程跨越
漏洞描述
密碼修改功能常采用分步驟方式來實現(xiàn),攻擊者在未知原始密碼的情況下繞過某些檢驗步驟修改用戶密碼。
測試方法:
完成修改/重置密碼的正常流程;
繞過檢驗原密碼等步驟,直接訪問輸入新密碼頁面,輸入新密碼,修改/重置密碼。
風(fēng)險分析:
有些密碼修改/重置流程采用step=1、step=2類似的方式實現(xiàn),如果應(yīng)用校驗不全面,
攻擊者可繞過前面的步驟,直接訪問最后一步,輸入新密碼進(jìn)行修改/重置。
風(fēng)險等級:
【高危】:繞過原密碼驗證或繞過驗證碼
修復(fù)方案
1一次性填寫校驗信息(原始密碼、新密碼等)后再提交修改/重置密碼請求。
負(fù)值反沖
漏洞描述
應(yīng)用程序未校驗訂單數(shù)據(jù)的取值范圍,交易存在負(fù)值反沖。
測試方法
提交訂單時攔截請求,修改訂單參數(shù)為負(fù)數(shù),如商品單價、數(shù)量、總價等。
風(fēng)險分析
通過篡改訂單參數(shù),使得訂單金額為負(fù)值,在使用余額支付時余額反而增加。
風(fēng)險等級:
展開全文
【高?!浚何磳?shù)據(jù)進(jìn)行校驗,導(dǎo)致業(yè)務(wù)數(shù)據(jù)被污染。
修復(fù)方案:
1.服務(wù)器端在生成交易訂單時,商品的價格從數(shù)據(jù)庫中取出,禁止使用客戶端發(fā)送的商品價格。
2.服務(wù)器端對客戶端提交的交易數(shù)據(jù)(如商品ID、商品數(shù)量、商品價格等)的取值范圍進(jìn)行校驗,將商品ID和商品價格與數(shù)據(jù)庫中的數(shù)據(jù)對比校驗,商品數(shù)量為大于零的整型數(shù)。
3.服務(wù)器端在生成支付訂單時,對支付訂單中影響支付金額的所有因素(比如商品ID、商品數(shù)量、商品價格、訂單編號等)進(jìn)行簽名,對客戶端提交的支付訂單進(jìn)行校驗。
正負(fù)值對沖
漏洞描述
應(yīng)用程序未校驗訂單數(shù)據(jù)的取值范圍,交易存在正負(fù)值對沖。
測試方法
提交訂單(包含多種商品)時攔截請求,修改部分商品的單價或數(shù)量,保證訂單總金額為正數(shù)。
風(fēng)險分析
由于應(yīng)用會校驗訂單總金額的取值范圍,所以在保證該條件滿足的前提下,修改個別商品的數(shù)量,達(dá)到正負(fù)值對沖。
風(fēng)險等級:
【高?!浚何磳?shù)據(jù)進(jìn)行校驗,導(dǎo)致業(yè)務(wù)數(shù)據(jù)被污染。
修復(fù)方案:
1服務(wù)器端在生成交易訂單時,商品的價格從數(shù)據(jù)庫中取出,禁止使用客戶端發(fā)送的商品價格。
2服務(wù)器端對客戶端提交的交易數(shù)據(jù)(如商品ID、商品數(shù)量、商品價格等)的取值范圍進(jìn)行校驗,將商品ID和商品價格與數(shù)據(jù)庫中的數(shù)據(jù)對比校驗,商品數(shù)量為大于零的整型數(shù)。
3服務(wù)器端在生成支付訂單時,對支付訂單中影響支付金額的所有因素(比如商品ID、商品數(shù)量、商品價格、訂單編號等)進(jìn)行簽名,對客戶端提交的支付訂單進(jìn)行校驗。
業(yè)務(wù)流程跳躍
漏洞描述
業(yè)務(wù)邏輯流程分步驟進(jìn)行且能越過中間校驗步驟直接進(jìn)行后續(xù)操作,導(dǎo)致中間校驗等步驟失效。
測試方法:
首先完成正常的業(yè)務(wù)邏輯步驟,獲取每一個步驟的請求;
繞過中間步驟,直接訪問最后一個或幾個驗證請求,看是否可繞過。
風(fēng)險分析
攻擊者可利用該漏洞繞過業(yè)務(wù)流程檢測,進(jìn)行非法修改他人密碼等危險操作。
風(fēng)險等級:
【高?!浚豪@過前面的校驗步驟,直接跳轉(zhuǎn)至后面的校驗步驟。
修復(fù)方案
建議在不影響業(yè)務(wù)的前提下,在Session中添加對每一步流程頁面的校驗標(biāo)志位,在新步驟頁面瀏覽過程中,僅能夠順序執(zhí)行頁面校驗,不可進(jìn)行跳步操作,例如:頁面二完成后,應(yīng)更新Flag=3,則僅能夠打開頁面三。
業(yè)務(wù)功能失效
通配符注入
漏洞描述
允許使用通配符構(gòu)造語句查詢數(shù)據(jù)庫,導(dǎo)致拒絕服務(wù)攻擊問題。
測試方法
模糊查詢時輸入第一個字符’%‘或’_’,sql會遍歷全表,導(dǎo)致應(yīng)用訪問緩慢。
風(fēng)險分析:SQL中通配符的使用如下:
1%包含零個或多個字符的任意字符串。
2_任何單個字符。
3[]指定范圍(例如 [a-f])或集合(例如 [abcdef])內(nèi)的任何單個字符。
4[^]不在指定范圍(例如 [^a - f])或集合(例如 [^abcdef])內(nèi)的任何單個字符。
5在模糊查詢 LIKE中,對于輸入數(shù)據(jù)中的通配符必須轉(zhuǎn)義,否則會造成客戶想查詢包含這些特殊字符的數(shù)據(jù)時,這些特殊字符卻被解析為通配符,數(shù)據(jù)庫響應(yīng)緩慢,導(dǎo)致拒絕服務(wù)攻擊。
風(fēng)險等級:
【中?!浚和ㄅ浞⑷胍l(fā)數(shù)據(jù)庫響應(yīng)緩慢
修復(fù)方案
1有兩種將通配符轉(zhuǎn)義為普通字符的方法:
2
31) 使用ESCAPE關(guān)鍵字定義轉(zhuǎn)義符(通用)
4在模式中,當(dāng)轉(zhuǎn)義符置于通配符之前時,該通配符就解釋為普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,請使用:
5WHERE ColumnA LIKE '%5/%%'ESCAPE '/'
62) 在方括號 ([ ]) 中只包含通配符本身,或要搜索破折號 (-) 而不是用它指定搜索范圍,請將破折號指定為方括號內(nèi)的第一個字符。例如:
7符號 含義
8LIKE '5[%]'5%
9LIKE '5%'5后跟 0個或多個字符的字符串
10LIKE '[_]n'_n
11LIKE '[ [ ]'[
12LIKE ']'] (右括號不需要轉(zhuǎn)義)
13
14所以,對輸入?yún)?shù)的關(guān)鍵字過濾后,還需要做下面轉(zhuǎn)換確保LIKE的正確執(zhí)行
15privatestaticstringConvertSqlForLike( stringsql )
16{
17sql = sql.Replace( "[",
18"[[]");
19// 這句話一定要在下面兩個語句之前,否則作為轉(zhuǎn)義符的方括號會被當(dāng)作數(shù)據(jù)被再次處理
20sql = sql.Replace( "_",
21"[_]");
22sql = sql.Replace( "%",
23"[%]");
24returnsql;
25}
業(yè)務(wù)功能濫用
短信定向轉(zhuǎn)發(fā)
漏洞描述
短信接收人可任意指定
測試方法
攔截發(fā)送短信的請求,將手機(jī)號改為測試人員的手機(jī)號,測試是否可接收短信驗證碼。
風(fēng)險分析
攻擊者可利用該漏洞將驗證碼發(fā)送到自己的手機(jī)號上,重置他人密碼或轉(zhuǎn)賬。
風(fēng)險等級:
【高?!浚憾绦沤邮杖丝扇我庵付?/p>
修復(fù)方案
發(fā)送短信時手機(jī)號從當(dāng)前會話中獲取,避免從前端傳入。
郵件可定向轉(zhuǎn)發(fā)
漏洞描述
應(yīng)用系統(tǒng)發(fā)送郵件的接收人可由客戶端任意指定
測試方法:=
攔截發(fā)送郵件的請求,將接收人郵箱改為測試人員的郵箱地址,測試是否可接收郵件。
風(fēng)險分析
攻擊者可利用該漏洞將郵件發(fā)送到自己的郵箱中,重置他人密碼。
風(fēng)險等級:
【高?!浚亨]件接收人可任意指定
修復(fù)方案
發(fā)送郵件時郵箱從當(dāng)前會話中獲取,避免從前端傳入。
業(yè)務(wù)接口調(diào)用缺陷
漏洞描述
應(yīng)用的業(yè)務(wù)接口存在缺陷,可以通過業(yè)務(wù)接口直接進(jìn)行惡意操作。
測試方法
把業(yè)務(wù)邏輯和功能模塊呈現(xiàn)的內(nèi)容結(jié)合,推測出隱藏的API接口。
如用戶信息的接口是http://www.xxx.com/api/user/userInfo,推測重置密碼接口可能是http://www.xxx.com/api/user/passReset,文件上傳接口是http://www.xxx.com/api/user/uploadFile等。
如果這些接口沒有限制訪問,則可以直接調(diào)用并提交數(shù)據(jù)。
針對開源或商業(yè)軟件的業(yè)務(wù)接口調(diào)用缺陷可參考《通用系統(tǒng)安全測試指導(dǎo)文檔》
風(fēng)險分析
攻擊者可通過編寫API枚舉腳本,惡意調(diào)用敏感接口,從而進(jìn)行提交數(shù)據(jù)等操作。
風(fēng)險等級:
【高?!浚和ㄟ^業(yè)務(wù)接口能夠操作核心業(yè)務(wù)內(nèi)容,進(jìn)行越權(quán)
【高危】:通過業(yè)務(wù)接口能夠獲得重要敏感數(shù)據(jù)
【中?!浚和ㄟ^業(yè)務(wù)接口能夠獲得中等程度敏感數(shù)據(jù)
修復(fù)方案
對于每一個訪問的接口都首先檢查當(dāng)前用戶是否已經(jīng)登錄并授權(quán)(不需要認(rèn)證的接口除外,例如,免費下載接口等)。
IMAP/SMTP注入
漏洞描述
和廣為人知的諸如SQL注入、XPath注入等技術(shù)類似,郵件服務(wù)器注入技術(shù)也是通過一個對用戶提供的數(shù)據(jù)沒有嚴(yán)格檢查的webmail應(yīng)用程序?qū)MAP命令或者SMTP命令注入到郵件服務(wù)器。
要向郵件服務(wù)器注入命令,前提條件是允許用戶通過webmail應(yīng)用程序訪問其端口25(SMTP)和143(IMAP)。
測試方法
要利用SMTP注射,用戶必須事先通過認(rèn)證,所以用戶必須有一個有效的webmail帳戶。通過SMTP發(fā)送電子郵件消息的格式如下:
1* 發(fā)送方的e-mail地址
2* 接收方的e-mail地址
3* 主題
4* 消息主體
5* 附件
CC/BCC注入
1在發(fā)送者字段(sender)后注入CC和BCC參數(shù)
2From:sender@domain.com%0ACc:recipient@domain.com%0ABcc:recipient1@domain.com
3所以現(xiàn)在,消息將被發(fā)送到recipient和recipient1賬戶。
參數(shù)注射
1From:sender@domain.com%0ATo:attacker@domain.com
2現(xiàn)在消息將被發(fā)送到原來的收件人和攻擊者帳戶。注意,這里的攻擊者的賬戶是我們通過注入額外傳入的。
郵件主題注入
1From:sender@domain.com%0ASubject:This’ s%20Fake%20Subject
2攻擊者注入的假的主題subject將被添加到原來的主題中并且在某些情況下將取代原本的主題subject。這取決于郵件服務(wù)行為。即代碼編寫的容錯性,當(dāng)參數(shù)中出現(xiàn)兩個subject的時候代碼是選擇丟棄還是后者覆蓋。
改變消息的主體body
1要注意 SMTP的 Mail格式,消息主題和頭部 Header之間有兩個換行符(和 HTTP是一樣的)。
2From:sender@ domain. com% 0A% 0AMy% 20New% 20% 0Fake% 20Message.
3假消息將被添加到原始消息中。
風(fēng)險分析
電子郵件注入允許惡意攻擊者注入任意郵件頭字段,BCC、CC、主題等,它允許黑客通過注入手段從受害者的郵件服務(wù)器發(fā)送垃圾郵件。
風(fēng)險等級:
【高?!浚嚎沙晒俪置艽a找回等信息
【高危】:可成功發(fā)送垃圾郵件
修復(fù)方案
建議從以下幾個方面進(jìn)行防御:
1.所有用戶輸入應(yīng)該被認(rèn)為是不可信的。使用正則表達(dá)式來過濾用用戶提交的數(shù)據(jù)。例如,可以在輸入字符串中搜索(r 或 n)。
2.使用外部組件和庫,例如ZEND mail、PEAR mail和swift mailer。
3.ModSecurity可以阻止服務(wù)器級別的電子郵件注入。利用ModSecurity,可以檢測通過POST或GET提交的CC, BCC或目的地址,并且拒絕任何包含這些字母請求。
引用第三方不可控腳本/URL
漏洞描述
頁面中引用了不可控的腳本或超鏈接
測試方法
檢查頁面內(nèi)容,是否引用了第三方未知腳本或超鏈接,如惡意的js腳本或病毒木馬的下載鏈接等。
風(fēng)險分析
攻擊者可在網(wǎng)站中插入惡意鏈接或腳本,導(dǎo)致正常用戶瀏覽時cookie被竊取或被種植病毒木馬。
風(fēng)險等級:
【高?!浚捍嬖诓豢煽赝怄溁蚰_本,且未經(jīng)過審批
【中?!浚捍嬖诓豢煽赝怄溁蚰_本,但可提供審批記錄
修復(fù)方案
建議在不影響業(yè)務(wù)的前提下,對網(wǎng)站引用的文件和源代碼進(jìn)行審查,一經(jīng)發(fā)現(xiàn)有未審批的外鏈或腳本,應(yīng)立即刪除。
開啟危險接口
漏洞描述
開啟可利用的危險接口,如獲取訂單信息、用戶身份信息等。
測試方法:
使用掃描器掃描特殊目錄和鏈接
根據(jù)正常接口的命名特征猜測隱藏的危險接口,如獲取個人信息接口是getUserInfo,猜測獲取訂單信息接口getOrderDetail。
風(fēng)險分析
開啟了危險接口,如訂單信息打印、上傳、web管理控制臺等,可能被攻擊者發(fā)現(xiàn)并利用,直接操作應(yīng)用數(shù)據(jù),造成數(shù)據(jù)泄漏等風(fēng)險。
風(fēng)險等級:
【高危】:正常情況接口是在認(rèn)證之后被調(diào)用,如果可公網(wǎng)直接無認(rèn)證使用
【中?!浚捍嬖谔貦?quán)、非正常用戶不可知但可利用接口
修復(fù)方案:
1.敏感接口增加訪問控制,避免未授權(quán)訪問;
2.用戶訪問接口需校驗權(quán)限,避免越權(quán)訪問。
未驗證的URL跳轉(zhuǎn)
漏洞描述
服務(wù)端未對傳入的跳轉(zhuǎn)url變量進(jìn)行檢查和控制,可能導(dǎo)致可惡意構(gòu)造任意一個惡意地址,誘導(dǎo)用戶跳轉(zhuǎn)到惡意網(wǎng)站。
由于是從可信的站點跳轉(zhuǎn)出去的,用戶會比較信任,所以跳轉(zhuǎn)漏洞一般用于釣魚攻擊,通過轉(zhuǎn)到惡意網(wǎng)站欺騙用戶輸入用戶名和密碼盜取用戶信息,或欺騙用戶進(jìn)行金錢交易;
也可能引發(fā)的XSS漏洞(主要是跳轉(zhuǎn)常常使用302跳轉(zhuǎn),即設(shè)置HTTP響應(yīng)頭,Locatioin: url,如果url包含了CRLF,則可能隔斷了http響應(yīng)頭,使得后面部分落到了http body,從而導(dǎo)致xss漏洞)。
另外在struts2 中存在重定向的漏洞,是因為struts2由于縮寫的導(dǎo)航和重定向前綴“action:”、 “redirect:”、 “redirectAction:” 等參數(shù)前綴的內(nèi)容沒有被正確過濾導(dǎo)致的開放式重定向漏洞。
測試方法:
首先找到網(wǎng)站相關(guān)url中存在跳轉(zhuǎn)鏈接的參數(shù)(如登陸頁面)。
在檢測的同時,可以修改參數(shù)中的合法URL為非法URL,然后查看是否能正常跳轉(zhuǎn)或者通過抓包工具獲取其HTTP響應(yīng)頭中Host:的值是否包含了構(gòu)造的URL。
如果是struts2重定向漏洞,則可通過web掃描工具掃描發(fā)現(xiàn),或者手工驗證,直接在URL后添加?redirect:+指定釣魚鏈接,例如:10.1.82.53:9098/admin/login.action?redirect:http://diaoyu.com進(jìn)行驗證。
風(fēng)險分析
攻擊者利用URL跳轉(zhuǎn)漏洞來欺騙安全意識低的用戶,從而導(dǎo)致“中獎”之類的欺詐事件發(fā)生。
同時利用URL跳轉(zhuǎn),也可以突破常見的基于“白名單方式”的一些安全限制,如傳統(tǒng)IM里對于URL的傳輸會進(jìn)行安全校驗,
但是對于知名網(wǎng)站的域名及URL將直接允許通過并且顯示為可信的URL,一旦該可信的URL里包含URL跳轉(zhuǎn)漏洞將導(dǎo)致安全限制被繞過。
URL跳轉(zhuǎn)最典型的例子就是登錄跳轉(zhuǎn),示例代碼如下:
1publicvoiddoRedirect(HttpServletRequest req, HttpServletResponse res)
2{
3String jumpURL=request.getParameter(“jumptoURL”);
4response.setHeader( "Location",jumpURL);
5}
6若程序未過濾jumptoURL參數(shù),攻擊者將惡意鏈接:http: //www.xxx.com/login.jsp?jumptoURL=http://www.evil.com發(fā)給其他用戶,
7安全意識較低的用戶會認(rèn)為該鏈接展現(xiàn)的內(nèi)容是www.xxx.com,從而產(chǎn)生欺詐行為。
8同時由于QQ、淘寶旺旺等在線IM都是基于URL的過濾,對部分站點會通過白名單的方式直接通過,因此惡意URL可以在IM里傳播。
9例如IM認(rèn)為www.xxx.com是可信的,但是通過在IM里點擊上述鏈接將導(dǎo)致用戶最終訪問http: //www.evil.com。
風(fēng)險等級:
【高危】:URL 跳轉(zhuǎn)參數(shù)可控,且未對參數(shù)做白名單限制導(dǎo)致任意地址跳轉(zhuǎn)可被利用釣魚。
修復(fù)方案
對傳入的URL做有效性的認(rèn)證,保證該URL來自于信任域。限制的方式可參考以下兩種:
1限制Referer(Referer是HTTP header中的字段,當(dāng)瀏覽器向web服務(wù)器發(fā)送請求時,一般會帶上Referer,告訴服務(wù)器是從哪個頁面鏈接過來的),通過限制Referer保證將要跳轉(zhuǎn)URL的有效性,避免攻擊者生成自己的惡意跳轉(zhuǎn)鏈接;
2加入有效性驗證Token,保證所有生成的鏈接都來自于可信域,通過在生成的鏈接里加入用戶不可控的Token對生成的鏈接進(jìn)行校驗。
服務(wù)器端請求偽造(SSRF)
漏洞描述
服務(wù)端請求偽造攻擊(Server-side Request Forgery): 很多web應(yīng)用都提供了從其他的服務(wù)器上獲取數(shù)據(jù)的功能。
使用用戶指定的URL,web應(yīng)用可以獲取圖片,下載文件,讀取文件內(nèi)容等。
這個功能如果被惡意使用,可以利用存在缺陷的web應(yīng)用作為代理攻擊遠(yuǎn)程和本地的服務(wù)器。
這種形式的攻擊稱為服務(wù)端請求偽造攻擊(Server-side Request Forgery)。
一般情況下, SSRF攻擊的目標(biāo)是從外網(wǎng)無法訪問的內(nèi)部系統(tǒng) 。( 正是因為它是由服務(wù)端發(fā)起的,所以它能夠請求到與它相連而與外網(wǎng)隔離的內(nèi)部系統(tǒng) ).
SSRF 形成的原因大都是由于 服務(wù)端提供了從其他服務(wù)器應(yīng)用獲取數(shù)據(jù)的功能且沒有對目標(biāo)地址做過濾與限制 。
比如從指定URL地址獲取網(wǎng)頁文本內(nèi)容,加載指定地址的圖片,下載等等。
攻擊者利用ssrf可以實現(xiàn)的攻擊主要有5種:
1可以對外網(wǎng)、服務(wù)器所在內(nèi)網(wǎng)、本地進(jìn)行端口掃描,獲取一些服務(wù)的banner信息;
2攻擊運行在內(nèi)網(wǎng)或本地的應(yīng)用程序(比如溢出);
3對內(nèi)網(wǎng)web應(yīng)用進(jìn)行指紋識別,通過訪問默認(rèn)文件實現(xiàn);
4攻擊內(nèi)外網(wǎng)的web應(yīng)用,主要是使用 get參數(shù)就可以實現(xiàn)的攻擊(比如struts2,sqli等);
5利用file協(xié)議讀取本地文件等。
測試方法
從WEB功能上尋找:我們從上面的概述可以看出,SSRF是由于服務(wù)端獲取其他服務(wù)器的相關(guān)信息的功能中形成的,
因此我們大可以列舉幾種在web 應(yīng)用中常見的從服務(wù)端獲取其他服務(wù)器信息的的功能。
1通過分享功能:通過URL地址分享網(wǎng)頁內(nèi)容:
2早期分享應(yīng)用中,為了更好的提供用戶體驗,WEB應(yīng)用在分享功能中,通常會獲取目標(biāo)URL地址網(wǎng)頁內(nèi)容中的 tilte / title 標(biāo)簽或者 metaname= "deion"content= “”/ 標(biāo)簽中content的文本內(nèi)容作為顯示以提供更好的用戶體驗。例如人人網(wǎng)分享功能中:http://widget.renren.com/*****?resourceUrl=https://www.nsfocus.com
3通過目標(biāo)URL地址獲取了title標(biāo)簽和相關(guān)文本內(nèi)容。而如果在此功能中沒有對目標(biāo)地址的范圍做過濾與限制則就存在著SSRF漏洞.
4轉(zhuǎn)碼服務(wù):通過URL地址把原地址的網(wǎng)頁內(nèi)容調(diào)優(yōu)使其適合手機(jī)屏幕瀏覽:由于手機(jī)屏幕大小的關(guān)系,直接瀏覽網(wǎng)頁內(nèi)容的時候會造成許多不便,因此有些公司提供了轉(zhuǎn)碼功能,把網(wǎng)頁內(nèi)容通過相關(guān)手段轉(zhuǎn)為適合手機(jī)屏幕瀏覽的樣式。例如百度、騰訊、搜狗等公司都有提供在線轉(zhuǎn)碼服務(wù)。
5在線翻譯:通過URL地址翻譯對應(yīng)文本的內(nèi)容。提供此功能的國內(nèi)公司有百度、有道等。
6圖片加載與下載,通過URL地址加載或下載圖片:圖片加載遠(yuǎn)程圖片地址此功能用到的地方很多,但大多都是比較隱秘,比如在有些公司中的加載自家圖片服務(wù)器上的圖片用于展示。(此處可能會有人有疑問,為什么加載圖片服務(wù)器上的圖片也會有問題,直接使用img標(biāo)簽不就好了? ,沒錯是這樣,但是開發(fā)者為了有更好的用戶體驗通常對圖片做些微小調(diào)整例如加水印、壓縮等,所以就可能造成SSRF問題)。
7圖片、文章收藏功能:此處的圖片、文章收藏中的文章收藏就類似于功能一、分享功能中獲取URL地址中title以及文本的內(nèi)容作為顯示,目的還是為了更好的用戶體驗,而圖片收藏就類似于功能四、圖片加載。
8未公開的api實現(xiàn)以及其他調(diào)用URL的功能:此處類似的功能有360提供的網(wǎng)站評分,以及有些網(wǎng)站通過api獲取遠(yuǎn)程地址xml文件來加載內(nèi)容.
風(fēng)險分析
如果應(yīng)用程序?qū)τ脩籼峁┑腢RL和遠(yuǎn)端服務(wù)器返回的信息沒有進(jìn)行合適的驗證和過濾,則可能存在服務(wù)器端請求偽造攻擊。
服務(wù)器端請求偽造攻擊場景如下圖所示:
攻擊者想要訪問主機(jī)B上的服務(wù),由于存在防火墻的原因無法直接訪問,這時可以借助主機(jī)A來發(fā)起服務(wù)器端請求偽造攻擊,通過主機(jī)A向主機(jī)B發(fā)起請求,從而完成攻擊。
1SSRF攻擊方式主要有以下 5種:
2
3對外網(wǎng)、服務(wù)器所在內(nèi)網(wǎng)、本地進(jìn)行端口掃描,獲取一些服務(wù)的banner信息(一般包括服務(wù)器的類型、版本,服務(wù)器上啟動的服務(wù)信息);
4攻擊運行在內(nèi)網(wǎng)或本地的應(yīng)用程序(比如堆棧溢出); 3) 通過訪問默認(rèn)文件實現(xiàn)對內(nèi)網(wǎng)Web應(yīng)用的指紋識別;
5攻擊內(nèi)外網(wǎng)的Web應(yīng)用,主要是使用GET參數(shù)就可以實現(xiàn)的攻擊(比如Struts2,Sqli等);
6利用 file協(xié)議讀取本地文件等。
風(fēng)險等級:
【高?!浚河谢仫@,可探測內(nèi)網(wǎng),文件訪問
【中?!浚簾o回顯,但可訪問外網(wǎng)
修復(fù)方案
通常從以下幾點來防御服務(wù)器端請求偽造攻擊:
1過濾內(nèi)網(wǎng)服務(wù)器對公網(wǎng)服務(wù)器請求的響應(yīng)。如果Web應(yīng)用是獲取某一類型的文件,在把返回結(jié)果展示給用戶之前應(yīng)先驗證返回的信息是否符合文件類型標(biāo)準(zhǔn),比如返回信息應(yīng)為圖片,如果返回信息是HTML,則停止將返回信息返回客戶端。
2統(tǒng)一錯誤提示信息,避免用戶可以根據(jù)錯誤信息來判斷遠(yuǎn)端服務(wù)器的端口狀態(tài)。
3在內(nèi)網(wǎng)服務(wù)器的防火墻上限制公網(wǎng)服務(wù)器的請求端口為HTTP等協(xié)議常用端口,如: 80、 443、 8080、 8090。
4若公網(wǎng)服務(wù)器的內(nèi)網(wǎng)IP與內(nèi)網(wǎng)無業(yè)務(wù)通信,建議將公網(wǎng)服務(wù)器對應(yīng)的內(nèi)網(wǎng)IP列入黑名單,避免應(yīng)用被用來獲取內(nèi)網(wǎng)數(shù)據(jù)。
5內(nèi)網(wǎng)服務(wù)器禁用不必要的協(xié)議,僅允許HTTP和HTTPS請求,防止類似于 file: ///、gopher://、ftp:// 等協(xié)議引起的安全問題。
短信內(nèi)容可控
漏洞描述
短信內(nèi)容可從客戶端指定
測試方法
在客戶端編輯任意短信內(nèi)容,測試是否過濾特殊內(nèi)容。
風(fēng)險分析
攻擊者可利用該漏洞,借助短信平臺,編輯釣魚短信發(fā)送給其他用戶。
風(fēng)險等級:
【高?!浚憾绦艃?nèi)容可控,且接收人可任意指定
【中?!浚憾绦艃?nèi)容可控,但接受人不可控
修復(fù)方案
建議在不影響業(yè)務(wù)的前提下,禁止客戶端編輯短信內(nèi)容。
郵件內(nèi)容可控
漏洞描述
應(yīng)用系統(tǒng)發(fā)送郵件的郵件內(nèi)容可由客戶端任意指定
測試方法
在客戶端編輯任意郵件內(nèi)容,測試是否過濾特殊內(nèi)容。
風(fēng)險分析
攻擊者可利用該漏洞,借助郵件平臺,編輯釣魚郵件發(fā)送給其他用戶。
風(fēng)險等級:
【高?!浚亨]件內(nèi)容可控,且收件人可任意指定
【中?!浚亨]件內(nèi)容可控,但收件人地址不可控
修復(fù)方案
建議在不影響業(yè)務(wù)的前提下,禁止客戶端編輯郵件內(nèi)容。
請求重放攻擊
漏洞描述
關(guān)鍵業(yè)務(wù)操作未作token或者唯一標(biāo)識碼,導(dǎo)致攻擊者可以重復(fù)多次進(jìn)行請求,導(dǎo)致惡意操作。如重復(fù)交易等問題。
測試方法
重放http/tcp請求,查看第二次請求是否被正常處理。
風(fēng)險分析
攻擊者惡意或欺詐性地重復(fù)發(fā)送一個有效的數(shù)據(jù)包,如果服務(wù)器未檢查此類重復(fù)提交的請求數(shù)據(jù)的有效性,那么轉(zhuǎn)賬充值等敏感操作將有可能會被重復(fù)執(zhí)行。
風(fēng)險等級:
【高?!浚宏P(guān)鍵業(yè)務(wù)操作請求未設(shè)置 token 或標(biāo)識碼,導(dǎo)致業(yè)務(wù)數(shù)據(jù)越界或錯誤
修復(fù)方案
服務(wù)端應(yīng)用程序應(yīng)檢查客戶端提交的數(shù)據(jù)的唯一性,如使用流水號、時間戳、token等,并將流水號、時間戳等進(jìn)行簽名。
批量提交
漏洞描述
應(yīng)用程序未使用驗證碼等防自動化操作的方法,可批量提交請求,如批量注冊。
測試方法:
編寫自動提交HTTP數(shù)據(jù)包的腳本;
或使用burpsuite的intruder功能批量提交請求。
風(fēng)險分析
注冊不需要驗證碼時,攻擊者通過編寫自動化腳本,實現(xiàn)程序自動提交注冊信息;
若注冊需要驗證碼,但驗證碼位數(shù)不多于4位且為純數(shù)字時,通過使用軟件burpsuite的intruder功能窮舉得到正確的驗證碼后,再結(jié)合自動化腳本工具即可實現(xiàn)批量注冊垃圾賬號。
風(fēng)險等級:
【高?!浚赫I(yè)務(wù)為單條數(shù)據(jù)請求,且不存在防自動化批量操作措施,可批量自動化提交。
【低危】:正常業(yè)務(wù)為單條數(shù)據(jù)請求,且存在防自動化批量操作措施,但在單個數(shù)據(jù)包中寫入批量數(shù)據(jù),可成功提交,并且服務(wù)器能批量執(zhí)行。
修復(fù)方案:
2.用戶注冊功能處,提交注冊信息后進(jìn)行郵箱或短信驗證通過后再將注冊信息寫入數(shù)據(jù)庫。
3.對同一IP地址短時間內(nèi)提交請求的次數(shù)進(jìn)行限制。
摘抄
在這煙塵人間,
并非俗不可耐索然無味,
冬日暖陽,夏日蟬鳴都顯可愛。
版權(quán)聲明:本文為CSDN博主「星球守護(hù)者」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
版權(quán)聲明:著作權(quán)歸作者所有。如有侵權(quán)請聯(lián)系刪除
開源聚合網(wǎng)安訓(xùn)練營
環(huán)境搭建
Python
學(xué)員專輯
信息收集
CNVD
安全求職
滲透實戰(zhàn)
CVE
高薪揭秘
滲透測試工具
網(wǎng)絡(luò)安全行業(yè)
神秘大禮包
基礎(chǔ)教程
我們貼心備至
用戶答疑
QQ在線客服
加入社群
QQ+微信等著你
我就知道你“在看”
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。