avatar

漏洞测试作业四:OLLYDBG软件破解
  • IDA查看伪代码
  • 利用OllyDBG进行准确字符串填充长度判断

1

对如下程序编译产生debug模式下的exe程序

#include <stdio.h>
#include <iostream>
#define PASSWORD "1234567"
int verify_password(char* password)
{
int authenticated;
char buffeer[12];//add local buff to be overflowed
authenticated=strcmp(password,PASSWORD);
strcpy(buffer,password);
return authenticated;
}
void main()
{
int valid_flag=0;
char password[1024];
while(1)
{
printf("please input password: ");
scanf("%s",password);
valid_flag=verify_password(password);
if(valid_flag)
printf("incorrect password!\n\n");
else
{
printf("Congratulation! You have passed the verification!\n");
break;
}
}
}

2

  • 题目:
    • 对上述EXE程序,用IDA查看逆向分析的伪代码,利用OllyDBG进行准确字符串填充长度判断,并完成漏洞利用的实验,使得输入一定字符串后验证通过。
  • 用IDA查看逆向分析伪代码

image-20200330203236172

  • OllyDBG进行字符串填充长度判断

    • authenticated
      • image-20200330210531075
    • buffer
      • image-20200330210838482
      • 可以判断出buffer长12个字节
  • 完成漏洞测试实验

    • 思路:用非法的超长密码修改buffer临界变量authenticated
    • 输入长为十二字节的数据,字符串共13个字节,末尾为’\0’,覆盖密码输入不正确时authenticated的01
    • image-20200330211542610
    • 测试成功
    • image-20200330211735142
Author: Michelle19l
Link: https://gitee.com/michelle19l/michelle19l/2020/04/10/漏测作业/漏测作业四/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