安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
一、渗透测试/网络安全(482-498)
482. 单机上进行域名爆破存在什么缺陷?
483. GitHub中可根据企业哪些特征进行搜索?
484. 如何找到某个人的联系方式?
485. 各种常见木马的优劣势?
486. 木马免杀有哪些方式?哪种方式最有效?
487. 木马隧道有哪些?哪种隧道在当前最有效?
488. WordDDE和Office宏有什么优劣势?
489. 如何绕过Office受保护视图?
490. 有哪些有效的钓鱼方式?
491. 如何绕过WAF(Web应用防火墙)?
492. BadUSB原理及局限?
493. 如何在禁止出网的机器上访问互联网?
494. ew、frp差异?
495. ICMP如何出网?
496. 如何进行水坑攻击?
497. 如何利用XSS让影响最大化?
498. 如何全流程最大限度降低被红军发现概率?
二、 Java基础(499-508)
499. equals与==的区别
500. Java虚拟机区域如何划分?
501. 方法重载与方法重写的区别?
502. HashMap、HashTable、ConcurrentHashMap的区别?
503. 进程和线程区别,进程间、线程间通信方式?
504. Java BIO/NIO/AIO是什么?适用哪些场景?
505. 单例模式讲解
506. synchorized如何使用?Object的wait/notify作用?
507. sleep()和wait()有什么区别?
508. 什么是幂等性?实现方式?
三、算法/系统设计(509-510)
509. 大文件小内存的排序如何做?
510. 有1亿个数字,其中有两个重复,如何快速找到?要求时间和空间最优。
482单机上进行域名爆破存在什么缺陷
483GitHub中可根据企业哪些特征进行搜索?
484如何找到某个人的联系方式?
485各种常见木马的的优劣势?
486木马免杀有哪些方式?哪种方式最有效?
487木马隧道有哪些?哪种隧道在当前最有效?
488WordDDE和Office宏有什么优劣势?
489如何绕过Office受保护视图?
490有哪些有效的钓鱼方式?
491如何绕过WAF、HIDS、威胁感知,选其一回答?
492BadUSB原理及局限?
493如何在禁止出网的机器上访问互联网?
494ew、frp差异?
495ICMP如何出网?
496如何进行水坑攻击?
497如何利用XSS让影响最大化?
498如何全流程最大限度降低被红军发现概率?
499equals与==的区别
500Java虚拟机区域如何划分?
501方法重载与方法重写的区别?
502HashMap和HashTable、ConcurrentHashMap的区别?
503进程和线程区别,进程间、线程间通信有哪几种方式?
504JavaBIO/NIO/AIO是什么?适用哪些场景?
505挑一个设计模式(工厂、单例、适配器、观察者)进行讲解
506synchorized如何使用?Object的wait、notify方法有什么作用?
507sleep()和wait()有什么区别?
508什么是幂等性?一般有什么方式实现?
509大文件小内存的排序如何做?
510有1亿个数字,其中有两个是重复的,如何快速找到?要求时间和空间最优。
一、渗透测试/网络安全(482-498)
482. 单机上进行域名爆破存在什么缺陷?
- 性能瓶颈:单机带宽和CPU有限,难以支撑大规模字典攻击,易被目标防火墙拦截。
- 隐蔽性差:高频请求触发安全设备(如WAF)告警,暴露攻击者IP。
- 效率低下:缺乏分布式协同,无法快速覆盖子域名变体(如a.example.com, b.example.com)。 改进方向:使用分布式工具(如Ffuf集群)或云服务分散请求。
483. GitHub中可根据企业哪些特征进行搜索?
可搜索特征包括:
484. 如何找到某个人的联系方式?
分四步进行:
485. 各种常见木马的优劣势?
| RAT(远程访问) | 功能全(摄像头/文件控制) | 体积大,易被杀软检测 |
| Downloader | 体积小(<100KB) | 依赖网络下载载荷,出网受限 |
| 无文件木马 | 无磁盘写入,隐蔽性强 | 依赖内存驻留,重启失效 |
486. 木马免杀有哪些方式?哪种方式最有效?
- 方式:
- 代码混淆:加密字符串(AES)、指令重排。
- 加壳:UPX压缩或VMProtect虚拟化。
- 内存加载:PE文件注入合法进程(如explorer.exe)。
- 签名劫持:伪造微软签名或劫持白名单程序。
- 最有效:内存加载(如Cobalt Strike的反射DLL注入),不落盘、行为模拟合法进程,绕过静态+动态分析。
487. 木马隧道有哪些?哪种隧道在当前最有效?
- 常见隧道:
- HTTP/HTTPS:伪装Web流量(工具:Metasploit)。
- DNS:通过DNS查询传递数据(工具:DNScat2)。
- ICMP:利用Ping包(隐蔽但带宽低)。
- 当前最有效:HTTPS隧道(如Cloudflare反向代理),流量加密且与正常Web服务混合,难以被流量分析设备识别。
488. WordDDE和Office宏有什么优劣势?
| 优势 | 无文件执行,老系统兼容性强 | 支持复杂逻辑(如API调用) |
| 劣势 | 新版Office默认禁用,用户需确认 | 需启用宏,易被沙箱检测 |
| 适用场景 | 钓鱼邮件附件(针对旧版Office) | 诱导用户启用宏的文档 |
489. 如何绕过Office受保护视图?
490. 有哪些有效的钓鱼方式?
- 鱼叉钓鱼:定制化邮件(仿冒HR通知),打开率>30%。
- 水坑攻击:劫持目标常访网站(见问题496)。
- 二维码钓鱼:诱导扫描恶意二维码下载APP。
- 语音钓鱼(Vishing):AI模拟高管声音要求转账。 关键:心理操纵(如制造紧迫感:“账户即将冻结”)。
491. 如何绕过WAF(Web应用防火墙)?
- 混淆技术:
- 编码绕过:Unicode/Base64编码SQL注入语句(如SELECT → \\u0053\\u0045\\u004C\\u0045\\u0043\\u0054)。
- 分块传输:HTTP协议分块发送恶意载荷(绕过正则匹配)。
- IP轮替:代理池切换源IP避开速率限制。
- 高级手法:利用WAF规则盲区(如JSON格式SQLi)。
492. BadUSB原理及局限?
- 原理:伪装为HID设备(键盘),注入预编程按键指令(如打开终端执行命令)。
- 局限:
- 需物理接触设备。
- 依赖目标禁用USB安全策略。
- 无法绕过现代EDR的行为监控。
493. 如何在禁止出网的机器上访问互联网?
- 方式:
- ICMP隧道:封装数据到Ping包(工具:icmpsh)。
- DNS隧道:通过DNS解析请求传数据(见问题495)。
- 物理中转:USB设备交换数据(如隔空投递+离线解码)。 首选:DNS隧道(企业极少封锁DNS端口)。
494. ew、frp差异?
| 定位 | 内网穿透(轻量级) | 反向代理(高可配置) |
| 协议 | 支持SOCKS5/多级跳板 | 支持HTTP/TCP/UDP |
| 场景 | 红队渗透(隐蔽性强) | 合法业务暴露(如远程桌面) |
495. ICMP如何出网?
通过封装TCP/UDP数据到ICMP Echo请求包:
496. 如何进行水坑攻击?
分三步:
497. 如何利用XSS让影响最大化?
- 横向扩散:
- 窃取Cookie接管账号。
- 注入恶意JS到用户生成内容(如评论)。
- 纵向提权:
- 劫持管理员会话。
- 结合CSRF修改系统配置。 案例:Self-XSS诱导用户复制恶意代码到控制台。
498. 如何全流程最大限度降低被红军发现概率?
- 侦查阶段:
- 使用匿名基础设施(Tor+云虚拟机)。
- 攻击阶段:
- 无文件攻击 + 合法工具滥用(Living-off-the-Land)。
- 持久化:
- 隐藏计划任务/注册表键(命名仿系统服务)。 核心:减少攻击频率,模拟正常用户行为(如工作时间访问)。
二、 Java基础(499-508)
499. equals与==的区别
- ==:比较对象内存地址(是否同一实例)。
- equals():比较对象内容(可重写,如String比对字符序列)。
Java
String s1 = new String("text"); String s2 = new String("text"); s1 == s2; // false(地址不同) s1.equals(s2); // true(内容相同)
500. Java虚拟机区域如何划分?
JVM内存分为:
501. 方法重载与方法重写的区别?
| 作用域 | 同一类中 | 子类继承父类 |
| 签名 | 方法名相同,参数列表不同 | 方法名、参数、返回类型均相同 |
| 多态 | 编译时多态 | 运行时多态 |
502. HashMap、HashTable、ConcurrentHashMap的区别?
| 线程安全 | 不安全 | 安全(synchronized) | 安全(分段锁/CAS) |
| Null键 | 允许 | 禁止 | 禁止 |
| 性能 | 高(非并发) | 低 | 高(并发优化) |
503. 进程和线程区别,进程间、线程间通信方式?
- 区别:
- 进程:独立资源单元(内存、文件),切换开销大。
- 线程:进程内执行单元,共享资源,切换开销小。
- 通信方式:
- 进程间:管道、消息队列、共享内存、Socket。
- 线程间:锁(synchronized)、信号量、volatile变量。
504. Java BIO/NIO/AIO是什么?适用哪些场景?
| BIO | 同步阻塞(1请求1线程) | 低并发连接(如老旧系统) |
| NIO | 同步非阻塞(多路复用) | 高并发(如聊天服务器) |
| AIO | 异步非阻塞(回调通知) | 文件I/O等延迟敏感操作 |
505. 单例模式讲解
核心:确保类仅有一个实例,全局可访问。
Java
public class Singleton { private static volatile Singleton instance; // volatile防指令重排 private Singleton() {} // 私有构造 public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); // 双重检查锁 } } } return instance; } }
场景:配置管理、数据库连接池。
506. synchorized如何使用?Object的wait/notify作用?
- synchronized:修饰方法或代码块,实现互斥锁。 Java
public synchronized void syncMethod() { … }
- wait():释放锁并阻塞线程,等待其他线程notify。
- notify():唤醒同一对象上wait的一个线程。 典型应用:生产者-消费者模型(协调线程协作)。
507. sleep()和wait()有什么区别?
| 归属 | Thread类静态方法 | Object类方法 |
| 锁释放 | 不会释放锁 | 释放锁 |
| 唤醒 | 时间到自动唤醒 | 需notify()/notifyAll()唤醒 |
508. 什么是幂等性?实现方式?
- 定义:多次执行同一操作,结果一致(如支付重复提交仅扣款一次)。
- 实现方式:
- Token机制:请求带唯一Token,服务端校验后失效。
- 版本号:数据更新附带版本号(如CAS)。
- 唯一约束:数据库唯一索引防重复插入。
三、算法/系统设计(509-510)
509. 大文件小内存的排序如何做?
采用外部排序(归并排序变种):
510. 有1亿个数字,其中有两个重复,如何快速找到?要求时间和空间最优。
- 问题关键:数字范围未知,但仅两个重复。
- 最优解法:位图法(Bitmap)
- 初始化一个大小足够的位数组(如10^8位≈12.5MB)。
- 遍历数字,若位图对应位已置1,则该数字重复。
- 时间复杂度:O(n),空间复杂度:O(n/8)(n为最大值)。
- 代码示意: Java
BitSet bitSet = new BitSet(); for (int num : nums) { if (bitSet.get(num)) return num; // 找到重复 bitSet.set(num); }
特殊场景:若数字范围极大,改用哈希表(空间O(n),时间O(1)查询)。



