前言
前一段时间接触了一下web安全的实训。。。(笑)。痛定思过,这里总结一下自己对于WEB安全的认识
目录
目前常见的安全性问题
1、SQL注入
1、原理
<p>SQL注入基本原理是通过构建特殊的输入作为参数传入Web应用程序, web应用程序对用户输入数据的合法性没有判断或过滤不严 ,导致查询数据的sql语句错误,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。 </p>
2、具体实现过程
拿沙盒系统举例,我们的登陆界面,如果已知某个用户名,那么通过sql注入代码成功进入到我们的后台。。。。。
但是是因为测试沙盒未开启magic_quote_gpc的扩展
注入代码
'or 1=1#; admin'#
如果
实际拼接的sql语句:
就变成了
Select * from user where username = '' or 1=1;# and password = '';
当然这种是极端情况
那么如果有开启相应的扩展,这边也有思路,就是通过数字的转化来实现注入侵入。
2、xss攻击
1、原理
因为浏览器在执行网页代码的时候,并不能理解或者说规避访问一些不正规的脚本,即恶意脚本,从而使得攻击者可以获取用户的Token或者用户个人信息等值,依此获取攻击的目的。常与csrf令牌攻击一起使用
2、具体类型
一般是按照脚本注入的形式划分,可以分为存储型、反射性以及DOM型。其中前两个是由后端进行规避的,通常使用特殊字符过滤等手段,而DOM型攻击则是由于前端页面的Javascript对于部分API接口调用引起的。
3、具体实现
存储型,一般是数据在从前台页面提交,存放到数据库的过程中,没有对其内容进行审核,部分敏感字符没有过滤,如:<、>等。
反射性:一般是服务端在URL中直接提取后显示在前端页面上,同样的,一些特殊字符没有过滤。如<> %3c,%3e等字段
DOM型:这一个有些争议,有些是直接把它归到了反射型里面,但是我觉得因为这一部分主要是浏览器为主体调动,反射型是服务端主体调动。主要是在一些API的地址里面直接进行插入,比如Image、onload、javascript:window.href='' 等等
4、如何防护
存储型的xss,在日益进步的现今,基本都已经绝迹了。。。反射型的,则是需要谨慎地注意一下过滤。DOM型的,则需要在前端页面使用部分直接使用URL或者直接显示的代码中,谨慎筛选,包括<>以及大小写不规律,空格避开过滤规则,直接使用ASCII字符规避过滤等。。当然这个整体都需要谨慎。
3、csrf令牌攻击
1、原理
<p>全名是跨站点请求伪造,伪造表单提交地址。</p>
2、具体攻击手段
<form action="https://example.com/tweet" method="POST"> <input type="hidden" name="tweet" value="Pay for $10000 at http://b.com/#iambad"> <input type="submit" value="Click to win!"> </form>
3、防范
利用令牌进行验证以及筛选。。
对提交方式进行筛选。。
但是某些xss攻击可以获取用户的token,所以防护应该全面。
4、DDos攻击
1、原理
分布式拒绝服务
操作多台肉鸡对你的系统进行围殴。。。(基本型)
利用 tcp/udp 协议规律,通过占用协议栈资源或者发起大流量拥塞,达到消耗目标机器性能或者网络的目的。
2、具体工作方法
群殴。。
最近两年新出的一种变形是DRDOS ,
作用原理是基于广播地址与回应请求的, 一台计算机向另一台计算机发送一些特殊的数据包如ping请求时,会接到它的回应;如果向本网络的广播地址发送请求包,实际上会到达网络上所有的计算机,这时就会得到所有计算机的回应。这些回应是需要被接收的计算机处理的,每处理一个就要占用一份系统资源,如果同时接到网络上所有计算机的回应,接收方的系统是有可能吃不消的。
3、防范
1。确保服务器的系统文件是最新的版本,并及时更新系统补丁。 2。关闭不必要的服务。 3。限制同时打开的SYN半连接数目。 4。缩短SYN半连接的time out 时间。 5。正确设置防火墙 禁止对主机的非开放服务的访问 限制特定IP地址的访问 启用防火墙的防DDoS的属性 严格限制对外开放的服务器的向外访问 运行端口映射程序祸端口扫描程序,要认真检查特权端口和非特权端口。 6。认真检查网络设备和主机/服务器系统的日志。只要日志出现漏洞或是时间变更,那这台机器就可 能遭到了攻击。 7。限制在防火墙外与网络文件共享。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客, 无疑是给了对方入侵的机会。 8。路由器 以Cisco路由器为例 Cisco Express Forwarding(CEF) 使用 unicast reverse-path 访问控制列表(ACL)过滤 设置SYN数据包流量速率 升级版本过低的ISO 为路由器建立log server
4、种类
ACK Flood攻击
ICMP Flood攻击
Connection Flood攻击
HTTP Get攻击
UDP DNS Query Flood攻击
5、CC攻击
1、原理
WEB应用层拒绝服务攻击
与DDOS 类似,不过是攻击一些动态页面,比如一些与数据库交互频繁的动态查询页面。。
2、具体实现方式
防御简单的多了,减少动态页面以及多次提交,实行验证码验证(仅针对直接攻击)
还有两种攻击方式:
代理攻击以及僵尸网络攻击
代理攻击是操作一批代理服务器,形象地说就是找了一群人来砸场子,插普通用户的队。会导致页面打卡极其缓慢或者白屏
僵尸网络攻击类似DDOS
3、防范
1、更改Web端口
即改变WEB默认端口,一般攻击者会默认从80端口进行攻击,那么,我们把80的端口进行封闭,并另外开放一个新的端口号。
2、屏蔽不良IP
3、程序执行之后及时释放资源
4、对负载比较高的程序增加前置条件判断(如一个session多少秒才能请求一次)
5、开启线上日志系统
6、钓鱼软件以及弱口令管理员密码(。。。)
看自觉了,修改邮件头以及邮件内容形式,伪造相似域名,诱使客户进入获取密码。。。
管理员则是密码过于简单。。
7、外链盗用
看日志筛选吧。。。
8、删库跑路(极端情况、容灾能力)
多备份。。。三地五中心(蚂蚁金融的容灾介绍)后期再整,,如果上云的话,会轻便很多