摘要:介紹本文重點(diǎn)講述采用模糊測試的方法測試目標(biāo)應(yīng)用程序時(shí),可利用的前綴和后綴語法。結(jié)論在這篇文章中,簡單介紹了后綴和前綴,以及如何使用它們進(jìn)行程序的模糊測試,文中以服務(wù)器為例,但這種方法和思路同樣適用于其他服務(wù)器。
介紹
本文重點(diǎn)講述采用模糊測試的方法測試目標(biāo)Web應(yīng)用程序時(shí),可利用的前綴和后綴語法。
句法后綴語法- 字母字符+特殊字符(Suffix Syntax – AlphabeticsSpecialcharacters)指字母字符后加特殊字符。因其以特殊字符結(jié)尾,故而稱之為后綴。
例如:jonnybravo" (此處jonnybravo是一個(gè)字符串,而"是一個(gè)特殊字符。)
前綴語法-特殊字符+ 字母字符(Prefix Syntax – SpecialcharactersAlphabetics)指特殊字符后跟字母字符。因其把特殊字符放在開始,故而稱之為前綴。
例如:‘jonnybravo (此處‘是一個(gè)特殊字符,而jonnybravo是一個(gè)字符串)
分析此處以一個(gè)后綴的例子做演示,驗(yàn)證并觀察其結(jié)果。下圖顯示了在用戶名處輸入后綴語法的字符串jonnybravo"的結(jié)果。
輸入字符串jonnybravo’
GET /chintan/index.php?page=user-info.php&username=jonnybravo%27&password=&user-info-php-submit-button=View+Account+Details HTTP/1.1 Host: localhostUser-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: http://localhost/chintan/index.php?page=user-info.phpCookie: showhints=0; PHPSESSID=39hb01vtdib9sov8rmmfok7kn2Connection: keep-aliveURL中特殊字符的編碼
輸入該字符串后,截取該請求,可知瀏覽器將此輸入作為URL的特定格式進(jìn)行編碼解析。所以特殊字符“"”轉(zhuǎn)義為“%27”,然后通過瀏覽器發(fā)送到服務(wù)器。
以下列出了URL中特殊符號(hào)及對應(yīng)的十六進(jìn)制編碼(編碼的格式為:%加字符的ASCII碼,即一個(gè)百分號(hào)%,后面跟對應(yīng)字符的ASCII(16進(jìn)制)碼值):
! - 21% @ - 40% # - 23% $ - 24% ^ - %5E & - %26 * - %2A ( - 28% ) - 29% { - %7B } - %7D - 2D% + - 2B [ - %5B 】 - 5D% ; - %3B : - %3A - %5C | - %7C , - %2C < - %3C 。 - %2E > - %3E / - %2F ? - %3F
轉(zhuǎn)發(fā)以上的GET請求,得到一個(gè)錯(cuò)誤頁面,提示用戶名是不合法的,如下圖所示:
首先從上面的錯(cuò)誤頁面可以看出在消息框中的jonnybravo"是我們輸入的字符串。然后分析顯示在消息框中的SQL查詢語句。該查詢?nèi)缦滤荆?/p>
Query: SELECT username FROM accountsWHERE username=’jonnybravo”;
通過查看這個(gè)SQL查詢語句,會(huì)立刻知道需要一個(gè)后綴和前綴以完成查詢語句本身。通過以下這個(gè)格式的查詢語句來說明這個(gè)問題:
Query: SELECTusername FROM accounts WHERE username=’jonnybravo”;
這里后綴"結(jié)尾該SQL語句,故而一旦輸入jonnybravo",那么該語法中的后綴"和jonnybravo之前的 ‘組合起來已經(jīng)完成了查詢語法。可以清楚地看到在開始和結(jié)束的特殊字符"是由服務(wù)器查詢語法提供的,但此處輸入字符中增加的一個(gè)"完成了該語句查詢,在執(zhí)行查詢時(shí)剩余的一個(gè)‘導(dǎo)致產(chǎn)出錯(cuò)誤。因?yàn)橛幸粋€(gè)未用的"字符,這不符合SQL查詢語法的規(guī)則。簡而言之,輸入字符中jonnybravo的后綴和服務(wù)器提供的前綴配對完成了查詢語句,而服務(wù)器提供的后綴未被采用故而導(dǎo)致了SQL語法錯(cuò)誤。
“如果不能正常關(guān)閉,那么無論什么輸入,它永遠(yuǎn)不會(huì)正常完成,你會(huì)得到一個(gè)錯(cuò)誤頁面。”
這是唯一的用戶名查詢頁面,所以可能會(huì)嘗試通過后臺(tái)運(yùn)行去提交該查詢。繼續(xù)到認(rèn)證頁面進(jìn)行測試,可能會(huì)看到查詢語句中的“用戶名”和“密碼”字段。此處將jonnybravo’作為用戶名并以momma作為密碼,在用戶名輸入字符串后添加了后綴’,并以簡單字符作為密碼。有時(shí)需要將兩者同時(shí)提交作為查詢語句。查詢語法如下所示。
Query: SELECT * FROM accounts WHERE username=’jonnybravo”AND password=’momma’
假設(shè)我們想要忽略執(zhí)行上面查詢語句中的AND password=’momma’。那么需要如何才能做到呢? 這里將使用"作為前綴并以(空格)-作為后綴。之所以用(空格)-是因?yàn)榧僭O(shè)這是一個(gè)MYSQL服務(wù)器,所以當(dāng)輸入(空格) -時(shí),它被解讀為一個(gè)注釋符號(hào)。在這種情況下無論這之后是什么內(nèi)容都將被視為注釋語句,注釋部分在服務(wù)器執(zhí)行查詢語句時(shí)會(huì)被忽略。
注入 – " -
然后,在輸入字段中添加諸如 or 1 = 1" 這樣的載荷,如此一來,最終注入語句類似如下所示:
注入 – " or 1 = 1" -
一旦將此語句注入到用戶名字段,會(huì)產(chǎn)生如下圖所示的錯(cuò)誤。
分析上述的注入語句,由提交字符串中的"來完成“username”用戶名字段,用戶名字段包括了來自服務(wù)器的‘ ‘字符,但因?yàn)槠渲屑尤肓俗⑷胝Z句,使其成為‘ ‘ or 1=1′ — ‘。進(jìn)一步分析查詢語句:
Username=’ ‘ or 1=1′ — ‘ AND password=’ ‘.
之前已經(jīng)提到,已假定這是MySQL服務(wù)器,所以(空格)–后的任何語句都將作為注釋語句來解讀。 那么重新分析這個(gè)查詢語句,可以看出,這個(gè)查詢語句中唯一執(zhí)行了的部分只剩下了1=1′。 因此,這是如何使用一個(gè)后綴和后綴進(jìn)行SQL注入的方法 。 由于在1=1后添加一個(gè)"可以產(chǎn)出一個(gè)在頁面上產(chǎn)出一個(gè)錯(cuò)誤,那么如果刪除了多余的",那么這個(gè)注入將正常完成,服務(wù)器不會(huì)拒絕1 = 1這種正確的邏輯,所以服務(wù)器將執(zhí)行該查詢。 故而最終的注入語句變成了 "or 1 = 1 -,把這串字符提交給用戶名字段,將會(huì)看到如下圖所示的查詢結(jié)果:
由顯示結(jié)果可知,服務(wù)器成功被注入,頁面上顯示出了數(shù)據(jù)庫整個(gè)表中存儲(chǔ)的所有結(jié)果,包括用戶名、密碼及其他字段的信息詳情。
結(jié)論在這篇文章中,簡單介紹了后綴和前綴,以及如何使用它們進(jìn)行web程序的模糊測試,文中以MySQL服務(wù)器為例,但這種方法和思路同樣適用于其他服務(wù)器。
附注:同作者曾發(fā)表了一系列關(guān)于手動(dòng)web應(yīng)用程序滲透測試的文章,其中與模糊測試方法相關(guān)的文章列表如下,如有興趣可點(diǎn)擊以下鏈接進(jìn)行閱讀:
手動(dòng)web應(yīng)用程序滲透測試:模糊測試
http://resources.infosecinstitute.com/manually-web-application-penetration-testing-fuzzing/
手動(dòng)web應(yīng)用程序滲透測試:使用Burp工具時(shí)的模糊測試參數(shù)
http://resources.infosecinstitute.com/web-services-penetration-testing-part-6-fuzzing-parameters-burp/
手動(dòng)web應(yīng)用程序滲透測試:更多與Burp工具相關(guān)的模糊測試
http://resources.infosecinstitute.com/web-services-penetration-testing-part-7-fuzzing-burp/
轉(zhuǎn)載自:FreebuF.COM
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/11108.html
摘要:一背景筆者月份在慕課網(wǎng)錄制視頻教程跨站漏洞加強(qiáng)安全里面需要講到很多實(shí)戰(zhàn)案例,在漏洞挖掘案例中分為了手工挖掘工具挖掘代碼審計(jì)三部分內(nèi)容手工挖掘篇參考地址為快速找出網(wǎng)站中可能存在的漏洞實(shí)踐一本文主要記錄利用安全工具進(jìn)行漏洞挖掘部分,分為了設(shè)置代 一、背景 筆者6月份在慕課網(wǎng)錄制視頻教程XSS跨站漏洞 加強(qiáng)Web安全,里面需要講到很多實(shí)戰(zhàn)案例,在漏洞挖掘案例中分為了手工挖掘、工具挖掘、代碼審...
閱讀 3513·2021-10-08 10:04
閱讀 863·2019-08-30 15:54
閱讀 2180·2019-08-29 16:09
閱讀 1347·2019-08-29 15:41
閱讀 2272·2019-08-29 11:01
閱讀 1735·2019-08-26 13:51
閱讀 1026·2019-08-26 13:25
閱讀 1806·2019-08-26 13:24