书籍详情
《漏洞利用及渗透测试基础》[32M]百度网盘|亲测有效|pdf下载
  • 漏洞利用及渗透测试基础

  • 出版社:清华大学出版社
  • 出版时间:2019-08
  • 热度:10848
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色

编辑推荐

通过本书的学习,可以掌握攻防技术基础,具备CTF基本的素质。首先介绍信息安全专业所需的基础知识,包括汇编语言指令、堆栈结构、OllyDBG和IDA两种工具的使用等;进而,通过大量的简单案例描述漏洞的产生、利用的方式、挖掘的方法;然后,介绍了渗透测试的基本原理,并通过Kali、Metasploit框架针对Window XP主机的渗透过程进行了详细描述;最后,描述了WEB应用开发的细节,并详细介绍了如何针对所开发WEB程序进行SQL注入攻击、跨站脚本攻击等的渗透测试过程,指出安全软件开发的必要性。

作为南开大学信息安全专业的必修课教材,本书融合信息安全基础、软件安全、WEB安全、黑客攻防等内容于一体,配合大量丰富的入手级案例(有配套的视频教程),可以激发信息安全专业学生的兴趣,是一本全面、基础的入门级教程。对于非信息安全专业的学生,如果仅仅是想知道互联网为什么不安全、黑客是怎么炼成的,也非常推荐来读一读。


内容简介

  《漏洞利用及渗透测试基础(第2版)》主要包含三部分内容:一部分介绍信息安全的基础知识,包括堆栈基础、汇编语言、PE文件格式、信息安全专业应知应会的基础工具OllyDBG和IDA Pro等;第二部分通过部分简单案例深入浅出地介绍漏洞利用及漏洞挖掘的原理,旨在让读者能直观地认识漏洞的危害性,了解漏洞挖掘的基本思想和流程;第三部分则针对渗透测试及Web应用安全进行详细讲解,包括渗透测试框架Metasploit、针对Windows XP系统的扫描和渗透、Web应用开发原理、Web应用的安全威胁、针对Web的渗透攻击等,其中基于Web的渗透测试对很多读者而言很容易上手实践,通过跟随《漏洞利用及渗透测试基础(第2版)》的案例可以加深对黑客攻防的认识。
  《漏洞利用及渗透测试基础(第2版)》是南开大学信息安全专业的必修课教材,目标是丰富基础知识和为CTF比赛提供技能储备,建议在大二下学期使用。对于信息安全专业的学生而言,这是一本较为基础、全面的入门级教程;对于非信息安全专业的学生,如果想了解一些软件安全、Web安全的知识等都值得一读。

目录

第1章 绪论
1.1 病毒和木马
1.1.1 病毒
1.1.2 蠕虫
1.1.3 木马
1.2 漏洞危害
1.3 渗透测试
1.4 实验环境
1.4.1 VMware Workstation的使用
1.4.2 认识Kali

第2章 基础知识
2.1 堆栈基础
2.1.1 内存区域
2.1.2 堆区和栈区
2.1.3 函数调用
2.1.4 常见寄存器与栈帧
2.2 汇编语言
2.2.1 主要寄存器
2.2.2 寻址方式
2.2.3 主要指令
2.2.4 函数调用汇编示例
2.3 二进制文件
2.3.1 PE文件格式
2.3.2 虚拟内存
2.3.3 PE文件与虚拟内存的映射
2.4 调试工具
2.4.1 OllyDBG
2.4.2 IDA
2.4.3 OllyDBG示例

第3章 漏洞概念
3.1 概念及特点
3.1.1 概念
3.1.2 特点
3.2 漏洞分类
3.2.1 漏洞分类
3.2.2 危险等级划分
3.3 漏洞库
3.3.1 CVE
3.3.2 NVD
3.3.3 CNNVD
3.3.4 CNVD
3.3.5 BugTraq
3.3.6 其他漏洞库
3.4 第一个漏洞
3.4.1 漏洞示例
3.4.2 漏洞利用示例

第4章 常见漏洞
4.1 缓冲区溢出漏洞
4.1.1 基本概念
4.1.2 栈溢出漏洞
4.1.3 其他溢出漏洞
4.2 格式化字符串漏洞
4.3 整数溢出漏洞

