mysql在linux下諸多稀奇古怪的錯誤

年末了,黑客氾濫,網站被黑了,服務器也被植入了攻擊代碼,攻擊代碼待會兒貼出來php

被掛馬的網站集中在PHPCMS,DEDECMS上,都是開源的應用性比較廣的系統,經過一句話木馬base64_decode

一、找出木馬
html

find /www/web -name "*.php" |xargs grep "eval" |more
//查看最近一天內被改動的php
find -mtime -1 -type f -name \*.php
find /www/web -name "*.php" |xargs grep "shell_exec" |moremysql

find /www/web -name "*.php" |xargs grep "base64_decode" |morelinux

find /www/web -name "*.php" |xargs grep "fsockopen" |morenginx

這樣基本上就能找到攻擊代碼或者掛馬的代碼所在的文件了。web

二、重裝LINUXsql

木馬是找出了,可是天天仍是有ddos攻擊,因而我重裝了系統,安裝了wdlinux,這個系統安裝上以後就包含了lamp環境,只是php跟mysql版本太舊了點,不推薦使用,但通常的應用應該差很少了,但有個問題,就是shtml沒法解析。這裏給出解決方案:網上的其餘解決方案解決不了shell

見http://www.wdlinux.cn/bbs/viewthread.php?tid=4268&highlight=shtml,爲避免帖子被刪,這裏直接貼出來吧apache

必須修改2個地方: 一個是apachenginx裏的conf文件
第一步:修改apache裏的httpd.conf文件
查找:AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
去掉前面的#符號
修改爲:AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html(添加.HTML是爲了讓HTML也支持include調用)
查找:Options Indexes FollowSymLinks 在後面加上INCLUDES
進入:VHOST文件夾,找到你的站點配置CONF文件,
查找:Options FollowSymLinks,
修改爲:Options FollowSymLinks INCLUDES IncludesNOEXEC
修改到這裏的時候,前往你的網站,你會發現,訪問www.abc.com 和www.abc.com/index.shtml這樣的相同頁面,倒是不一樣的
在www.abc.com/index.shtml中,用include調用的文件,系統並不能解讀出來,而在www.abc.com中卻能解讀出來,中間緣由未知!
而後接着第二步:
進入nginx,打開nginx.conf文件
在http, server, 和 location 段中加入:
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;

而後,重啓服務器,OK了!所有搞定!服務器

三、dedecms問題

dedecms出了問題,要麼就是修改文章時archives is read only,要麼就是添加文章找不到主鍵,折騰了半天,其實無非是個權限問題

a、檢查mysql文件夾是否有寫入權限

cd /www/wdlinux/mysql-5.1.63/var/ctaxman

ls -l

發現不是777,乾脆把全部文件權限都設置777吧

chmod -R 777 *.*

作到這一步後報錯依然,繼續下一步

b、檢查文件的用戶權限

在上一步ls -l中發現,有幾個數據表的文件的用戶是mysql mysql,因而修改下

chown -R root:root *.*

修復數據表,仍是報錯,哈哈,其實要修改爲這個

chown -R mysql:mysql *.*

c、修復數據表

用phpmyadmin或者乾脆在crt中執行

REPAIR TABLE dede_archives

執行完後就發現可使用了。

後記:表面上來看我這就寫了三點,但在研究過程當中,到處報錯,在修復數據表的時候由於沒有把文件的權限以及宿主賦予到mysql(ps:文件是經過crt上傳的,都是root,root),因此再修復數據表的時候會報錯的,一直是沒法修復的。我還看了root用戶是否用寫入權限,由於無論是修改表仍是刪除表都報錯,都報表is read only,即便刪除數據表都不行,你說多坑爹。

相關文章
相關標籤/搜索