给梦想成为白帽黑客的人看的黑客入门书《黑客初探》读后感

힘센캥거루
2026년 1월 23일(수정됨)
8
8

在运营家用服务器时,最重要的就是安全。

就算把网站功能搭建得再满意,被从四面八方涌来的黑客攻击一次之后,一切都成了摆设。

上次因为被黑连着被“洗劫”了 3 天,真的挺吓人的。

于是决定系统地学习一下黑客相关的内容。

在 YouTube 上看到有人说一本叫做 해킹 맛보기 的书堪称“黑客圣经”,就买了……

结果我没注意到这本书的出版时间是 2015 年

给梦想成为白帽黑客的人看的黑客入门书《黑客初探》读后感-2

书终究还是寄到了,翻开一看,里面全是 IE、老版本 Chrome、http 地址之类的东西,这才意识到有点不对劲。

按照摩尔定律,半导体集成度是以 2 的指数增长的,10 年前的书几乎等于 100~300 年前的书

这就像说要学习重力却去读牛顿的《自然哲学的数学原理》一样。

不过既然已经买了,也晚了。

只能尽量快读一遍,先把整体脉络了解一下就满足了。

给梦想成为白帽黑客的人看的黑客入门书《黑客初探》读后感-3

1. 内容概览

第 1 章)初探

第 1 章的“尝鲜”内容现在看来太老了,很多都已经不再适用。

不过还是有可以学习的地方。

作者介绍的黑客网站 Wechall 如今已经偏老了,现在 TryHackMe、Hack The Box 这类网站的份额更高。

项目

WeChall

TryHackMe

Hack The Box

主要用途

各类 WarGame 排名及集合

初中级安全实战 + 学习

实战渗透测试 + 高级实战

用户数

(官方未公开)

约 450 万用户

非常活跃,在业界也很受欢迎

学习结构

主要是外部 WarGame 链接集合

分阶段学习课程 + CTF

以攻破真实系统的实战练习为主

主要受众

WarGame 爱好者,积分竞争型

初级~中级安全学习者

中级~专家及实战准备者

另外 2drunk2hack 这个活动也不办了,Paros 这类黑客工具也已经成了“遗产”。

不过通过这本书我至少知道了存在专门的黑客工具这一事实。

这类遗留工具没必要去学,知道一下“原来有这么个东西”就翻页即可。

项目

Paros

Burp

ZAP

mitmproxy

维护情况

❌ 已停止

✅ 活跃

✅ 活跃

✅ 活跃

是否支持最新 HTTPS

实务使用情况

✅ 碾压级

自动化

是否免费

❌(Pro)

我现在在 YouTube 上订阅的 Nomaltic Place 这位 UP 主,还介绍过像 OverTheWire 这样的 WarGame 网站

比起这本书第 1 章,下面这些内容可能更有用一些。

第 2 章)Web 黑客

Web 黑客部分从安装 php、mysql 开始,简单涉及了利用搜索发现漏洞、文件上传、跨站、SQL 注入等内容。

Google Hacking 这一块挺新奇的,通过搜索运营者无意间暴露出来的漏洞。

目的

搜索示例

暴露的备份文件

ext:bak OR ext:old OR ext:zip

环境变量泄露

intext:"DB_PASSWORD"

目录列表

intitle:"index of /"

日志文件

ext:log error

配置文件

ext:env OR ext:yaml OR ext:conf

摄像头

inurl:view/index.shtml

管理员页面

inurl:admin login

还讲了通过上传图片进行攻击的方法。

比如在图片标签中注入 <img src="/board/file/shell.php> 这种内容,从而执行 shell。

之前我在家用服务器上开放了图片代理 API,结果被人往 img 标签里塞了 onerror={},然后试图用 fetch 函数和命令下载文件并执行,想获取管理员权限但没成功,我就亲眼看到过这种情况。

给梦想成为白帽黑客的人看的黑客入门书《黑客初探》读后感-4

书里还写了制作 Web Shell 的内容。