第5章 漏洞利用
5.1 漏洞利用概念
5.1.1 有关概念
5.1.2 示例
5.1.3 Shellcode编写
5.2 软件防护技术
5.2.1 ASLR
5.2.2 GS Stack protection
5.2.3 DEF
5.2.4 SafeSEH
5.2.5 SEHOP
5.3 漏洞利用技术
5.3.1 地址利用技术
5.3.2 绕过DEP保护

第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.2 Kali 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.1 Nessus准备
8.2.2 Nessus扫描
8.3 漏洞利用
8.4 后渗透攻击
8.4.1 挖掘用户名和密码
8.4.2 获取控制权

第9章 web安全基础
9.1 基础知识
9.1.1 HTTP协议
9.1.2 HTML
9.1.3 JavaScript
9.1.4 HTTP会话管理
9.2 Web编程环境安装
9.2.1 环境安装
9.2.2 JavaScript实践
9.3 PHP与数据库编程
9.3.1 PHP语言
9.3.2 第一个Web程序
9.3.3 连接数据库
9.3.4 查询数据
9.3.5 一个完整的示例
9.3.6 Cookie实践
9.4 Web安全威胁

第10章 Web渗透实战基础
10.1 文件上传漏洞
10.1.1 WebShell
10.1.2 文件上传漏洞
10.2 跨站脚本攻击
10.2.1 脚本的含义
10.2.2 跨站脚本的含义
10.2.3 跨站脚本攻击的危害
10.3 SQL注入漏洞
10.3.1 SQL语法
10.3.2 注入原理
10.3.3 寻找注入点
10.3.4 SQLMap
10.3.5 SQL注入实践
10.3.6 SQL注入盲注
10.3.7 SQL注入防御措施

第11章 Web渗透实战进阶
11.1 文件包含漏洞
11.1.1 文件包含
11.1.2 本地文件包含漏洞
11.1.3 远程文件包含漏洞
11.1.4 PHP伪协议
11.2 反序列化漏洞
11.2.1 序列化与反序列化
11.2.2 PHP魔术方法
11.2.3 PHP反序列化漏洞
11.3 整站攻击案例

第12章 软件安全开发
12.1 软件开发生命周期
12.1.1 软件开发生命周期
12.1.2 软件开发生命周期模型
12.2 软件安全开发
12.2.1 建立安全威胁模型
12.2.2 安全设计
12.2.3 安全编程
12.2.4 安全测试
12.3 软件安全开发生命周期
样题
参考文献

精彩书摘

第5章漏 洞 利 用







学习要求: 掌握漏洞利用的核心思想和Shellcode的概念; 了解Shellcode的编写过程,认识Shellcode编写的难度; 掌握漏洞利用技术的思想; 掌握软件防护技术相关的概念。

课时: 4课时。



5.1

5.1漏洞利用概念


5.1.1有关概念

1. 概念




漏洞利用破解视频



漏洞利用,即Exploit。Exploit 的英文意思就是利用,它在黑客眼里就是漏洞利用。有漏洞不一定就有Exploit(利用),但是有Exploit就肯定有漏洞。

