1、SQL注入
对于存在漏洞的网站,精心构建网页提交参数,参数中附带恶意攻击的SQL语句
网站服务器代码,并没有主动过滤这些恶意代码,就会导致攻击者的SQL语句被执行
比如:
--原始语句拼接: select * from tableA where uid='传入参数' --把参数设计为: a'; delete * from tableA; ' --直接替换后就成为: select * from tableA where uid='a'; delete * from tableA; '' --这张表的数据就没了
2、跨站脚本攻击XSS
攻击者在网页中注入恶意脚本,当其他用户浏览该网页时,恶意脚本就会在用户的浏览器上执行
包括:反射型XSS、存储型XSS、DOM型XSS、其他XSS
比如:反射型XSS,攻击者在网站A中,放入精心构造的网站B的URL,但这个URL中包含恶意脚本
用户点击这个URL时,恶意脚本会被一同发送到网站B,然后反射到用户浏览器,被用户浏览器执行
从而达到盗取信息、劫持等目的
3、跨站请求伪造CSRF
比如:被攻击者已经登录了网站A,并保留有登录信息
攻击者诱导被攻击者访问网站B,利用网站A的登录信息,向网站A发送精心构造的请求,比如转账请求
网站A收到请求后,判定登录信息有效,执行了转账,后果可想而知
4、XML External Entity攻击XXE
对于一些老旧的网站,上传精心构造的XML,利用XML解析器配置不当,可以执行XML的DTD中的指令
这样再访问这个被上传的XML,就能看到指令的执行结果
5、服务器端请求伪造SSRF
利用服务器端之间的信任,精心构造请求,绕过服务器限制,达到攻击目的
比如攻击者希望获取A网站的一张保密的图片,但没有权限
攻击者又发现B网站与A网站之间有更高的信任关系,而且B网站的留言功能,会主动缓存一些URL的图片资源
攻击者在B网站留言板,输入A网站的图片地址,过几分钟一刷新
B网站已将A网站的图片进行了缓存,攻击者就获取到了这张图片,绕过了A网站的限制
6、JSONP攻击
JSONP技术多用于跨域获取数据,并执行回调,如果没有做好限制,容易被攻击者利用
比如攻击者在网站A上构造一个精心的URL,这个URL指向网站B,同时带有一个回调函数
如果没有防护,网站B会按请求内容进行响应,然后返回数据,被攻击者的浏览器会自动执行回调函数
攻击者可以利用这个回调函数,达到获取信息等非法目的
7、越权攻击
攻击者通过构造访问URL,尝试获取超出账号的权限
传统Web服务,很多页面都可以被越权攻击,甚至访问到管理员页面
包括水平越权和垂直越权
比如一个账户,原本只能看到一个商品的销售信息,但在URL中,通过枚举商品ID,居然可以访问到所有商品销售信息
8、扫描攻击
利用漏洞、弱口令、端口扫描工具,对网络中主机进行批量扫描,根据扫描结果一一攻破,然后偷偷上传木马等控制软件
很多肉鸡就是这样被制造出来的
9、目录遍历
如果网站没有限制不可枚举目录,其实风险是很高的
无论是看到网站源码、配置文件、还是日志,都有可能暴露出新的被攻击点
10、漏洞攻击
利用主机、中间件、各类组件现有的漏洞,然后进行利用
11、零日漏洞攻击
任何软件,在爆出漏洞到漏洞补丁推出,到漏洞被修复,这之间有个时间差
在这个时间差之内,利用该类漏洞进行攻击,被大家成为0day攻击
比如“三角测量”攻击,利用多个零日漏洞,攻破iPhone防护,可安装恶意软件
12、命令注入
有些网站,有命令执行的功能
这样,攻击者可以通过精心构造的请求,将想要执行的脚本,嵌入到请求中
最终达到在服务端执行命令,并返回结果的目的
13、文件上传
有些网站,没有做好上传文件的限制
攻击者甚至可以上传shell脚本
结合上面的命令注入,后果可想而知
14、恶意文件
通过宏、代码嵌入等方式,达到执行恶意代码的目的
比如N年前常见的office宏攻击或VBA攻击,下载一个文件就中招了
还有精心构造的图标、后缀、压缩包,也能达到麻痹被攻击者,执行恶意代码的目的
15、蠕虫病毒攻击
通过系统或某些软件漏洞,自动攻击主机或网络设备,复制,潜伏,然后继续攻击其他电脑
这样也能抓到不少肉鸡
但蠕虫传播很快,肉鸡多了,就成了僵尸网络
16、木马攻击
通过各类攻击手段,在被攻击方的电脑上,安装一个小程序
这个小程序被成为特洛伊木马,会隐藏自己,好一些的在任务管理器都找不到,更厉害的可以获取比内核还高一些的权限
然后攻击者,通过这个木马,获取被攻击者的信息,甚至对电脑进行完全控制
比特币价格好的时候,有人还用攻击的到的电脑挖矿,你能信。。。
17、勒索软件
加密算法的发明人,应该也没想到,自己发明的算法,会被用来开发这类软件
和蠕虫拼命扩散资深、木马拼命隐藏资深,并不一样
勒索软件会在后台,拼命扫描你的各类重要文档(包括数据库文件),然后进行加密
加密之后,会告诉被攻击者:你的资料都被加密了,想要吗?那就给指定地址打几个比特币
然后就会再解密
如果不支付,也可能会被撕票。。。
由于密钥长度一般很长,所以解密几乎不可能,要么交赎金,要么抓到幕后的攻击者
18、钓鱼邮件
将攻击代码或攻击软件,伪装为压缩包等方式,通过邮件,大规模发送给被攻击客户
当客户防护意识不够强的时候,误点了这些代码
就相当于自己安装了木马,或者蠕虫
这些软件既可以从你电脑中偷取资料,严重的时候会让电脑成为肉鸡
19、钓鱼网站
通过伪造网站,让用户误以为自己在官网
填写自己的用户名、密码、严重码信息
殊不知别人在真正的官网,通过这些信息登录成功
已经盗取了你的账号、你的信息、你的金钱
20、会话劫持
被攻击者登录成功后,获取被攻击者的会话识别信息
利用会话预测或会话固定技术,模拟客户,接管会话
客户和网站可能都不知道被劫持了
凭证填充:通过获取的凭证,可以尝试该网站各服务接口,尝试获取有价值的信息
21、邮件轰炸
通过软件,对指定邮箱,发送大量垃圾邮件
随着各类垃圾邮件过滤算法的提升,越来越难了
22、暴力破解
包括密码爆破、验证码爆破、目录爆破等
通过常用弱密码字典、被脱库的第三方密码库,构造程序,不断尝试自动登录
现在这种攻击基本都会被防护,密码错几次后就24小时后才能重试
但被脱库的第三方密码库,还是危害很大的
要定期改密码
这里再补充一个“短链爆破”,由于短链位数少,很容易被遍历,而且几乎没有访问限制,经常被攻击者作为一个突破口
23、密码攻击
除了密码爆破(字典、枚举),还有一些常用的手段
彩虹表攻击:通过已知的hash值,倒退密码,如果不加盐,还是很容易被攻破的
密码喷洒:通过一个防护薄弱的网站,获取被攻击者的密码,用这个密码,尝试各大网站
撞库攻击:通过已经泄露的用户名和密码组合,尝试在其他网站上进行登录,以获取未授权的访问权限
扫号攻击:攻击者利用网站页面或应用程序的接口来检测账号是否存在,为后续攻击手段做好准备
24、流量劫持(主机端)
浏览器劫持:通过改变用户的浏览器设置,如默认搜索引擎和主页,来重定向用户到特定的网站
数据劫持:篡改HTTP页面,注入广告或非法内容,包括HTTP头注入和HTTP内容注入
25、网站劫持
网站被攻破后,上传恶意页面,从而可以
a、页面植入
一般用户是不知道,他们看到的一个页面,可能是由n个页面组成的
在一个可信网站下,嵌入一个带有攻击目的的页面
诱导客户输入敏感信息,进而达到攻击者目的
b、点击劫持
通过视觉欺骗手段隐藏恶意链接,诱使用户进行错误点击
c、网站嵌入
嵌入各类不法网站
d、HTTPS欺骗
在安全网站中,嵌入不安全内容,欺骗客户
e、恶意下载
诱导客户下载恶意程序
26、配置错误攻击
配置错误,比大家认为的多很多,比如:
报错时,debug信息直接throw到页面上
spring boot可以通过env直接把配置信息展示到页面上
swagger ui可以不授权访问
redis等中间件没有设置访问限制
容器部署的时候,没有修改默认管理页面的密码
各类密钥,直接上传到代码库
打Jar包的时候,加入了混淆防护,但Source却包一起上传了maven库
生产环境和测试环境混用,导致删了生产数据
买了防火墙,但网络流量不经过防火墙,你能信?
27、逻辑漏洞攻击
这类攻击也很多,比如:
折扣券可以多次消费
通过带一些参数,直接获得更高的折扣
通过带一些参数,可以直接获得任意用户访问的权限
通过带一些参数,直接绕过验证码的防护
只有你想不到,没有他写不出来的逻辑Bug
28、缓存攻击
针对网站缓存特性,构建大量请求,造成缓存击穿或缓存穿透,从而导致网站崩溃
29、杂烩饭式恶意软件
组合使用多种恶意软件技术,进行恶意攻击,并有效防止被查杀。
比如“熊猫烧香”
30、加密货币攻击
挖矿劫持:利用受害者计算资源,给攻击者挖矿
51%攻击:控制网络超过一半的算力,达到操纵交易的目的,越是小的交易网络,越容易被攻击
智能合约漏洞攻击:利用合约中的逻辑漏洞,达到攻击目的,已经发生过多次,每次被攻击者都损失惨重
31、社会工程学攻击
这个是最难防的
就是有目的的与相关人士沟通,获取信任,进而获取权限
手段包括金钱、心理学、信息不对称等,方法通过聊天、电话、视频、语音、邮件,五花八门