作者介绍的是 C99,但这个也已经是“前朝故事”了。

现在更常用的是轻量、加密的 Web Shell。

时期

主流 Web Shell

特点

2000 年代–2010 年代

C99, R57, WSO

以功能为中心,基于 PHP,体积大、特征明显

2020 年代中期

China Chopper 变种

轻量 + 隐蔽 + 加密

最近(2024–2025)

Beima PHP Webshell 类型以及自定义/加密型 Shell

JSON 接口、加密请求、与 C2 联动

SQL 注入之前就知道一些,但通过这本书了解得更细一点。

关键点在于:不能信任用户输入

必须经过校验过程之后,才能让数据进入后端。

第 3 章)逆向工程

逆向工程就是把现成的程序再拆解开来。

简单说,可以把用 Python 开发后用 pyinstaller 编译出来的 exe,又还原成 .py 的过程就叫逆向。

作者介绍了 Visual Studio Express、OllyDbg。

我整理了一下比较新的逆向工具。

工具

主要用途

特点

平台

Ghidra

静态分析 + 反编译

强大的开源框架,自带反编译,由 NSA 开发

Windows / Linux / macOS

Radare2

静态分析(命令行/脚本)

完全免费的开源项目,以 CLI 为中心,支持多种二进制格式

Windows / Linux / macOS 等

x64dbg

动态调试

Windows 用 32/64 位调试器,带 GUI,十分流行

Windows

Frida

运行时动态分析

可在程序运行中进行 Hook、追踪,对移动端分析很有优势

Windows / Linux / macOS / 移动端

逆向过程中据说要疯狂按计算器,但现在丢进像 Cursor 这样的自动化工具里基本就搞定了。

不过一旦涉及混淆之类的东西,还是需要人工理解。

下面这几类问题据说 AI 仍然不太好处理。

领域

原因

逻辑错误

涉及“意图”问题

边界条件

需要架构层面的判断

安全/逆向

高度依赖上下文

异常值

需要直觉

还有后面的计算机体系结构和汇编语言部分,真是“疯了”。

CPU 结构以前学过,但关于变量存放位置、数字运算位置、字符串存放位置各不相同这一点,我还是第一次知道。

看到汇编里那些十六进制的加法、条件语句、循环语句,眼睛都花了。

给梦想成为白帽黑客的人看的黑客入门书《黑客初探》读后感-5

接着是用 OllyDbg 进行实际逆向练习的内容。

反正我基本用不到这一类工具,就直接跳到第 4 章了。

第 4 章)系统黑客

系统黑客就是操作系统层面的攻击。

书里还有安装 Python 之类的内容,我就主要看漏洞相关的部分。

(1) 命令注入漏洞

命令注入一般出现在开发者信任用户输入的时候。

比如说,有如下代码:

system("ping " + user_input);

这时如果用户输入 ; rm -rf /,开发者就会在不知情的情况下执行了预期之外的命令。

所以在接收用户输入时,必须做验证。

(2) 竞争条件(Race Condition)攻击

竞争条件攻击发生在多线程或多请求环境中,利用共享资源在“状态检查”和“实际使用”之间存在的时间差。

也就是利用在检查资源和使用资源之间“顺序错位”的情况。

问题在于:怎么抓住这个时机

所以攻击者会发非常快、非常多、并发的请求,去挤进执行之间的空隙。

给梦想成为白帽黑客的人看的黑客入门书《黑客初探》读后感-6

比如说,游乐园入场流程如下:

工作人员检查入场券 -> 打开门 -> 被检查过票的人入场 -> 关门

如果先到的 A 检票通过了,但趁门开着,后到的 B 先钻了进去,这就属于竞争条件攻击。

要防御,就需要下面这样的设计:

1. 减少共享状态
2. 保证原子性 -> 检查 + 入场同时处理
3. 用 Lock 将访问共享资源的代码包起来,每次只处理一个请求
4. 交给 DB/存储来处理一致性
5. 安全地处理临时/共享文件
6. 设计重试/幂等 -> 同一请求只处理一次

