SQL注入
sql注入是通过页面输入表单或传输的数据,修改拼接成sql语句,发送到服务端后服务端通过查询数据库,如果输入的参数不进行校验和处理直接与业务逻辑拼接成sql可能会获取一些数据库信息或授权。
例子:
1.' OR '1'='1
2.' or 1=1#'(#后面的内容为注释)
一般步骤:
1.寻找到SQL注入的位置
2.判断服务器类型和后台数据库类型
3.针对不通的服务器和数据库特点进行SQL注入攻击
防止:
1.严格检查输入变量的类型和格式,对输入参数强校验
2.过滤和转义特殊字符
3.预编译
XSS攻击
XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些脚本代码嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式
反射性攻击:
非持久性,漏洞产生的原因是攻击者注入的数据反映在响应
浏览器 -> 后端 -> 浏览器
存储性攻击
将脚本存入服务器数据库中导致之后的用户请求时会将该脚本取出并在浏览器执行。
浏览器 -> 后端 -> 数据库 -> 后端 -> 浏览器。
DDos攻击
DDos攻击就是利用大量合法的分布式服务器对目标发送请求,导致目标服务器不可用。
攻击类型:
1.资源消耗类型:通过消耗网络资源,带宽等导致服务器无法提供正常服务。例如:Syn Flood,Ack Flood等
2.服务消耗类型:针对服务的特点进行精确定点打击,攻击者并不发送大量请求,而是让服务器始终处于处理高消耗的的忙碌状态,例如CC
Syn Flood:用户向服务器发送报文后突然死机或掉线,服务器一直处于三次握手的等待状态,服务器端为了维护数以万计的半连接而消耗非常多的资源,结果往往是无暇理睬客户的正常请求,甚至崩溃。
ACK Flood:通过伪造请求的源ip,不断向服务器发送链接请求,服务器会向伪造的源ip发送SYN+ACK(被攻击服务器),导致被攻击服务器网络资源被占满。
CC攻击:利用大量数据库操作导致服务器CPU消耗高的特点,模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费。
CSRF攻击
CSRF叫做跨站点请求伪造,攻击者盗用用户的身份信息并向服务器进行请求从而获取用户的信息或对用户的信息进行操作。
例如:存在正常网站A,恶意攻击网站B,用户C
C在正常访问A网页后获取到用户的cookie,并存放在用户本地,C在不知情的情况下访问了攻击网站B,B返回用户的请求时携带了一些攻击代码,这些代码会获取到用户的cookie并伪造用户请求A网站并对用户的信息进行操作。
CSRF攻击适用于session+cookie的网站中,只要服务器中的session未过期,则可以使用用户的cookie模拟用户进行操作。