Rgzz's Record

知道的越多,不知道的越多。

0%

0x0

配置好基本环境

  • 安装gdb:通过apt-get install build-essential安装基本的编译环境,都会带入gdb
  • 安装peda:这是个python程序,对gdb功能进行了增强,例如带入了 checksec 程序,用来检查文件信息

0x1

ret2text题目地址

[TOC]

1. 什么是整数溢出

1.1 简介

在 C 语言基础的章节中,我们介绍了 C 语言整数的基础知识,下面我们详细介绍整数的安全问题。

由于整数在内存里面保存在一个固定长度的空间内,它能存储的最大值和最小值是固定的,如果我们尝试去存储一个数,而这个数又大于这个固定的最大值时,就会导致整数溢出。(x86-32 的数据模型是 ILP32,即整数(Int)、长整数(Long)和指针(Pointer)都是 32 位。)

[TOC]

1. x86和x86_64的区别

第一个主要区别就是内存地址的大小。这没啥可惊奇的: 不过即便内存地址有64位长用户空间也只能使用前47位,要牢记这点因为当你指定一个大于0x00007fffffffffff的地址时会抛出一个异常。那也就意味着0x4141414141414141会抛出异常而0x0000414141414141是安全的。当你在进行模糊测试或编写利用程序的时候我觉得这是个很巧妙的部分。

[TOC]

1 格式化输出函数

1.1 变参函数

C 语言中定义的变参函数,即参数数量可变的函数。它**由一定数量(至少一个)的强制参数和数量可变的可选参数组成,强制参数在前,可选参数在后。**可选参数的类型可以变化,而数量由强制参数的值或者用来定义可选参数列表的特殊值决定。

[toc]

1. 什么是 shellcode ?

shellcode 通常用机器语言编写,是一段用于软件漏洞而执行的代码,因其目的常常是让攻击者获得目标机器的命令行 shell 而得名。随着发展,shellcode 现在代表将插入到漏洞利用程序中以完成所需任务的任何字节码。

[TOC]

漏洞简介

LNK 快捷方式文件漏洞,又叫 CPL Icon 加载漏洞。用户只要浏览一下 LNK 文件所在的目录病毒就能执行。

漏洞原理及利用分析

既然是快捷方式漏洞,那我们就先了解以下快捷方式文件的格式。

[TOC]

在编写漏洞利用代码的时候,需要特别注意目标进程是否开启了NX、PIE等机制,例如存在NX的话就不能直接执行栈上的数据,存在PIE 的话各个系统调用的地址就是随机化的。

[toc]

Welcome to my Blog.

我是人工智障,关于博客,早在高中,我就有要做一个属于我自己的博客的想法。只不过那时迫于学业压力,我一直把这个想法埋藏在心底。后来,我也尝试过,限于能力和方法,始终没能做出东西。