(3) 内存破坏攻击

对于缓冲区溢出(Buffer Overflow)攻击,通过这本书我有了更细致的理解。

之前在学 C 数组的时候学过溢出,所以这块还算容易理解。

就像下面这样,如果用户输入太长,就会越界写入相邻内存。

char arr[3];
scanf("%s", arr);

第 5 章)漏洞挖掘(Bug Hunting)

在众多 Bug 中,那些可能引发安全问题的 Bug 就叫安全漏洞。

攻击者会利用这类漏洞获取权限或攻击用户。

(1) 如何发现漏洞

发现漏洞的方法有很多:

  • 源码审计 —— 逐行分析源代码来找漏洞

  • 二进制审计 —— 在没有源码时分析编译后的二进制文件

  • Fuzzing(模糊测试)—— 自动生成各种输入喂给软件,通过观察结果来寻找漏洞

(2) 漏洞类型

  • 内存破坏 —— 栈溢出、堆溢出、空指针解引用、Use-After-Free 等

  • 设计层面 —— 在设计时没充分考虑安全性的逻辑

(3) Web 漏洞挖掘

书中写的是 Zeroboard XE 远程代码执行,但内容太老了,我就改看最近的 React2Shell。

这是最近影响最大的漏洞之一,可以远程执行 shell 和命令。

问题在于,即便是用 npx create-next-app 创建、完全没有自定义 API 的应用也能被攻击。

攻击方式由 Github 用户 zr0n 做了实现。

在 AhnLab 的网站上还能看到对漏洞成因和攻击方式的详细分析。

核心内容可以概括如下:

Flight 스트림에서 참조/레코드 해석 중 일부가 Promise resolution(thenable 동화)을 거치는데, 공격자는 : 경로 대입에서 __proto__ 검증이 약한 점을 이용해 프로토타입을 오염시킨다. 그 결과 _response._formData.get 같은 메서드가 Function으로 바뀌면 이후 정상 코드 경로에서 get(...) 호출이 문자열 실행으로 변질된다. thenable은 이 변질된 경로가 자동으로 실행되도록 트리거하는 역할을 한다.
给梦想成为白帽黑客的人看的黑客入门书《黑客初探》读后感-8

最关键的一步是利用 __proto__ 这个魔法属性来污染原型链。

这种攻击方式就叫作 原型污染(Prototype Pollution)

(4) 不同环境下的漏洞挖掘

后面的内容介绍了 Android 上的提权漏洞、Windows 下 GomPlayer、Hangul 的远程代码执行等。

第 6 章)数字取证

主要讲了数字数据的特性、保证证据能力所需的特性、证据类型等。

一是书比较老,二是我目前对数字取证没什么兴趣,就大概翻了一下。

第 7 章)漏洞市场

书里把黑市介绍为漏洞市场的主要形式,但现在据说几乎看不到了。

黑市的使用方法对我也没什么用,就用下面这张表替代一下。

类型

现状

公开黑市

❌ 几乎消失

暗网论坛

⚠️ 收缩、伪装

基于聊天工具的私下交易

✅ 活跃

勒索软件生态

✅ 非常活跃

漏洞赏金(Bug Bounty)

✅ 合法渠道

国家/情报机构灰色市场

✅ 高价交易

2. 读后感

通过这本书,至少把黑客的基本概念理了一遍。

黑客就是寻找安全漏洞的过程,这个过程和思考“家里怎么防盗”很像。

要考虑的是:谁可以从哪里进来、怎么进来、进来之后怎么获取权限。

整体读下来还挺有意思的,让我觉得以后也想持续学习黑客相关的内容。

以前获取编程信息很难,现在通过 AI 或者网络,几乎谁都可以轻松入门。

而 10 年这段时间,对开发领域来说简直是一个世纪。

书里讲的很多东西,现在都已经消失了。

如果想深入了解黑客相关内容,现在恐怕得另买新书,或者多利用网络资源才行。

댓글을 불러오는 중...