假设,刚刚发现了一个Minishare 1.4.1版的0Day漏洞。Minishare是一款文件共享软件(Homepage——http://minishare.sourceforge.net/),该0Day漏洞是一个缓冲区溢出漏洞,这个漏洞影响1.4.2之前的所有版本。当用户向服务器发送的报文长度过大(超过堆栈边界)时就会触发该漏洞。

得到该漏洞后,可以做点什么呢?善意点的,可以对同学或者朋友的电脑搞搞恶作剧,让其电脑弹出个对话框之类的; 恶意点的,可以利用这个漏洞来向目标机器植入木马,窃听用户个人隐私等。那么,到底如何能达到这些目的呢?

2. 漏洞利用的手段

在1996年,Aleph One在Underground发表了著名论文Smashing the Stack for Fun and Profit,其中详细描述了Linux系统中栈的结构和如何利用基于栈的缓冲区溢出。在这篇具有划时代意义的论文中,Aleph One演示了如何向进程中植入一段用于获得Shell(Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核)的代码,并在论文中称这段被植入进程的代码为Shellcode。

漏洞利用的核心就是利用程序漏洞去执行Shellcode以便控制进程的控制权。要达到该目的,需要通过代码植入的方式来完成,其目的是淹没返回地址,以便控制进程的控制权,让程序跳转去执行Shellcode。

现在,Shellcode已经表达的是广义上的植入进程的代码,而不是狭义上的仅仅用来获得Shell的代码。Shellcode往往需要用汇编语言编写,并转换成二进制机器码,其内容和长度经常还会受到很多苛刻限制,故开发和调试的难度很高。

植入代码之前需要做大量的调试工作。例如,弄清楚程序有几个输入点,这些输入将最终会当作哪个函数的第几个参数读入到内存的哪一个区域,哪一个输入会造成栈溢出,在复制到栈区时对这些数据有没有额外的限制等。调试之后还要计算函数返回地址距离缓冲区的偏移并淹没之,选择指令的地址,最终制作出一个有攻击效果的承载着Shellcode的输入字符串。

5.1.2示例

假设已知一个系统的注册机验证过程的漏洞,程序如示例51。



漏洞利用xp Shellcode视频





示例51代码



示例51


#include


#include


#define REGCODE "12345678"


int verify(char * code)


{


int flag;


char buffer[44];


flag=strcmp(REGCODE, code);


strcpy(buffer, code);


return flag;


}


假设其主程序启动时要校验注册码。


void main()


{


int vFlag=0;


char regcode[1024];


FILE *fp;


LoadLibrary("user32.dll");


if(!(fp=fopen("reg.txt","rw+")))


exit(0);


fscanf(fp,"%s", regcode);


vFlag=verify(regcode);


if(vFlag)


printf("wrong regcode!");


else


printf("passed!");


fclose(fp);


}



Verify函数的缓冲区为44字节,对应的栈帧状态如图51所示。




图51栈帧状态


前言/序言

前言

当今人们已经身处互联网时代,在黑客入侵、隐私数据泄露、网络诈骗等各类安全事件频发之中,人们只知道所处的网络不安全、使用的软件有危险、黑客容易入侵,但是却不知道这些安全事件发生的真正原因。

写这本书的目的就在于: 一方面,期望为信息安全专业的学生提供全面、概括的入门级教程,培养其信息安全攻防的兴趣; 另一方面,希望为那些对信息安全、黑客攻防感兴趣的计算机或软件专业的学生,融合软件安全、Web安全和黑客攻防多维知识,提供一些解答。

如果想知道系统为什么不安全、黑客为什么轻松就可以入侵的原因,只需要通过本书读懂漏洞的概念、知道漏洞的危害性即可。如果想知道黑客如何进行攻击,可以通过本书读懂渗透测试,动手实践针对Web网站的SQL注入等攻击。如果想知道漏洞产生的根本原因,并且渴望知道如何让这个网络时代的系统、软件、网站更加安全,那么恭喜你,你已经了解了本书编写的初衷和内容精髓,那就是如何编写安全的代码。代码审计和必要的渗透测试才会确保发布的软件系统、编写的网站程序漏洞尽可能减少,让互联网时代中黑客可利用的资源尽可能耗尽。

本教材由刘哲理(南开大学)、李进(广州大学)共同编写完成,由贾春福(南开大学)教授对知识点和内容进行了摘选和校正。在编写过程中采用编者长期使用的讲稿,并参考了相关书籍和网络资料,在此对相关作者表示诚挚的谢意。由于编者水平有限,书中难免存在疏漏,敬请同行专家批评指正。

本教材第1版于2017年3月出版,得到广大读者喜爱,很快销售一空。笔者在实际授课过程中,进一步考虑到高校培养CTF人才需要,结合授课时的实际体会,在现有教材基础上进一步细分了知识点,增加了汇编基础、寻址方式、返回导向编程ROP技术、SQL盲注、文件包含漏洞、反序列化漏洞以及整站攻击示例等内容,使得教材内容更加饱满,体系更加完整,作为一本网络安全攻防入门教材是很不错的。

刘哲理

2019年4月