TU-ctf-2016 PwnOW 分析报告
发布时间
阅读量:
阅读量
小动物很可爱的说?
将IDA作为分析工具使用时,在代码中发现了已存在的用于获取flag的函数,并非需要自行寻找系统漏洞;下一步需要探索如何控制程序执行流程
首先对程序功能作基本的分析:
在创建新动物的过程中,在内存中分配出一个结构体来存储该动物的相关信息。如果这种新创建的动物是一只熊类,则将该结构体的内存区域从字节偏移量为\texttt{0}到\texttt{8}的部分赋值为十六进制\texttt{deadbeef};接着从字节偏移量\texttt{8}到\texttt{14}的部分存储该动物的名字;然后将从字节偏移量\texttt{14}到\texttt{20}的部分用来记录该动物的类型信息。
如果是其他动物,则会遇到这种情况。
系统管理了一个全局指针变量pointers,并将其用作目录表来记录所有结构体的内存位置。
使用uaf的姿势,关键在于delete功能:
void deleteAnimal()
{
int v0; // [sp+Ch] [bp-4h]@1
puts("Choose your friends wisely..");
puts("Which element do you want to delete?");
fflus
全部评论 (0)
还没有任何评论哟~
