目录
第1章绪论
1.1病毒和木马
1.1.1病毒
1.1.2蠕虫
1.1.3木马
1.2漏洞危害
1.2.1生活中的安全问题
1.2.2漏洞产业链
1.2.3漏洞产生的原因
1.2.4软件安全的维护
1.3渗透测试
1.3.1渗透测试方法分类
1.3.2渗透测试目标分类
1.4实验环境
1.4.1VMware Workstation的使用
1.4.2认识Kali
第2章基础知识
2.1堆栈基础
2.1.1内存区域
2.1.2函数调用
2.1.3寄存器与栈帧
2.1.4汇编语言
2.2二进制文件
2.2.1PE文件格式
2.2.2虚拟内存
2.2.3PE文件与虚拟内存的映射
2.3调试工具
2.3.1OllyDBG
2.3.2IDA
2.3.3OllyDBG示例
第3章漏洞概念
3.1概念及特点
3.1.1概念
3.1.2特点
3.2漏洞分类
3.2.1漏洞分类
3.2.2危险等级划分
漏洞利用及渗透测试基础
目录
3.3漏洞库
3.3.1CVE
3.3.2BugTraq
3.3.3NVD
3.3.4CNNVD
3.3.5CNVD
3.3.6其他漏洞库
3.4第一个漏洞
第4章常见漏洞
4.1缓冲区溢出漏洞
4.1.1基本概念
4.1.2栈溢出漏洞
4.1.3其他溢出漏洞
4.2格式化字符串漏洞
4.3整数溢出漏洞
4.4SQL注入漏洞
第5章漏洞利用
5.1漏洞利用概念
5.1.1有关概念
5.1.2示例
5.1.3Shellcode编写
5.2漏洞利用技术
5.2.1静态Shellcode地址
5.2.2动态变化的Shellcode地址
5.2.3Heap Spray技术
5.3软件防护技术
5.3.1GS Stack Protection
5.3.2DEP
5.3.3ASLR
5.3.4SafeSEH
5.3.5SEHOP
第6章漏洞挖掘
6.1静态检测
6.1.1源代码的检测
6.1.2可执行代码检测
6.1.3静态检测实践
6.2动态检测
6.2.1模糊测试
6.2.2智能模糊测试
6.2.3动态污点分析
6.2.4动态检测实践
6.3动静结合检测
第7章渗透测试基础
7.1渗透测试过程
7.2Kali Linux基础
7.2.1常用指令
7.2.2软件包管理
7.3渗透测试框架
7.3.1认识Metasploit
7.3.2常用命令
第8章渗透测试实践
8.1信息收集
8.1.1被动信息收集
8.1.2主动信息收集
8.2扫描
8.2.1Nessus准备
8.2.2Nessus扫描
8.3漏洞利用
8.4后渗透攻击
8.4.1挖掘用户名和密码
8.4.2获取控制权
第9章Web安全基础
9.1基础知识
9.1.1HTTP协议
9.1.2HTML
9.1.3JavaScript
9.1.4HTTP会话管理
9.2Web编程环境安装
9.2.1环境安装
9.2.2JavaScript实践
9.3PHP与数据库编程
9.3.1PHP语言
9.3.2第一个Web程序
9.3.3连接数据库
9.3.4查询数据
9.3.5一个完整的示例
9.3.6Cookie实践
9.4Web安全威胁
第10章Web渗透实践
10.1文件上传漏洞
10.1.1WebShell
10.1.2文件上传漏洞
10.2SQL注入漏洞
10.2.1SQL语法
10.2.2注入原理
10.2.3寻找注入点
10.2.4SQLMap
10.2.5SQL注入实践
10.3跨站脚本攻击
10.3.1脚本的含义
10.3.2跨站脚本的含义
10.3.3跨站脚本攻击的危害
10.4整站攻击案例
第11章软件安全开发
11.1软件开发生命周期
11.1.1软件开发生命周期
11.1.2软件开发生命周期模型
11.2软件安全开发
11.2.1建立安全威胁模型
11.2.2安全设计
11.2.3安全编程
11.2.4安全测试
11.3软件安全开发生命周期
样题
参考文献