目录
书签
https://www.cnblogs.com/xrwcm/p/17631940.html
21. http长连接和短连接的区别
1:基础知识
1.1:计网 & OS & 计组 & 密码学
汇总
《计算机网络面试题,62道计算机网络八股文》:
https://javabetter.cn/sidebar/sanfene/network.html
《计算机网络面试题2022版》:
https://zhuanlan.zhihu.com/p/471948799
什么是同源策略?
- 具体表现为浏览器在执行脚本前,会判断脚本是否与打开的网页是同源的,判断协议、域名、端口是否都相同,相同则表示同源。
- 其中一项不相同就表示跨域访问。
- 会在控制台报一个CORS异常,目的是为了保护本地数据不被JavaScript代码获取回来的数据污染,因此拦截的是客户端发出的请求回来的数据接收,即请求发送了,服务器响应了,但是无法被浏览器接收。
简述 Cookie、LocalStorage 和 SessionStorage 区别
- 都是保存在浏览器端
- localStorage:用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
- sessionStorage:用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
《cookies,sessionStorage和localStorage的区别》:
https://blog.csdn.net/qq_30436011/article/details/119952969
《Cookie、sessionStorage、localStorage的区别》:
https://www.itheima.com/news/20210415/152901.html
cookie/session 的工作原理?
- 会话创建: 当用户首次访问网站时,服务器会为该用户创建一个唯一的会话标识(Session ID)。
- 会话数据存储: 服务器会为每个会话维护一个关联的会话存储空间,通常在服务器内存或数据库中。会话数据可以是用户的登录状态、购物车内容等。
- Session ID传递: 服务器将生成的Session ID发送给用户的浏览器,通常以Cookie的形式存储在浏览器中。
- 请求时的Session ID: 用户每次向服务器发送请求时,浏览器会自动在请求头中携带之前获得的Session ID。
- 会话数据检索: 服务器根据请求中的Session ID,在会话存储中检索与该ID关联的会话数据。
- 数据处理与响应: 服务器处理请求时可以访问和修改会话数据,然后将响应发送给浏览器。
- 会话结束: 当用户关闭浏览器或会话超时(通过设置过期时间),会话结束。服务器可能会清除会话数据,释放资源。
- 跨页面保持状态: 由于浏览器在每个请求中都发送Session ID,服务器可以在不同页面之间保持用户状态。
一次完整的HTTP请求过程?
- DNS解析: 浏览器根据URL中的主机名,通过DNS解析获取服务器的IP地址。
- 建立TCP连接: 浏览器通过客户端的TCP/IP协议栈,与服务器建立TCP连接,使用三次握手确保连接的建立。
- 发送HTTP请求: 浏览器将HTTP请求消息发送到服务器,包括请求方法(GET、POST等)、资源路径、协议版本、请求头等。
- 服务器处理请求: 服务器接收到请求后,根据请求的资源路径和方法,处理请求,可能涉及数据查询、业务逻辑等。
- 服务器返回响应: 服务器将处理结果封装成HTTP响应消息,包括协议版本、状态码、响应头、响应体等。
- 数据传输: 服务器通过TCP连接将HTTP响应消息发送回客户端浏览器。
- 接收响应: 浏览器接收并解析HTTP响应消息,包括状态码、响应头等。
- 渲染页面: 浏览器根据响应中的HTML、CSS、JavaScript等资源,渲染和展示页面。
- 关闭TCP连接: 客户端和服务器之间的TCP连接可能会在请求响应后关闭,释放资源,或在持久连接中保持以便后续请求。
http长连接和短连接的区别
- HTTP短连接:
- 每个HTTP请求都会在客户端和服务器之间建立一个新的连接。
- 请求完成后,连接会立即关闭,不会保持连接状态。
- 每个请求都需要重新建立连接,可能会引入较大的开销,特别是在多次请求时。
- HTTP长连接:
- 在单个连接上可以发送多个HTTP请求和响应。
- 连接在请求完成后不会立即关闭,保持打开状态,以便后续请求复用。
- 可以减少连接的建立和关闭开销,提高传输效率。
- 适用于需要多次请求的场景,如复杂的网页、资源加载等。
什么是原子操作?
- 所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。
- 原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。
定义 ARP 及其工作过程。
- ARP 协议:由 IP 地址获取 MAC 物理地址的协议。
《ARP协议工作流程》:
https://blog.csdn.net/qq_44041062/article/details/109844155
《ARP协议工作详细过程介绍》:
https://developer.aliyun.com/article/1003107
SSL 和 TLS 之间的主要区别是什么?
- 报文鉴别码不同
- 伪随机函数不同
- 密文族和客户证书不同
- 加密计算不同
- 填充不同
《SSL和TLS之间的主要区别是什么?》:
https://www.wangan.com/wenda/9707
《通俗理解SSL/TLS协议区别与原理》:
https://xiaoyue26.github.io/2018/09/26/2018-09/%E9%80%9A%E4%BF%97%E7%90%86%E8%A7%A3SSL-TLS%E5%8D%8F%E8%AE%AE%E5%8C%BA%E5%88%AB%E4%B8%8E%E5%8E%9F%E7%90%86/
解释非对称和对称加密之间的区别。
- 根本区别在于对称加密算法使用单个密钥,而非对称加密使用两个不同但相关联的密钥。
TCP 三次握手过程?
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入 SYN_SEND 状态,等待服务器确认
- 第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态
- 第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
OSI 七层模型?
- 物理层:负责传输物理位,定义连接器、电压等硬件特性,处理传输介质和信号传输的细节。
- 数据链路层(Data Link Layer): 提供点对点连接和可靠的数据传输,将原始比特流转换为帧,并负责流量控制、错误检测和纠正。
- 网络层(Network Layer): 处理路由和转发数据包,负责网络拓扑、寻址、路由选择等,使数据能够跨越不同网络传输。
- 传输层(Transport Layer): 提供端到端的通信,负责数据分段、流量控制、错误恢复等功能,同时也定义了不同协议的端口号。
- 会话层(Session Layer): 负责建立、管理和终止会话连接,管理数据交换的顺序和同步。
- 表示层(Presentation Layer): 负责数据的格式转换、加密解密、压缩解压缩等,确保数据在不同系统间的交换能够被正确解释。
- 应用层(Application Layer): 提供应用程序和网络服务之间的接口,为用户提供各种网络功能,如电子邮件、文件传输、远程访问等。
重要协议分布图
- 应用层:
- HTTP/HTTPS:超文本传输协议,用于Web浏览器和服务器之间传输数据。
- SMTP/POP3/IMAP: 用于电子邮件的协议,分别用于发送、接收和管理邮件。
- DNS: 域名系统,将域名转换为IP地址。
- FTP: 文件传输协议,用于文件传输。
- SSH: 安全外壳协议,用于加密远程访问。
- 表示层:
- SSL/TLS: 安全套接字层/传输层安全,用于加密通信。
- JPEG/GIF:图片压缩格式
- 会话层:
- NetBIOS: 用于在局域网中进行计算机间通信。
- RPC: 远程过程调用,用于在网络上调用远程计算机的程序。
- 传输层:
- TCP: 传输控制协议,提供可靠的、面向连接的通信。
- UDP: 用户数据报协议,提供无连接的通信。
- 网络层:
- IP: 互联网协议,用于在网络中传递数据包。
- ICMP: 互联网控制消息协议,用于错误报告和网络管理
- 数据链路层:
- Ethernet: 以太网协议,用于局域网通信。
- PPP: 点对点协议,用于串行通信。
- 物理层:
- 网络硬件接口,如网线、光纤等。
了解过websocket吗?
- WebSocket 是一种在单个 TCP 连接上进行全双工通信的应用层协议
- 最大特点是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息。
- WebSocket是需要浏览器和服务器握手进行建立连接的。
《WebSocket》
https://blog.csdn.net/qq_54773998/article/details/123863493
dns是什么?dns的工作原理/流程
- DNS(Domain Name System,域名系统)是一个分布式的命名系统,用于将人们可读的域名转换为计算机能够理解的IP地址。工作原理为:
- 本地查找:计算机首先检查自己的存储,看是否之前已经查过这个域名的IP地址。
- 询问本地DNS服务器:如果本地没有,计算机会询问你的网络供应商提供的本地DNS服务器。这个服务器可能有答案,也可能需要向其他服务器询问。
- 递归查询:本地DNS服务器开始向其他DNS服务器逐级询问,从根DNS服务器开始,然后到顶级域DNS服务器,再到权威DNS服务器。每一步都逐步缩小范围,直到找到目标域名的IP地址。
- 缓存:如果某个DNS服务器找到了域名的IP地址,它会将这个信息保存在缓存中,以便以后更快地回答类似的查询。
- 最终,当正确的IP地址找到后,计算机就可以连接到对应的网站,实现互联网上的通信。
rip协议是什么? rip的工作原理/流程
- RIP是一种帮助路由器找到最佳路径传送数据的方法,它每隔一段时间告诉邻居路由器怎么去其他地方,距离短的路径被选为最佳路径。如果某个路径出问题,会告诉邻居不要走这个路径。这样路由器就能在网络中传递数据了。
工作原理:
- 路由表维护: 每个路由器维护一个路由表,其中包含它能够到达的其他网络以及距离(通常以跳数表示)信息。
- 定期更新: 路由器周期性地将自己的路由表信息广播给相邻的路由器,这些路由器也是同一网络中的一部分。这样,每个路由器都可以知道周围网络的路由情况。
- 距离选择: 当路由器收到邻居路由器发送的路由表信息时,它会比较自己的路由表和收到的信息,选择距离最短的路径作为最佳路径。
- 毒性反转: RIP引入了"毒性反转"的概念,当一个路由器判断某个路径不可用时,会将该路径的距离设置为无穷大(16跳),然后通知相邻路由器。这样可以防止错误路径循环。
- 计时器和失效: 路由器维护计时器,如果在一段时间内没有收到关于某个路径的更新,就认为这个路径不可用,从路由表中删除。
- 路由表收敛: 当网络拓扑发生变化时,路由器之间会交换信息,逐渐调整路由表,以找到新的最佳路径。这个过程叫做路由表收敛。
RIP的缺点
- 慢速收敛: RIP的路由表收敛速度相对较慢。当网络拓扑发生变化时,需要一定时间才能更新所有路由器的路由表,这可能导致数据传输中断或延迟。
- 有限的网络规模: RIP设计初衷是用于小型网络,因此在大型网络中,特别是复杂的拓扑中,其性能会受到限制,可能导致不稳定和不可预测的结果。
- 跳数限制: RIP使用跳数(跳数越小表示路径越短)作为度量标准,但最大跳数为15,这意味着RIP无法适用于跳数超过15的网络。
- 低灵活性: RIP不支持多路径(等价路径)和不同度量标准,这限制了在复杂网络中选择最佳路径的能力。
- 频繁的广播: RIP需要定期广播路由信息,这可能会产生较大的网络流量,尤其在大型网络中,可能会影响网络性能。
- 安全性问题: RIP的广播和基于共享密钥的认证机制较为简单,容易受到欺骗和攻击。
- 不适合大规模网络: 由于RIP的工作方式和限制,它不适合用于大规模的复杂网络,特别是要求高速和稳定性的企业级网络。
TCP与UDP区别总结?
- 连接性:
- TCP:是一种面向连接的协议,确保数据的可靠传输。在通信前,建立连接,传输数据,然后关闭连接。
- UDP:是一种无连接的协议,数据在发送时不需要建立连接。每个数据包都是独立的,没有确认或状态维护。
- 可靠性:
- TCP:提供数据可靠性,确保数据按照正确的顺序到达,且不丢失。它使用确认、重传和流量控制等机制来实现。
- UDP:不提供数据可靠性,数据包可能会丢失、乱序,没有重传机制。适用于某些实时应用,如视频和音频流。
- 数据包:
- TCP:将数据分割成数据段,并添加序列号,确保按序传递,需要维护缓冲区。
- UDP:将数据分割成数据报,每个数据报都是独立的,没有序列号,不需要维护缓冲区。
- 传输速度:
- TCP:由于要确保数据的可靠性和顺序,可能会引入较多的延迟,传输速度较慢。
- UDP:没有额外的确认和重传机制,传输速度较快,适用于实时传输。
- 用途:
- TCP:适用于需要确保数据完整性和顺序的应用,如网页浏览、文件传输、电子邮件等。
- UDP:适用于实时性要求较高的应用,如音视频传输、在线游戏,以及一些不太重要的数据传输。\
- 开销:
- TCP:有较大的开销,包括建立和关闭连接、确认和重传机制等。
- UDP:开销较小,不需要建立连接和确认机制。
什么是三次握手四次挥手?TCP为什么要三次握手?
GET 和 POST的区别
- GET通过URL查询字符串传递少量数据,适用于获取数据,但数据可见且有长度限制。
- POST将数据放在请求体中传输,适合提交大量数据,适用于数据安全性要求高的场景。
1.2:Linux & Windows & 开发
linux 系统中的计划任务 crontab 配置文件中的五个星星分别代表什么?
- 分,时,日,月,星期几
windows 系统的安全快捷键?
- ctrl + alt + delete
- 启动任务管理器
- 安全登录,按下这个组合键,用户必须提供用户名和密码,以进行身份验证。有助于防止恶意软件模拟登录屏幕,提高系统的安全性。
- 修改密码等
- 机器默认接收此指令后立即终端当前所有进程,激活重新登录页面提示输入用户名和密码
1.3:软件、硬件、中间件、系统安全
分别说出 iis、apache、nginx 解析漏洞原理
- 文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下解释成脚本文件执行。
- IIS
- 在 IIS5.x/6.0 中,在网站下建立文件夹的名字为
*.asp
、*.asa
、*.cer
、*.cdx
的文件夹,那么其目录内的任何扩展名的文件都会被IIS当做asp文件来解释并执行。 - 在 IIS5.x/6.0 中,分号后面的不被解析,也就是说
xie.asp;.jpg
会被服务器看成是 xie.asp。 - 畸形解析漏洞
- 在 IIS5.x/6.0 中,在网站下建立文件夹的名字为
- Ngnix
- 畸形解析漏洞
- %00 空字节代码解析漏洞
- CVE-2013-4547
- Apache
- 文件名解析漏洞
- 罕见后缀
- .htaccess文件
《文件解析漏洞》:
https://www.cnblogs.com/yokan/p/12444476.html
《常见的网站中间件渗透思路总结》
https://jiwo.org/ken/detail.php?id=2987
《红队攻击篇-常见中间件安全集合分析》
https://buaq.net/go-149602.html
什么是防火墙?设置在哪?作用?
- 防火墙是为网络设计的安全系统。
- 设置在监视和控制网络流量的任何系统或网络的边界上。
- 防火墙通常用于保护系统或网络免受恶意软件,蠕虫和病毒的侵害。防火墙还可以防止内容过滤和远程访问。
解释 WAF
- Web Application Firewall。
- 用于过滤和监视Web应用程序与Internet之间的传入和传出流量,保护Web应用程序。
《什么是 WAF?》:
https://www.cloudflare.com/zh-cn/learning/ddos/glossary/web-application-firewall-waf/
《WAF和防火墙的区别》:
https://www.fortinet.com/cn/resources/cyberglossary/waf-vs-firewall
Mysql 数据库帐号和密码存放在那个库和表里面
- 通常存储在名为 mysql 的系统数据库中的 user 表中。密码是加密的。
请说出 mysql5.0 以下与 5.0 以上的区别
- mysql5.0 及以上版本存在一个系统自带的数据库:information_schema,而 5.0 以下的版本不存在。
- 5.0 以上都是多用户,5.0 以下是单用户。
《MySQL5.0及以上和5.0以下有什么区别》:
https://blog.csdn.net/qq_55213436/article/details/125290521
php爆绝对路径方法?
- 单引号引起数据库报错
- 访问错误参数或错误路径
- 探针类文件如 phpinfo
- 扫描开发未删除的测试文件
- google hacking phpmyadmin 报路径:/phpmyadmin/libraries/lect_lang.lib.php利 - 用漏洞读取配置文件找路径
- 恶意使用网站功能,如本地图片读取功能读取不存在图片
发现IIS的网站,怎样试它的漏洞?(根据版本)
- IIS6.0 PUT漏洞
- IIS6.0 远程代码执行漏洞 CVE-2017-7269
- IIS6.0 解析漏洞
- IIS7.0/7.5 解析漏洞
- IIS短文件名漏洞
《Web中间件漏洞总结——IIS篇》
https://mp.weixin.qq.com/s/5XV984kErF2Zhh-P5aoUwQ
GPC是什么?开启了怎么绕过
- GPC:php.ini 配置文件中的 magic_quotes_gpc,实现为 get、post、cookie传入的单引号、双引号、反斜线、NULL字符添加反斜线【\】。
- 绕过:宽字节注入、二次编码注入。
《php魔术方法GPC的绕过》
https://www.jianshu.com/p/b0bbc53b4e8e
1.4:安全概念
注入攻击原理是什么?
- 原理:在输入数据中插入恶意代码,利用应用程序的漏洞执行恶意操作。常见的注入攻击包括 SQL 注入、XSS 和命令注入。
解释暴力攻击。怎么预防呢?
- 暴力攻击:
- 一种反复试验,找出正确的密码或 PIN 码的方法。暴力攻击通常是自动进行的。
- 预防:
- 设置密码长度。
- 增加密码复杂度。
- 设置登录失败限制。
- 验证码。
DDOS攻击是什么原理?种类?怎么防御?
- 分布式拒绝服务攻击,是黑客控制肉鸡来进行占用资源导致服务器资源耗尽。
- 利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应
- 种类:
- SYN Flood
- UDP Flood
- ICMP Flood
- Connection Flood
- HTTP Get UDP DNS Query Flood
- 防御:购买抗 D 服务,流量清洗
CC 攻击是什么?与 dos 区别是什么?
- 模拟多个正常用户不停地访问需要大量数据操作的页面,造成服务器资源的浪费,使服务器 CPU 长时间处于 100%,造成网络拥塞。
- CC攻击网页,DDOS攻击服务器,更难防御
- CC门槛较低,DDOS需要大量服务器
- CC持续时间长,DDOS 产生的影响大
LAND攻击?
- LAND攻击利用了TCP连接建立的三次握手过程,通过向一个目标计算机发送一个TCP SYN报文(连接建立请求报文)而完成对目标计算机的攻击。
- 与正常的TCP SYN报文不同的是,LAND攻击报文的源IP地址和目的IP地址是相同的,都是目标计算机的IP地址。
- 这样目标计算机接收到这个SYN报文后,就会向该报文的源地址发送一个ACK报文,并建立一个TCP连接控制结构(TCB),而该报文的源地址就是自己,因此,这个ACK报文就发给了自己。
- 如果攻击者发送了足够多的SYN报文,则目标计算机的TCB可能会耗尽,最终不能正常服务。这也是一种DOS攻击。
《常见网络攻击归纳总结》
https://blog.csdn.net/qq_40741808/article/details/108059999
请求伪造类的攻击?
- 发生在客户端的叫CSRF
- 发生在服务器端的叫SSRF
什么叫APT攻击?常见方式?
- 所谓 APT ,全称是“高级持续性威胁”(Advanced Persistent Threat),指某组织对特定对象展开的持续有效的攻击活动。
- 高级,既指目标高端,通常是政府要员、公司高管之类;也指水平高超。
- 持续性,短则十天数月,长则十年八载甚至不惜一切代价也要拿下。
- 方式:
- 智能手机、平板电脑和USB等移动设备为目标和攻击对象继而入侵企业信息系统的方式。
- 社交工程的恶意邮件
- 利用防火墙、服务器等系统漏洞
《什么是高级持续性威胁 (APT)?》:
https://www.kaspersky.com.cn/resource-center/definitions/advanced-persistent-threats
《什么是高级持续性威胁(APT)?》:
https://info.support.huawei.com/info-finder/encyclopedia/zh/%E9%AB%98%E7%BA%A7%E6%8C%81%E7%BB%AD%E6%80%A7%E5%A8%81%E8%83%81.html
《什么是 APT 攻击?》:
https://www.zhihu.com/question/28881041
解释僵尸网络。
- 僵尸网络(Botnet)是由黑客、恶意软件控制的大量被感染计算机组成的网络。即黑客常说的傀儡机或肉机,用来发送伪造虚假数据包或者是垃圾数据包。
什么是 2FA?如何在公共网站上实施?
- 2FA(Two-factor authentication,双重认证)
- 双因素认证是一种账号验证过程,顾名思义,除用户名和密码之外还需要第二因素核验用户的登录凭证。
- 实施,可能的方法:
- 个人知识问题,如第一只宠物的名字或中学名称
- 安全的个人手机等私人设备
- 生理特征
《关于双因素认证(2FA),这些基础知识你一定要知道!》:
https://www.aqniu.com/industry/81056.html
《维基百科:多重要素验证》:
https://zh.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E8%A6%81%E7%B4%A0%E9%A9%97%E8%AD%89
《从设计师的角度看如何在网站上实现2FA》:
https://medium.com/@lukelyu/%E4%BB%8E%E8%AE%BE%E8%AE%A1%E5%B8%88%E7%9A%84%E8%A7%92%E5%BA%A6%E7%9C%8B%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BD%91%E7%AB%99%E4%B8%8A%E5%AE%9E%E7%8E%B02fa-%E5%8F%8C%E5%9B%A0%E7%B4%A0%E8%AE%A4%E8%AF%81-62c98395d65d
什么是骇客?
- … 问的很好,下次别问了。
《Cracker(骇客)和 Hacker(黑客)有什么不同?》:
https://www.zhihu.com/question/19724972
《黑客、红客、白客、骇客、极客》:
http://www.ccw.com.cn/security/2019-09-19/9288.html
什么是网络嗅探?
- 从信息安全的角度来看,嗅探是指:窃听流量,或将流量路由到可以捕获,分析和监控的目标处。
《咱们来把嗅探攻击说个清楚》:
https://zhuanlan.zhihu.com/p/345045871
DNS监视?
- 通过全球范围内多个解析监测节点,对不同运营商、不同线路的递归解析服务器进行探测,对递归缓存污染、递归服务质量降低等异常行为进行分析及告警。
- 防止DNS解析被劫持
- 防止权威解析被篡改
《DNS解析监控是什么?解析监控有什么用?》:
https://blog.csdn.net/weixin_53018687/article/details/130405771
什么是SSH?
- 安全外壳协议(Secure Shell Protocol,SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。
《什么叫SSH?看这一篇就够了!》
https://cloud.tencent.com/developer/article/2017265
鱼叉攻击和水坑攻击?
- 鱼叉攻击:指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马
- 水坑攻击:分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,将网站攻破并植入恶意程序,等待目标访问
《鱼叉攻击和水坑攻击之概念篇》:
https://blog.csdn.net/weixin_41686586/article/details/116309716
虚拟机逃逸?
- 利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的
《虚拟机逃逸问题分析与防范》
https://www.freebuf.com/company-information/252320.html
《虚拟机逃逸入门(一)》
https://forum.butian.net/share/1666
《从0到1的虚拟机逃逸三部曲》
https://xz.aliyun.com/t/7345
中间人攻击原理、类型与防御?
- 中间人攻击,Man-in-the-middle attack,MITM
- 原理:攻击者与通讯的两端分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
- 类型:
- Wi-Fi 欺骗
- HTTPS 欺骗
- SSL 劫持
- DNS 欺骗
- 电子邮件劫持
- 防御:
- 使用安全的 HTTPS
- 在主机绑定网关MAC与IP地址为静态、在网关绑定主机MAC与IP地址、使用ARP防火墙
什么是云安全,对于云安全的理解
- 云安全是一整套技术、协议和最佳做法的总称,旨在保护云计算环境、云中运行的应用程序和云中保存的数据。用一句话说就是解决云计算场景下的安全问题。
《对云安全的一点理解》
https://www.cnblogs.com/ffx1/p/13200255.html
《什么是云安全?》
https://www.kaspersky.com.cn/resource-center/definitions/what-is-cloud-security
CRLF 注入攻击?
- 如果用户的输入在HTTP返回包的Header处回显,便可以通过CRLF来提前结束响应头,在响应内容处注入攻击脚本。
- 因此CRLF Injection又叫HTTP响应拆分/截断(HTTP Response Splitting)简称 HRS。
《CRLF注入漏洞(响应截断)攻击实战》
https://blog.csdn.net/weixin_43847838/article/details/122189617
如何防护一个端口的安全?
- 利用WAF、IDS、IPS等设备
- 危险服务端口禁止对外访问或限制IP访问
- 服务定期更新版本
- 如果本机的默认端口不能关闭,你应该将它“重定向”。把该端口重定向到另一个地址,这样即可隐藏公认的默认端口,降低受破坏机率,保护系统安全。做端口转发,或者多级端口转发,对方很难知道我最后端真实的端口和 ip
运营商(或其他)网络劫持?
- DNS劫持
- HTTP劫持
- HTTPS劫持
《防止运营商劫持》
https://zhuanlan.zhihu.com/p/165460951
《你需要知道的“DNS劫持”》
https://juejin.cn/post/6844903863623876622
DNS 欺骗?
- 中间人攻击(MITM)
- DNS缓存中毒
- DNS劫持
缓冲区溢出原理和防御
- 原理:当写入缓冲区的数据量超过该缓冲区所能承受的最大限度时,发生缓冲区溢出,溢出的数据被黑客加以利用,形成命令执行漏洞。
- 防御:基于操作系统防御、缓冲区边界检查、安全编程
验证码相关利用点
- 验证码复用
- 验证码可识别
- 验证码失效
- 验证码DDOS
1.5:应急响应 & 其他
发生安全事件怎么做应急响应?
- 先确定范围,做好隔离(网络隔离,ACL等),判断事情严重程度,同时联系法务部门看是自己取证还是公安部门取证,事后做好分析,做好相关安全加固。
- 断网:条件允许时优先断网,防止黑客进一步操作或删除痕迹
- 取证:通过分析登录日志、网站日志、服务日志寻找黑客ip,查看黑客进行的操作
- 备份:备份服务器文件,对比入侵前后产生变化的文件
- 查漏:通过上述步骤寻找业务薄弱点,修补漏洞
- 杀毒:清除黑客留下的后门、webshell、管理账号
- 溯源:通过黑客ip地址,入侵手段等
- 记录:归档、预防
主机被入侵了怎么办?
- 核实信息(运维/安全人员)
- 现场保护(运维)
- 服务器保护(运维/机房)
- 影响范围评估(运维/开发)
- 在线分析(安全人员/运维)
- 安全相关的关键文件和数据备份(运维)
- 深入分析(安全人员)
- 整理事件报告(安全人员)
《服务器被入侵了怎么办》
https://zhuanlan.zhihu.com/p/43457077
作为网站后台管理员,怎样防止后台页面被别人搜到?
- 采用混淆技术,使用特定的字符串替换后台页面的文件名,以防止被爬虫搜索到
- 采用验证码或者邮箱确认等方式,限制非法的访问
- 采用反爬虫技术,例如利用cookie,user-agent,referer检查,仅允许特定的访问
- 建立一个指定的IP地址访问后台,限制非法的访问
- 设置错误页面,对不存在的后台页面返回404错误码,以防止被搜索到;
应对风险的方法?
- 规避风险。
- 接受风险。
- 降低风险。
- 转移风险。
webshell 检测思路?
- 静态检测:匹配特征码,特征值,危险函数
- 动态检测:WAF、IDS等设备
- 日志检测:通过IP访问规律,页面访问规律筛选,文件完整性监控。
企业内部安全
- 实名制联网
- 重要网段隔离
- 禁止接入任何USB设备
- 禁用WIFI网络
- IP与MAC地址绑定
- 部署网络监控、IDS、IPS设备
- 定期培训,提高员工安全意识
业务上线前,怎么测试,从哪些角度测试
- 安全测试:寻找产品漏洞,页面漏洞,服务漏洞,敏感信息泄露,逻辑漏洞,弱口令
- 性能测试:压力测试、功能完整性测试
应用有漏洞,但是无法修复和停用,你怎么办
- 限制IP访问
- 使用WAF、IDS、防火墙设备
WireShark 流量分析?
《基于wireshark对基础恶意流量的分析》:
https://xz.aliyun.com/t/13000?time__1311=mqmxnDBDu7KrD%2FD0Dx2DUrtWb4AKDkilWYeD
《蓝队监测必备技能–wireshark流量分析》:
https://potato.gold/article/70.html
webshell 流量特征?
《常见webshell流量分析》:
https://www.clementi.top/2023/06/21/%E5%B8%B8%E8%A7%81webshell%E6%B5%81%E9%87%8F%E5%88%86%E6%9E%90/index.html
《常见WebShell的流量特征》:
https://www.cnblogs.com/B0like/p/17486657.html
代码审计
《从多个基础CMS中入坑代码审计》:
https://xz.aliyun.com/t/11553?time__1311=mqmx0DBD2GqQuD0vofDy7KK%2B4Wq4EqGKqx&alichlgref=https%3A%2F%2Fwww.google.com%2F
2:宽泛问题
2.1:安全工具
简述BP的作用?
- 是通过设置浏览器代理进行网络渗透,用于攻击web应用集成平台,可进行拦截和修改http包。
- bp也有转码解码作用(16进制,ascii,basse64等等)
- introder模块实现一个自动化的攻击或是密码爆破
- repeater模块一般使用这个功能也是通过Proxy抓包然后send过来的。主要就是修改请求的各项参数等等然后点击左上角的go发送出去,重放,便于攻击。然后在右边接受到请求,请求和响应都可以以不同的形式展示出来
- compare模块主要是一个比较功能,可以在Proxy处截包发送过来进行比较也可以直接加载文件进行比较
你常用的渗透工具有哪些,最常用的是哪个?
- burp、nmap、sqlmap、awvs、蚁剑、冰蝎、dirsearch、御剑等
2.2:开放题
你在各大漏洞平台挖过漏洞吗,能说说吗?
你写过什么好的安全漏洞文章发布过吗,是否可以说说?
说说你以前在你公司主要做什么安全工作?如每天、每月、每年做些什么安全工作
你认为你的渗透水平在国内大概是什么水平,能给自己打多少分
你挖洞印象最深的是什么?
3:SQL 注入
3.1:基础知识
SQL 注入攻击原理是什么?如何找 SQL 注入点?如何判断注入点?
- 原理:
- 接受相关参数未经处理直接带进数据库查询操作。导致用户将SQL语句代入数据库,从而获取未授权的访问、泄露数据或对数据库进行修改的能力。
- 找注入点:
- 登陆的地方,更新的地方,修改密码,注册的地方,留言板,查询,地址修改的地方,个人用户信息修改等。
- HTTP头,cookie,refere,user,agent,post 提交数据包的地方等。
- 判断注入点:
- and1=1 and1=2 或 单引号、双引号或其他特殊字符,看看是否会触发错误或异常。
注入分为几类及提交方式是什么?
- 注入分类:
- 基于数据类型
- 数字型注入
- 字符型注入
- 基于注入方法
- 时间盲注
- 布尔盲注
- 报错注入
- 联合注入
- 堆叠注入
- 基于操作类型
- insert 注入(注册中易出现)
- update 注入(更新中易出现)
- delete 注入(留言,删除中易出现)
- select 注入
- 基于数据类型
- 注入提交方式:
- get 提交(地址栏也可以看见参数)
- post 提交(两者方式都是可同时改为 request(不安全))
- http header 注入 (和 post 都可通过 burp 抓包来获取)
注入攻击一般所支持的类型有那些?
- union 注入:搭配 order by 语句使用
- information_schema:系统自带的数据库
- 报错注入:
- extractvalue 注入
- floor 注入(group by 报错注入)
- updatexml 注入
- 布尔盲注:select ascii(substr(database(),1,1))>XX
- 时间盲注:sleep(X)
- 宽字节(绕过)注入:%df’or 1=1
《渗透测试-SQL注入之宽字节注入》:
https://blog.csdn.net/lza20001103/article/details/124286601
SQL 注入漏洞防范方法
- 使用数据库或编程语言提供的参数化查询接口,使用预定义的参数,而不是将用户提供的数据直接嵌入 SQL 查询。
- 输入验证和过滤:符合预期的格式和范围。
- 最小权限原则:为数据库用户分配最小必需的权限。
- 转义用户输入:对特殊字符转义处理,或编码转换。
- 错误信息处理: 不要向用户显示详细的错误消息。
- 防火墙、安全工具、更新维护。
SQL 注入时为什么有时候没有回显,结合php说说?
- 配置过滤了错误信息
- PHP 中,php.ini 为 display_errors 设置为 off。同时设置 error_reporting 为E_ALL。
SQL 注入对服务器文件读写操作需要那些条件
- 当前用户权限对该文件可读。
- 文件在该服务器上。
- 路径完整。
- 文件大小小于 max_sllowed_packet。
- 当前数据库用户有 FILE 权限,File_priv 为 yes
- secure_file_priv 的值为空,如果值为某目录,那么就只能对该目录的文件进行操作。
《SQL注入读写文件》:
https://blog.csdn.net/weixin_43765321/article/details/123236617
3.2:操作思路
分别写出 mysql 及 mssql 数据库写入 webshell 的方法
- mysql
- 通过 outfile 写入 shell。
- 开启全局日志写入 shell。
- 慢查询日志写入 shell
《通过MySQL写入webshell的几种方式》:
https://blog.csdn.net/xhy18634297976/article/details/119486812
《MySQL注入点写入WebShell的几种方式》:
https://cloud.tencent.com/developer/article/1621001
- MsSQL(SQLserver)
- 使用 xp_cmdshell 写入 WebShell。
- 使用差异备份写入 WebShell。
- 使用 log 备份写入WebShell。
《三大数据库写入WebShell的姿势总结》:
https://www.freebuf.com/articles/web/246167.html
《MSSQL GetShell方法》:
https://xz.aliyun.com/t/8603
3.3:工具 & 命令
分别说出以下 sqlmap 命令参数的含义:
sqlmap -u -r -v -p --level --risk --tables --columns -T --tamper
-u <URL>
:指定目标 URL。示例:-u "http://example.com/page.php?id=1"
-r <REQUEST_FILE>
:使用文件中的 URL 作为目标。-v <NUM>
:启用详细输出模式。-p <PARAMETER>
:指定要测试的参数.--level=<LEVEL>
:设置检测级别,1为最低,5为最高。级别越高,SQLMap 将尝试更多的检测技巧和攻击模式。--risk=<RISK>
:设置风险级别,1 为最低风险,3 为最高风险。更高的风险级别将更积极地尝试攻击。--tables
:列出数据库中的所有表。--columns
:列出表的所有列。-T TABLE
:用于指定要操作的表。--tamper=<TAMPER>
:用于指定自定义脚本。
4:文件操作安全
4.1:基础知识
任意文件下载攻击原理及测试方法
- 原理:
- 由于一些网站的业务需要,往往需要提供文件读取或下载的一个模块,但如果没有对读取或下载做一个白名单或者过滤限制,可能导致恶意攻击者读取下载一些敏感信息。
- 测试方法:
- 查找文件上传功能点
- 尝试配合回溯符
../../
下载敏感文件
任意文件上传漏洞原理?分几类?说出每类突破方法
- 原理:文件上传功能没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者可以绕过其本身权限向服务器上传可执行的动态脚本。
- 分类与突破方法
- 客户端检测(javascript 检测)
- 查看前端代码,看是否有检测上传文件类型的函数,在前端将函数进行删除。或者抓包再修改。
- mime 类型检测
- 抓包修改
- 路径/扩展名
- …
- 客户端检测(javascript 检测)
文件上传绕过?
- WAF绕过:修改上传表单字段、表单字段大小写替换、表单字段增加或减少空格、表单字段字符串拼接、构造双文件上传表单,同时上传双文件、编码绕过 垃圾数据填充绕过、文件名大小写绕过
- 服务器检测绕过:MIME类型绕过、前端JS检测抓包改包绕过
- 黑名单绕过:php3、asa、ashx、windows特性(test.asp_、流特性)、apache解析漏洞、图片内容检测使用图片马绕过 .htassess绕过
- 白名单检测绕过:截断上传绕过 IIS6/7/7.5解析漏洞,nginx低版本解析漏洞 文件包含绕过
文件上传漏洞防御?
- 避免服务器开启不当的设置或者存在解析漏洞。
- 在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。还需对%00截断符进行检测。
- 件上传的目录设置为不可执行。
- 判断文件类型,白名单。
- 随机数改写文件名和文件路径。
文件包含漏洞攻击原理及分类,危害,防御?
- 原理:
- 经常重复使用的函数或者特定的页面写到单个文件中,需要使用的时候就直接调用此文件,这种操作通常被称为文件包含。
- 动态包含的文件路径参数,客户端可控。
- 分类:
- 本地文件包含(local file include,LFI)
- 远程文件包含(remote file include,RFI)
- 全局变量覆盖型包含
- 危害:
- 读取文件内容,获取敏感信息
- 执行任意代码
- 提权
- 防御
- 对代码编程做过滤
- PHP 配置中的 allow_url_include 选项关闭
- 如果文件名可以确定,可以设置白名单
《面试中碰到的坑之包含漏洞专题》:
https://cloud.tencent.com/developer/article/1144850
4.2:操作思路
如何快速挖文件包含漏洞
-
参数分析: 确定目标应用程序中可能受到文件包含漏洞影响的输入参数。这些参数通常是URL查询参数、Cookie、POST数据或其他用户可控制的输入。
-
构造恶意输入: 尝试构造包含恶意文件路径的输入,以利用文件包含漏洞。使用文件包含漏洞时,您通常需要找到应用程序中接受文件路径输入的地方,然后尝试构造一个带有文件路径的有效请求。
-
常见漏洞字符串: 使用常见的文件包含漏洞字符串,例如:
../
或..%2f
:用于尝试在目标服务器上导航到父目录。/etc/passwd
或C:\Windows\System32\drivers\etc\hosts
:用于尝试读取敏感系统文件。
-
观察响应: 发送构造的请求,观察目标应用程序的响应。如果您在响应中看到目标服务器上的文件内容,那么您可能已经成功挖掘到文件包含漏洞。
- 结合黑暗搜索引擎,fofa,shodan。
渗透测试过程中发现一个只能上传zip文件的功能,有什么可能的思路?
- 文件上传绕过: 尝试通过修改文件扩展名或添加特殊字符等方式绕过上传限制,上传其他类型的文件,如可执行文件(.php、.exe)、恶意脚本文件等。
- Zip文件解析: 上传zip文件后,应用程序可能会解析并处理这些文件。尝试构造包含恶意文件、文件名或目录遍历等的zip文件,以测试是否能够触发安全漏洞。
- Zip注入: 检查是否可以在zip文件中插入恶意的文件路径或命令,以达到绕过上传限制或执行恶意操作的目的。
- Zip解压缩漏洞: 应用程序可能使用第三方库来解压上传的zip文件,检查是否存在已知的zip解压缩漏洞,如路径遍历、压缩解缩时的缓冲区溢出等。
- 文件覆盖: 如果应用程序在解析zip文件后将文件保存在特定位置,尝试上传一个zip文件,其中包含与已有文件同名的文件,以测试是否能够覆盖已有文件。
- 文件路径遍历: 上传zip文件后,检查是否存在目录遍历漏洞,攻击者是否可以访问系统上的其他文件。
- 审计上传过程: 分析上传过程中的请求和响应,尝试发现是否有任何漏洞可供利用。
- 逻辑漏洞: 尝试在上传过程中使用不同的请求方法、参数或序列,以便探索可能的逻辑漏洞。
- 服务器端配置: 检查服务器端配置,验证是否对上传文件进行了适当的限制和过滤,以及是否存在配置错误。
- 漏洞利用: 如果发现相关的漏洞,尝试利用它们进行远程代码执行、文件覆盖、系统访问等攻击。
5:XSS
5.1:基础知识
xss 攻击原理及出现的原因
- XSS(Cross-site scripting,跨站脚本攻击)原理:
- 利用了 Web 应用程序在渲染用户提供的数据时,未正确过滤或转义用户输入,导致恶意脚本被嵌入到 Web 页面中。当受害者在其浏览器中访问包含恶意脚本的页面时,这些脚本将在受害者的浏览器上执行。
- 原因:
- 不足的输入验证与编码。
xss 分为哪几类
- 存储型(持久型)
- 诱使用户去访问一个包含恶意代码的URL,当受害者点击这些专门设计的链接的时候,恶意代码会直接在受害者主机上的浏览器执行。
- 反射型(非持久型)
- 攻击者将恶意代码上传或者储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。
- DOM 型
- 客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。例如客户端如从URL中提取数据并在本地执行
xss 的危害
- 窃取用户 cookies 资料
- 劫持浏览器会话,执行任意操作
- 网页挂马,进行恶意操作
- 进行大量的客户端攻击,如 DDoS 攻击
- 传播跨站脚本蠕虫
- 获取管理员ip
- 钓鱼攻击
- 前端JS挖矿
- 键盘记录、屏幕截图
xss 可能存在的地方
- 可以被攻击者操控,用于返回到网页的数据点
- 搜索框、评论框、注册表单
- URL 参数
- HTTP 头
XSS 漏洞如何防御?
- 特殊字符 HTML 实体转码。最好的过滤方式是在输出和二次调用的时候进行加HTML实体一类的转码,防止脚本注入。
- 标签事件属性黑名单。特殊字符容易被绕过,所以还得加黑名单或者白名单,实现规则可以使用正则表达式匹配,可以直接拦截,而不是过滤为空。
防止XSS,前端后端两个角度?
- 前端:用户输入特殊字符过滤转义为 html 实体,用户输出编码
- 后端:实体化编码,函数过滤,限制字符长度
xss 盲打到内网服务器?
- 对管理员进行钓鱼后信息收集
《一个xss漏洞到内网漫游》:
https://zhuanlan.zhihu.com/p/45096651
《渗透实战:某文库网站XSS盲打》:
https://cloud.tencent.com/developer/article/1856838
5.2:操作思路
xss 漏洞测试方法
- 见框就插
- 手工注入检测。
<script>alert(document.cookie)</script>
- 自动化工具检测
《渗透测试-XSS漏洞检测》:
https://blog.csdn.net/weixin_39190897/article/details/94616104
xss 如何绕过安全防范
- 大小写混淆
- 同时使用双引号和单引号,则可以使用重音符【`】来封装JavaScript字符串
- 畸形的 a 标签(符号变异)
- 编码
- 注释符
- 使用无害的 payload 探测。
《如何绕过XSS防护》:
https://www.freebuf.com/articles/web/245097.html
《XSS现代WAF规则探测及绕过技术》:
https://blog.51cto.com/u_7090376/1961030
6:CSRF
6.1:基础知识
csrf 攻击原理是什么
- 跨站请求伪造(Cross-Site Request Forgery,CSRF)原理:攻击者通过欺骗用户在已经登录的状态下执行未经授权的操作,从而在用户不知情的情况下执行恶意请求。
- 用户已登录某个网站,获得了有效的会话令牌或 Cookie。
- 攻击者创建一个恶意网页或邮件,并在其中嵌入了包含目标网站请求的恶意脚本。
- 用户访问了包含恶意代码的页面或点击了包含攻击者构造的链接。
- 恶意代码利用用户的已登录状态,使用用户的会话信息来执行某种操作,例如更改密码、发起银行转账等。
CSRF 攻击的条件
- 用户已经登录了站点 A,并在本地记录了 cookie
- 在用户没有登出站点 A 的情况下(也就是 cookie 生效的情况下),访问了恶意攻击者提供的引诱危险站点 B (B 站点要求访问站点A)。
- 站点 A 没有做任何 CSRF 防御
CSRF怎么防护
- 验证HTTP Referer字段
- 添加Token字段并验证
6.2:操作思路
CSRF 漏洞检测
- 最简单的方法就是抓取一个正常请求的数据包,去掉 Referer 字段后再重新提交,如果该提交还有效,那么基本上可以确定存在 CSRF 漏洞。
6.3:工具 & 命令
一般你用什么工具进行检测
- burp
- AWVS
- appscan
- CSRFTester
- CSRF Request Builder
7:SSRF
7.1:基础知识
ssrf 漏洞攻击原理、用途
- SSRF(Server-Side Request Forgery,服务器端请求伪造)形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。
- 由攻击者构造请求,由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统,以存在漏洞的服务器为跳板。
怎样防范 ssrf?
- 输入验证过滤和白名单验证
- 限制协议(HTTP、HTTPS)与端口
- 过滤返回的信息
7.2:操作思路
说说你是如何挖掘 ssrf 漏洞
- 能够对外发起网络请求的地方,就可能存在 SSRF 漏洞。
《SSRF漏洞原理、攻击与防御》:
https://blog.csdn.net/lady_killer9/article/details/108267134
《聊一聊ssrf漏洞的挖掘思路与技巧》:
https://zhuanlan.zhihu.com/p/74532491
《SSRF漏洞(原理、挖掘点、漏洞利用、修复建议)》:
https://www.cnblogs.com/miruier/p/13907150.html
说说 ssrf 绕过
- @符号绕过
- 对内网请求的 IP 地址进行各进制的编码
- 特殊符号替换绕过
- xip.io绕过
《面试SSRF的原理、危害、防范、绕过》:
https://blog.csdn.net/m0_52556798/article/details/123567745
《SSRF漏洞Bypass技巧》:
https://zhuanlan.zhihu.com/p/73736127
8:RCE
9:XXE
9.1:基础知识
说说 xxe 漏洞攻击原理是什么
- XML 外部实体攻击漏洞(XML External Entity)原理
- XML 数据可以被攻击者控制时,攻击者通过向服务器注入指定的 XML 实体内容,导致程序在解析 xml 的时候,可以加载外部文件,从而造成文件读取等危害。
《XXE漏洞原理》:
https://www.freebuf.com/vuls/263348.html
《XXE攻击原理研究》:
https://cloud.tencent.com/developer/article/1683104
你是如何防范 xxe 漏洞的
- 禁用或限制外部实体引用
- 使用语言中推荐的禁用外部实体的方法
- 手动黑名单过滤(不推荐)
《XXE漏洞详解 XXE漏洞是什么 XXE漏洞如何防范》:
https://www.ddosi.org/xxe%E6%BC%8F%E6%B4%9E%E8%AF%A6%E8%A7%A3/#%E5%85%AD%E3%80%81XXE_%E5%A6%82%E4%BD%95%E9%98%B2%E5%BE%A1
9.2:操作思路
如何判断网站是否存在 XXE 漏洞
- 最直接的方法:用 burp 抓包,然后,修改 HTTP 请求方法,查看是否有提交 xml 文档,或者修改一些Content-Type头部字段等等。修改提交的xml文档,查看返回包的响应,看看应用程序是否解析了发送的内容,一旦解析了,那么有可能 XXE 攻击漏洞。
- 抓包看accept头是否接受xml
- 如果 http header 里 Content-Type 为 application/json 并使用Json进行数据交互的Web站点,可以修改其Content-Type为application/xml,并尝试进行XXE注入
xxe 漏洞攻击方法
- 文件读取、ddos、rce、ssrf 等。
- Blind XXE
《XXE漏洞的原理、如何利用、防御》:
https://zhuanlan.zhihu.com/p/403590715
《XXE 攻击方式汇总》:
https://tttang.com/archive/1813/
xxe 攻击在无回显的时候你是如何突破的
- 可以使用外带数据通道提取数据,先使用php://filter获取目标文件的内容,然后将内容以http请求发送到接受数据的服务器。
《浅析无回显的XXE(Blind XXE)》:
https://juejin.cn/post/7096382411621023752
《XXE环境搭建及实战 包含有回显无回显操作》:
https://blog.csdn.net/solitary_sen/article/details/99707618
10:PHP 反序列化
11:Java 反序列化
12:逻辑漏洞 & 越权
说出几个业务逻辑漏洞类型?
- 任意用户密码重置
- 短信轰炸
- 订单金额修改
- 忘记密码绕过
- 恶意刷票
- 验证码复用
13:信息收集
你会如何进行信息收集?
- 服务器信息:ip、中间件、操作系统 域名、ip、网段归属、子域名探测、网站目录扫描、接口信息扫描、端口扫描、各大引擎搜索相关信息。
如何寻找网站物理路径?
- 报错
- 容器特性
- 后台与文件泄露
- 遗留文件、探针文件
- phpmyadmin 管理页面
- 很多网站的根目录下都存在测试文件,脚本代码通常都是 phpinfo()。
- 功能点
- 上传图片时抓包,查看返回包,可能看到当前服务器的绝对路径信息。
- 搜索引擎
- 结合关键字和 site 语法搜索出错页面的网页快照
- 默认路径
- linux 猜解大法
- /var/www/html/:网站名
- /etc/php.ini php:配置文件
- /etc/httpd/conf.d/php.conf
- /etc/httpd/conf/httpd.conf:Apache 配置文件
- /usr/local/apache/conf/httpd.conf
- /usr/local/apache2/conf/httpd.conf
- /usr/local/apache/conf/extra/httpd-vhosts.conf:虚拟目录配置文件
- linux 猜解大法
《物理路径探测方法大全》:
https://zhuanlan.zhihu.com/p/341235104
《找寻绝对路径的方法总结》:
https://developer.aliyun.com/article/1099340
怎样绕 cdn 获取网络真实ip
- 验证是否存在 CDN
- 使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了 CDN
- 使用 nslookup 进行检测,原理同上,如果返回域名解析对应多个 IP 地址多半是使用了 CDN。
- 绕过 CDN 查找网站真实 IP
- 查询历史 DNS 记录,查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录
- 查询子域名。毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个 C 段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实 IP。
- 网络空间引擎搜索法
- 利用 SSL 证书寻找真实原始 IP
- 利用 HTTP 标头寻找真实原始 IP
- 利用网站返回的内容寻找真实原始 IP
- 使用国外主机解析域名
- 网站漏洞查找
- 网站邮件订阅查找
- 用 Zmap 扫全网
- F5 LTM 解码法
《11 种绕过 CDN 查找真实 IP 方法》:
https://xie.infoq.cn/article/1b1d530f772e33b669f6cbedf
phpinfo你会关注哪些信息
《phpinfo中常见的敏感信息》
https://blog.csdn.net/qq_37450949/article/details/119535420
信息收集如何处理子域名爆破的泛解析问题
《子域名爆破的泛解析问题》(附解决脚本):
https://zhuanlan.zhihu.com/p/586062093