本發(fā)明屬于領(lǐng)域,具體涉及一種電力移動應(yīng)用越權(quán)訪問漏洞檢測方法。
背景技術(shù):
近年來,在物聯(lián)網(wǎng)、云計(jì)算等互聯(lián)網(wǎng)信息技術(shù)高速發(fā)展的背景下,電力移動應(yīng)用進(jìn)入全面建設(shè)階段。目前在電力營銷、現(xiàn)場作業(yè)、數(shù)據(jù)采集、移動辦公等各個(gè)領(lǐng)域,都在進(jìn)行移動應(yīng)用的建設(shè)與推廣應(yīng)用,以降低運(yùn)營成本,提高工作效率。
移動應(yīng)用在高速發(fā)展的同時(shí),其信息安全問題也得到了越來越高的關(guān)注,如果移動應(yīng)用在需求、設(shè)計(jì)、開發(fā)過程中產(chǎn)生的安全漏洞未在集成測試階段被發(fā)現(xiàn)并整改,黑客利用移動應(yīng)用的安全漏洞入侵電力系統(tǒng),將給公司和用戶造成損失。目前對電力移動測評工作表明,現(xiàn)有自動化安全測試工具中可以發(fā)現(xiàn)信息泄露、SQL注入、跨站腳本等傳統(tǒng)的Web安全漏洞,但對于移動應(yīng)用越權(quán)訪問這種邏輯漏洞缺乏有效的檢測手段。越權(quán)訪問漏洞包括平行越權(quán)訪問和未授權(quán)訪問2種:平行越權(quán)訪問是指某個(gè)用戶可以訪問其他用戶的私有信息,例如每個(gè)用戶只能查詢自身的電量信息,如果可以查詢其他用戶的電量信息,則應(yīng)用存在平行越權(quán)訪問漏洞;未授權(quán)訪問是指低權(quán)限用戶可以獲取到只有高權(quán)限用戶才能獲取的信息,例如只有管理員能夠獲取系統(tǒng)配置信息,如果普通用戶也獲取了該信息,則應(yīng)用存在未授權(quán)訪問漏洞。利用該漏洞可實(shí)施非法信息獲取、數(shù)據(jù)篡改、違規(guī)操作等惡意攻擊行為。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有自動化安全測試工具中的不足,提高移動應(yīng)用的安全性,本發(fā)明提出一種電力移動應(yīng)用越權(quán)訪問漏洞檢測方法,解決了現(xiàn)有自動化漏洞測試工具無法發(fā)現(xiàn)越權(quán)訪問這種邏輯漏洞的問題,能夠用于在移動應(yīng)用上線前的集成測試階段開展越權(quán)訪問漏洞檢測工作,為移動應(yīng)用的安全建設(shè)工作提供支持。
實(shí)現(xiàn)上述技術(shù)目的,達(dá)到上述技術(shù)效果,本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn):
一種電力移動應(yīng)用越權(quán)訪問漏洞檢測方法,包括以下步驟:
(1)獲取并存儲移動應(yīng)用存在的所有用戶類型和與每種用戶類型對應(yīng)的用戶數(shù)量;
(2)構(gòu)造屬于同一用戶類型的不同用戶針對同一操作的http請求,修改其中一個(gè)用戶的http請求,并將修改后的請求發(fā)送給服務(wù)端,分析執(zhí)行結(jié)果以檢測平行越權(quán)訪問漏洞;
(3)構(gòu)造屬于不同用戶類型的不同用戶的http請求,并修改屬于部分用戶類型的用戶可執(zhí)行但其他類型用戶無法執(zhí)行操作的http請求,將修改后的請求發(fā)送給服務(wù)端,分析執(zhí)行結(jié)果以檢測未授權(quán)訪問漏洞;
(4)綜合步驟(2)和步驟(3)中檢測發(fā)現(xiàn)的漏洞,完成電力移動應(yīng)用越權(quán)訪問漏洞檢測。
進(jìn)一步地,所述步驟(1)中獲取并存儲移動應(yīng)用存在的所有用戶類型和與每種用戶類型對應(yīng)的用戶數(shù)量,具體包括以下步驟:
(1a)建立數(shù)據(jù)庫;
(1b)根據(jù)移動應(yīng)用的實(shí)際業(yè)務(wù),確定移動應(yīng)用存在的用戶類型,并存儲到數(shù)據(jù)庫中;
(1c)根據(jù)移動應(yīng)用的實(shí)際業(yè)務(wù),確定并存儲每種用戶類型支持的用戶數(shù)量,用戶數(shù)量1個(gè)或多個(gè),并存儲到數(shù)據(jù)庫中;
(1d)在數(shù)據(jù)庫中增加“未登錄的用戶”這種用戶類型,由于未登錄用戶的具有相同的權(quán)限,因此未登錄用戶的數(shù)量為1個(gè)。
進(jìn)一步地,所述步驟(2)中的檢測平行越權(quán)訪問漏洞,具體包括以下步驟:
(2a)篩選出包括多個(gè)用戶的用戶類型,針對每種用戶類型,分別執(zhí)行步驟(2b)-(2f);
(2b)選擇與該用戶類型對應(yīng)的其中2個(gè)不同的用戶A和用戶B,獲取與該用戶類型對應(yīng)的用戶可以執(zhí)行的全部操作;
(2c)對于每個(gè)操作,分別執(zhí)行步驟(2d)-(2f);
(2d)分別獲取用戶A和用戶B執(zhí)行該操作的http請求,如果2個(gè)請求的返回的結(jié)果不相同,則執(zhí)行步驟2e;
(2e)修改用戶B的http請求,將用戶B的http請求中的請求參數(shù)設(shè)置為用戶A的請求參數(shù),形成一個(gè)新的http請求;
(2f)將新的http請求以用戶B的身份發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果,如果返回結(jié)果包含了用戶A的http請求的結(jié)果,則說明用戶B獲取了用戶A的信息,檢測出平行越權(quán)訪問漏洞。
進(jìn)一步地,所述步驟(2d)還包括:如果2個(gè)請求的返回的結(jié)果相同,返回步驟2c處理下一個(gè)操作。
進(jìn)一步地,所述步驟(3)中構(gòu)造屬于不同用戶類型的不同用戶的http請求,并修改屬于部分用戶類型的用戶可執(zhí)行但其他類型用戶無法執(zhí)行操作的http請求,將修改后的請求發(fā)送給服務(wù)端,分析執(zhí)行結(jié)果以檢測未授權(quán)訪問漏洞,具體包括以下步驟:
(3a)篩選出不同的用戶類型,對于任意兩種不同的用戶類型,分別執(zhí)行步驟(3b)-(3f);
(3b)分別選擇與兩種不同用戶類型對應(yīng)的用戶C和用戶D,獲取用戶C可以執(zhí)行的全部操作和用戶D可執(zhí)行的全部操作;
(3c)對于用戶C的每個(gè)操作,如果該操作用戶D不可以執(zhí)行,則執(zhí)行步驟(3d)-(3e);
(3d)獲取用戶C執(zhí)行該操作的http請求,修改該http請求,將其中的請求用戶信息設(shè)置為用戶D的請求用戶信息,形成新的http請求;
(3e)新的http請求以用戶D的身份發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果,如果返回結(jié)果包含了用戶C的http請求的結(jié)果,則說明用戶D獲取了用戶C的信息,檢測出未授權(quán)訪問漏洞。
(3f)對于用戶D每個(gè)操作,如果該操作用戶C不可以執(zhí)行,則執(zhí)行步驟(3g)-(3h);
(3g)獲取用戶D執(zhí)行該操作的http請求,修改該請求,將其中的請求用戶信息設(shè)置為用戶C的請求用戶信息,形成新的http請求;
(3h)新的http請求以用戶C的身份發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果,如果返回結(jié)果包含了用戶D的http請求的結(jié)果,則說明用戶C獲取了用戶D的信息,檢測出未授權(quán)訪問漏洞。
進(jìn)一步地,所述步驟(3c)還包括:對于用戶C的每個(gè)操作,如果該操作用戶D也可以執(zhí)行,則不處理該操作。
進(jìn)一步地,所述步驟(3f)還包括:對于用戶D每個(gè)操作,如果該操作用戶C也可以執(zhí)行,則不處理該操作。
本發(fā)明的有益效果:
本發(fā)明提出一種電力移動應(yīng)用越權(quán)訪問漏洞檢測方法,解決了現(xiàn)有自動化漏洞掃描工具無法發(fā)現(xiàn)越權(quán)訪問這種邏輯漏洞的問題,能夠用于在移動應(yīng)用上線前的安全測試階段開展越權(quán)訪問漏洞檢測工作,為移動應(yīng)用的安全建設(shè)工作提供支持,避免漏洞被利用后造成的信息泄露和非法操作行為,以及由此給電力企業(yè)和用戶造成的損失。
附圖說明
圖1是本發(fā)明的一種電力移動應(yīng)用越權(quán)訪問漏洞檢測方法執(zhí)行流程示意圖;
圖2是本發(fā)明的平行越權(quán)訪問漏洞檢測流程圖;
圖3是本發(fā)明的未授權(quán)訪問漏洞檢測流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
實(shí)施例一
(1)確定移動應(yīng)用存在的不同的用戶類型,確保獲取用戶類型的全面性,并且得到與每種用戶類型對應(yīng)的用戶數(shù)量;
(2)構(gòu)造屬于同一用戶類型的不同用戶針對同一操作的http請求,修改其中一個(gè)用戶的http請求,并將修改后的請求發(fā)送給服務(wù)端,分析執(zhí)行結(jié)果以檢測平行越權(quán)訪問漏洞;
(3)構(gòu)造屬于不同用戶類型的不同用戶的http請求,并修改屬于部分用戶類型的用戶可執(zhí)行但其他類型用戶無法執(zhí)行操作的http請求,將修改后的請求發(fā)送給服務(wù)端,分析執(zhí)行結(jié)果以檢測未授權(quán)訪問漏洞;
(4)綜合步驟(2)和步驟(3)中檢測發(fā)現(xiàn)的漏洞,完成電力移動應(yīng)用越權(quán)訪問漏洞檢測。
所述步驟(1)中,確定移動應(yīng)用存在的不同的用戶類型,確保獲取用戶類型的全面性,并且得到與每種用戶類型對應(yīng)的用戶數(shù)量,具體包括以下幾個(gè)步驟:
(1a)根據(jù)移動應(yīng)用的實(shí)際業(yè)務(wù),確定移動應(yīng)用存在的用戶類型,使用types=<type1,type2……typen>數(shù)組保存用戶類型;
(1b)根據(jù)移動應(yīng)用的實(shí)際業(yè)務(wù),確定每種類型用戶支持的用戶數(shù)量,用戶數(shù)量為1個(gè)或多個(gè),例如有些應(yīng)用規(guī)定可以有多個(gè)申請用戶,但只有1個(gè)審核用戶。在數(shù)組中的每個(gè)用戶類型后面,增加該用戶類型的用戶的數(shù)量,1表示只有1個(gè),n表示可以有多個(gè),types=<type1:1,type2:n……typen:1>;
(1c)增加未登錄的用戶這種特殊的用戶類型,并且未登錄用戶的數(shù)量為1個(gè),在數(shù)組中增加未登錄用戶,types=<unlogin:1,type1:1,type2:n……typen:1>,其中unlogin表示未登錄的用戶。
如圖2所示,所述步驟(2)中,構(gòu)造屬于同一用戶類型的不同用戶針對同一操作的http請求,修改其中一個(gè)用戶的http請求,并將修改后的請求發(fā)送給服務(wù)端,分析執(zhí)行結(jié)果以檢測平行越權(quán)訪問漏洞,具體包括以下幾個(gè)步驟:
(2a)從types數(shù)組中選擇包括多個(gè)用戶的用戶類型得到數(shù)組types_s,types_s=<type2:n,type3:n……typem:n>,對于types_s中每種用戶類型,分別執(zhí)行步驟(2b)-(2f);
(2b)選擇typei∈types_s類型的2個(gè)不同用戶userA和userB,獲取typei類型用戶可以執(zhí)行的全部操作,使用數(shù)組保存這些操作cmds=<cmd1,cmd2……cmdn>;
(2c)對于cmds每個(gè)操作cmdi,如果該操作需要訪問后臺服務(wù)端則執(zhí)行步驟(2d)-(2f);
(2d)分別獲取userA和userB用戶執(zhí)行該操作的http請求,http=<url,cookie,paramters,response>,其中url為請求的地址,cookie為請求的身份信息,paramters為請求參數(shù),response為請求的返回結(jié)果。由于是同一個(gè)操作,因此2個(gè)請求的url地址是相同的,如果2個(gè)請求的返回的結(jié)果相同,則說明不同用戶得到的結(jié)果是相同的,返回步驟2c處理下一個(gè)操作,否則執(zhí)行步驟2e;
(2e)修改userB的httpB請求,將其中的請求參數(shù)設(shè)置為用戶A的請求參數(shù),得到的請求為http'=<url,cookieB,paramtersA,null>;
(2f)將http'請求發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果response',如果返回結(jié)果response'包含了userA的responseA的結(jié)果,則說明userB僅需要修改請求參數(shù)就可以獲取userA的信息,檢測出平行越權(quán)訪問漏洞。
如圖3所示,所述步驟(3)中,構(gòu)造屬于不同用戶類型的不同用戶的http請求,并修改屬于某些用戶類型的用戶可執(zhí)行但其他用戶類型的用戶無法執(zhí)行操作的http請求,將修改后的請求發(fā)送給服務(wù)端,分析執(zhí)行結(jié)果以檢測未授權(quán)訪問漏洞,具體包括以下幾個(gè)步驟:
(3a)從types數(shù)組得到用戶類型的數(shù)目n,選擇任意兩種不同的用戶類型,分別執(zhí)行步驟(3b)-(3f),總共有種不同的組合;
(3b)兩種類型分別選擇一個(gè)用戶userC和userD,獲取userC可以執(zhí)行的全部操作cmds.userC=<cmdC1,cmdC2……cmdCn>,和userD可執(zhí)行的全部操作cmds.userD=<cmdD1,cmdD2……cmdDn>;
(3c)對于userC執(zhí)行每個(gè)操作cmdsCi,如果cmdsCi需要訪問后臺服務(wù)端,獲取cmdsCi的http請求,httpCi=<urlCi,cookieCi,paramtersCi,responseCi>;對于userC的每個(gè)httpCi,如果該操作的urlCi在userD的可執(zhí)行操作列表的http請求中也存在,則不處理該操作,否則執(zhí)行步驟(3d)-(3e);
(3d)修改httpCi請求,將其中的cookieCi信息設(shè)置為userD的用戶信息cookieD,得到的請求為httpCi'=<urlCi,cookieD,paramtersCi,null>;
(3e)將httpCi'請求發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果responsei',如果返回結(jié)果包含了userC的httpCi請求的結(jié)果responseCi,則說明userD可以執(zhí)行不在其可執(zhí)行操作列表中的操作,并且獲取了userC的信息,檢測出未授權(quán)訪問漏洞。
(3f)對于userD的每個(gè)操作cmdsDi,如果cmdsDi需要訪問后臺服務(wù)端,獲取cmdsDi的http請求,httpDi=<urlDi,cookieDi,paramtersDi,responseDi>。對于userD的每個(gè)httpDi,如果該操作的urlDi在userC的可執(zhí)行操作列表的http請求中也存在,則不處理該操作,否則執(zhí)行步驟,否則執(zhí)行步驟(3g)-(3h);
(3g)修改httpDi請求,將其中的cookieDi信息設(shè)置為userC的用戶信息cookieC,得到的請求為httpDi'=<urlDi,cookieC,paramtersDi,null>;
(3h)修改后的httpDi'請求發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果responsei',如果返回結(jié)果包含了userD的httpDi請求的結(jié)果responseDi,則說明userC可以執(zhí)行不在其可執(zhí)行操作列表中的操作,并且獲取了userD的信息,檢測出未授權(quán)訪問漏洞。
實(shí)施例二
下面結(jié)合附圖和“掌上車輛管理(簡稱:掌上車管)”具體的移動應(yīng)用對本發(fā)明作進(jìn)一步描述。以下實(shí)施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護(hù)范圍。
參照圖1所示,本發(fā)明一種電力移動應(yīng)用越權(quán)訪問漏洞檢測方法,包括確定移動應(yīng)用的用戶類型、平行越權(quán)訪問漏洞檢測、未授權(quán)訪問漏洞檢測、測試結(jié)果匯總4個(gè)步驟進(jìn)行。
確定移動應(yīng)用存在的不同類型的用戶,具體包括以下幾個(gè)步驟:
(1a)根據(jù)移動應(yīng)用的實(shí)際業(yè)務(wù),確定移動應(yīng)用存在的用戶類型,使用types=<type1,type2……typen>數(shù)組保存用戶類型,“掌上車管”存在申請者(applicant)、審批者(approver)和駕駛員(driver)3種不同用戶。
types=<type1=applicant,type2=apporver,type3=dirver>
申請者在需要使用車輛的時(shí)候提交用車申請,并且可以查詢自己的歷史用車申請記錄;審批者對車輛新申請的用車進(jìn)行批準(zhǔn)或駁回,并為批準(zhǔn)的用車記錄指定車輛和駕駛員,審批者可以查詢所有的用車申請記錄;駕駛員可以查詢分配給自己的用車申請記錄,并在提供用車服務(wù)完畢后確認(rèn)用車流程結(jié)束。整個(gè)系統(tǒng)后臺還存在數(shù)據(jù)備份、臺帳管理、統(tǒng)計(jì)分析等管理功能,但是這些功能并未在移動端實(shí)現(xiàn),因此不屬于本實(shí)施例的檢測范圍。
(1b)根據(jù)移動應(yīng)用的實(shí)際業(yè)務(wù),確定每種用戶類型支持的用戶數(shù)量,“掌上車管”中存在多個(gè)申請者和駕駛員,但只有一個(gè)審批者。在數(shù)組中的每個(gè)類型后面,增加該類型用戶的數(shù)量,1表示只有1個(gè),n表示可以有多個(gè)types=<type1=applicant:n,type2=apporver:1,type3=dirver:n>;
(1c)增加未登錄的用戶這種特殊的用戶類型,并且未登錄用戶的數(shù)量為1個(gè),在數(shù)組中增加未登錄用戶,其中unlogin表示未登錄的用戶,types=<unlogin:1,type1=applicant:n,type2=apporver:1,type3=dirver:n>。
所述步驟(2)中,所述檢測平行越權(quán)訪問漏洞,具體包括以下幾個(gè)步驟:
(2a)從types數(shù)組中選擇包括多個(gè)用戶的用戶類型得到數(shù)組types_s,types_s=<type1=applicant:n,type3=dirver:n>,共有申請者和駕駛員2種用戶類型包含多個(gè)用戶,分別執(zhí)行步驟(2b)-(2f);
(2b)選擇typei∈types_s類型的2個(gè)不同用戶,申請者類型的2個(gè)用戶為:userA和userB,駕駛員類型的2個(gè)用戶為:userC和userD。獲取typei類型用戶可以執(zhí)行的全部操作,使用數(shù)組保存這些操作,申請者存在的操作包括:登錄、查詢歷史用車申請記錄、提交新的申請記錄、個(gè)人設(shè)置、注銷:
cmds.applicant=<cmd1=login,cmd2=newapply,cmd3=searchapply,cmd4=setting,cmd5=logout>
駕駛員存在的操作包括:登錄、查詢歷史用車申請記錄、結(jié)束用車申請記錄、個(gè)人設(shè)置、注銷:
cmds.driver=<cmd1=login,cmd2=finishapply,cmd3=searchapply,cmd4=setting,cmd5=logout>
(2c)對于每類每個(gè)操作,如果該操作需要訪問后臺服務(wù)端則執(zhí)行步驟(2d)-(2f),cmds.applicant和cmds.driver中的所有操作都需要訪問服務(wù)端;
(2d)cmds.applicant中的每個(gè)操作分別獲取userA和userB用戶執(zhí)行該操作的http請求,以查詢查詢歷史用車申請記錄請求(searchapply)為例,獲取userA和userB的http請求,其余請求參照下述過程執(zhí)行平行越權(quán)訪問漏洞檢測過程。
userA的原始http請求是:
userB的原始http請求是:
從上述原始請求中提取出請求的4要素,http=<url,cookie,paramters,response>,其中url為請求的地址,cookie為請求的身份信息,paramters為請求參數(shù),response為請求的返回結(jié)果。
提取之后userA的http請求是:
提取之后userB的http請求是:
由于是同一個(gè)操作,因此2個(gè)請求的url地址是相同的,如果2個(gè)請求的返回的結(jié)果相同,則說明不同用戶得到的結(jié)果是相同的,返回步驟2c處理下一個(gè)操作,此時(shí)2個(gè)請求的返回結(jié)果不相同,則執(zhí)行步驟2e;
(2e)修改userB的httpB請求,將其中的請求參數(shù)設(shè)置為用戶A的請求參數(shù),得到的請求為:
(2f)將新構(gòu)造的http'請求發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果response'為:
返回結(jié)果response'包含了userA.httpA.responseA的結(jié)果,則說明userB僅需要修改請求參數(shù)就可以獲取userA的信息,檢測出平行越權(quán)訪問漏洞。如果返回結(jié)果response'不包含userA的responseA的結(jié)果,該請求則沒有平行越權(quán)訪問漏洞。
cmds.applicant中的其他請求和cmds.driver中的所有請求,參照上述(3d)-(3f)的過程執(zhí)行平行越權(quán)訪問漏洞檢測過程。
所述步驟(3)中,所述檢測未授權(quán)訪問漏洞,具體包括以下幾個(gè)步驟:
(3a)從types數(shù)組得到用戶類型的數(shù)目n,選擇任意兩種不同的用戶類型,分別執(zhí)行步驟(3b)-(3f),總共有種不同的組合。“掌上車管”中存在未登錄用戶(unlogin)、申請者(applicant)、駕駛員(driver)、審批者(apporver)4種不同類型的用戶,因此總共產(chǎn)生6種不同的組合分別是:<unlogin,applicant>,<unlogin,driver>,<unlogin,apporver>,<applicant,driver>,<applicant,apporver>,<driver,apporver>。以<unlogin,applicant>為例執(zhí)行步驟(3b)-(3f)的未授權(quán)訪問漏洞檢測過程,其他用戶類型組合參照下述過程檢測。
(3b)unlogin類型選擇一個(gè)用戶userC,applicant類型選擇一個(gè)用戶userD,獲取userC和userD可以執(zhí)行的全部操作:
userC可以執(zhí)行登錄操作:
cmds.userC=<cmdC1=login>
userD可以執(zhí)行的操包括:登錄、查詢歷史用車申請記錄、提交新的申請記錄、個(gè)人設(shè)置、注銷:
cmds.userD=<cmdD1=login,cmdD2=newapply,cmdD3=searchapply,
cmdD4=setting,cmdD5=logout>
(3c)對于userC執(zhí)行每個(gè)操作cmdsCi,如果cmdsCi需要訪問后臺服務(wù)端,獲取cmdsCi的http請求,httpCi=<urlCi,cookieCi,paramtersCi,responseCi>;對于userD的每個(gè)操作cmdsDi,如果cmdsDi需要訪問后臺服務(wù)端,獲取cmdsDi的http請求,httpDi=<urlDi,cookieDi,paramtersDi,responseDi>。此時(shí)userC只有登錄操作,該操作需要訪問后臺,但該操作在userD的可執(zhí)行操作列表中存在,因此不處理該操作,跳過步驟(3d)-(3e)。
(3f)對于userD的每個(gè)操作cmdsDi都需要訪問后臺,其中查詢歷史用車申請記錄、提交新的申請記錄、個(gè)人設(shè)置、注銷5個(gè)操作的urlDi在userC的可執(zhí)行操作列表中不存在,因此對這5個(gè)操作執(zhí)行步驟(3g)-(3h)。
以查詢查詢歷史用車申請記錄請求(searchapply)為例,獲取userD的http請求,其余請求參照下述過程執(zhí)行未授權(quán)訪問漏洞檢測過程。
userD的原始用車申請記錄查詢http請求是:
提取之后userD的http請求是:
(3g)修改httpD3請求,將其中的cookieD3信息設(shè)置為userC的用戶信息cookieC,從userC的登錄請求中,獲取userC的cookieC信息。
userC的原始登錄http請求是:
提取之后userC的http請求是:
替換httpD3請求中的cookieD3信息,得到的請求為:
(3h)修改后的httpD3'請求發(fā)送給服務(wù)端,獲取服務(wù)端的返回結(jié)果response3'為:response3'={success:'false',reason:'-1'},該結(jié)果不包含userD的httpD3請求的結(jié)果responseD3,則說明userC無法執(zhí)行不在其可執(zhí)行操作列表中的操作,不存在未授權(quán)訪問漏洞。
如果返回結(jié)果包含了userD的httpD3請求的結(jié)果responseD3,則說明userC可以執(zhí)行不在其可執(zhí)行操作列表中的操作,并且獲取了userD的信息,檢測出未授權(quán)訪問漏洞。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。