文章目錄
- 修改mysql登陸密碼
- 修改背景密碼
- 備份web
- 資料庫備份與還原
- 修改ssh密碼
- 自查webshell,敏感檔案
- 上waf
修改mysql登陸密碼
登陸密碼如果端口沒有對外開放沒有必要修改。
法一:
mysql> set password for [email protected] = password('123');
root:使用者名 123:新的密碼
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZj91YpB3In5GcukTMzEjN1UTMwITMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
法二:
[email protected]00cfd20efab1:/$ mysqladmin -uroot -p123 password qwe
修改完登陸密碼還需要修改配置檔案中的密碼,不然網站無法連接配接資料庫,配置檔案名字一般含有
config database
等關鍵字。
修改背景密碼
1,在html目錄中找sql檔案,裡面有使用者名和密碼
搜尋admin找admin賬戶的密碼。
md5線上解密一下得到密碼,比賽中一般都是爆破弱密碼,密碼一般都是
admin admin123 cms名字
2,資料庫中找
$ mysql -u root -p
mysql> show databases;
+-----------------------+
| Database |
+-----------------------+
| information_schema |
| bitcoin |
| cltphp51_db |
| mysql |
| performance_schema |
| score_mbamission |
| score_minnesotaunited |
| tweb |
+-----------------------+
一般在與cms名字相同的資料庫裡面
mysql> use cltphp51_db;
Database changed
mysql> show tables;
+------------------------+
| Tables_in_cltphp51_db |
+------------------------+
| clt_ad |
| clt_ad_type |
| clt_admin |
| clt_article |
| clt_auth_group |
...
成功找到使用者名和密碼
mysql> select *from clt_admin
-> ;
+----------+-----------+----------------------------------+----------+-------------------+----------+-------------+-----------+------------+---------+---------+
| admin_id | username | pwd | group_id | email | realname | tel | ip | add_time | mdemail | is_open |
+----------+-----------+----------------------------------+----------+-------------------+----------+-------------+-----------+------------+---------+---------+
| 1 | admin | 0192023a7bbd73250516f069df18b500 | 1 | [email protected] | | 18792402229 | 127.0.0.1 | 1482132862 | 0 | 1 |
| 8 | 毛豆豆 | e10adc3949ba59abbe56e057f20f883e | 2 | [email protected] | 0 | 18767654897 | 127.0.0.1 | 1498815814 | 0 | 1 |
+----------+-----------+----------------------------------+----------+-------------------+----------+-------------+-----------+------------+---------+---------+
2 rows in set (0.00 sec)
修改:随便修改下不讓登陸就行。
update clt_admin set pwd='qwq' where username='admin';
mysql> update clt_admin set pwd='qwq' where username='admin';
mysql> flush privileges;
mysql> select *from clt_admin;
+----------+-----------+-----+----------+-------------------+----------+-------------+-----------+------------+---------+---------+
| admin_id | username | pwd | group_id | email | realname | tel | ip | add_time | mdemail | is_open |
+----------+-----------+-----+----------+-------------------+----------+-------------+-----------+------------+---------+---------+
| 1 | admin | qwq | 1 | [email protected] | | 18792402229 | 127.0.0.1 | 1482132862 | 0 | 1 |
| 8 | 毛豆豆 | qwq | 2 | [email protected] | 0 | 18767654897 | 127.0.0.1 | 1498815814 | 0 | 1 |
+----------+-----------+-----+----------+-------------------+----------+-------------+-----------+------------+---------+---------+
2 rows in set (0.00 sec)
備份web
web備份方式多種多樣,最簡單的就是使用MobaXterm,winscp,xftp等有圖形化的管理工具直接拖下來即可
也可以使用指令備份到伺服器上
tar -zcvf web.tar.gz /var/www/html 備份源碼
tar -zcf /tmp/name.tar.gz /path/web
解包
tar -zxvf archive_name.tar.gz
資料庫備份與還原
具體實操可以看這篇部落格:實操:資料庫的備份與還原
資料庫備份:
mysqldump -u db_user -p db_passwd db_name > 1.sql//備份指定資料庫
mysqldump -udb_user -pdb_passwd -A> 1.sql //備份所有資料庫
資料庫還原:
法1
mysql -u db_user -p db_passwd db_name < 1.sql //還原指定資料庫
cd /var/lib/mysql
法2
mysql -u db_name -p
input passwd 進入mysql控制台mysql>
mysql> show databases;看看有哪些資料庫
mysql> create database test ; 建立要還原的資料庫
mysql> use test;切換到剛建立的資料庫
mysql> source test.sql; 導入資料庫
修改ssh密碼
這一步不是必須的,如果主辦方給的密碼夠複雜,那麼就不需要修改。
passwd //輸入passwd指令以修改密碼
輸入舊密碼
輸入新密碼
如下圖所示:
自查webshell,敏感檔案
用seay等工具掃描down下來的源碼
像這種eval,system等極有可能是預留後門,需要馬上删除,并将資訊提供給攻擊隊員。
上waf
一般包含在index.php或config.php中,如果不嫌麻煩可以給每個php檔案都包含上
<?php
error_reporting(0);
define('LOG_FILENAME', './log.txt');
function waf() {
if (!function_exists('getallheaders')) {
function getallheaders() {
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5))))) ] = $value;
}
return $headers;
}
}
$get = $_GET;
$post = $_POST;
$cookie = $_COOKIE;
$header = getallheaders();
$files = $_FILES;
$ip = $_SERVER["REMOTE_ADDR"];
$method = $_SERVER['REQUEST_METHOD'];
$filepath = $_SERVER["SCRIPT_NAME"];
//rewirte shell which uploaded by others, you can do more
foreach ($_FILES as $key => $value) {
$files[$key]['content'] = file_get_contents($_FILES[$key]['tmp_name']);
file_put_contents($_FILES[$key]['tmp_name'], "virink");
}
unset($header['Accept']); //fix a bug
$input = array(
"Get" => $get,
"Post" => $post,
"Cookie" => $cookie,
"File" => $files,
"Header" => $header,
"ip" =>$ip,
"filepath" =>$filepath
);
//deal with
$pattern = "select|insert|update|delete|and|or|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|dumpfile|sub|hex";
$pattern.= "|file_put_contents|fwrite|curl|system|eval|assert";
$pattern.= "|passthru|exec|system|chroot|scandir|chgrp|chown|shell_exec|proc_open|proc_get_status|popen|ini_alter|ini_restore";
$pattern.= "|`|dl|openlog|syslog|readlink|symlink|popepassthru|stream_socket_server|assert|pcntl_exec";
$vpattern = explode("|", $pattern);
$bool = false;
foreach ($input as $k => $v) {
foreach ($vpattern as $value) {
foreach ($v as $kk => $vv) {
if (preg_match("/$value/i", $vv)) {
$bool = true;
logging($input);
break;
}
}
if ($bool) break;
}
if ($bool) break;
}
}
function logging($var) {
date_default_timezone_set("Asia/Shanghai");//修正時間為中國準确時間
$time=date("Y-m-d H:i:s");//将時間指派給變量$time
file_put_contents(LOG_FILENAME, "\r\n\r\n\r\n" . $time . "\r\n" . print_r($var, true) , FILE_APPEND);
// die() or unset($_GET) or unset($_POST) or unset($_COOKIE);
}
waf();
?>