漏洞挖掘 利用漏洞控制程序执行流程
2017-01-11 20:33
429 查看
#include <stdio.h> #include <windows.h> #define PASSWORD "1234567" int verify_password(char *password) { int authenticated; char buffer[8]; authenticated = strcmp(password,PASSWORD); strcpy(buffer,password); //溢出就在这里 return authenticated; } void main() { int valid_flag =0; char password[1024]; FILE *fp; if (!(fp=fopen("password.txt","rw+"))) { exit(0); } fscanf(fp,"%s",password); valid_flag = verify_password(password); if (valid_flag !=0) { printf("incorrect password!\n\n"); } else { printf("Congratulation! You have passed the verification!\n"); } fclose(fp); getchar(); }
利用XDbg 当密码验证函数返回 此时的堆栈时
71717171 为qqqq 即PassWord.txt中的内容 现在只需要构建数据 将0029FA8C 出的地址淹没成我们需要跳转的地址即可
查看0029FA8C 所包含的地址 0040158A 可以得知这是调用完密码验证函数后 main函数下一步要执行的 将此处替换为验证成功即可
用16进制编辑器
相关文章推荐
- 利用文件锁控制程序的执行
- 漏洞挖掘 修改程序验证流程
- 利用文件锁控制程序的执行
- ch2:栈溢出,控制程序执行流程
- php基础知识 5.流程控制 和格式化日期时间 和终止程序执行
- 面向对象技术JAVA(NO.0004)-JAVA程序的开发、执行流程
- 第3章:控制程序流程
- 第三章 程序的流程控制(一)
- 第三章 程序的流程控制(二)
- 控制一个 Java 程序运行生命周期结束前不能再次被执行
- 利用热键控制鼠标移动的一个程序
- Think in java学习笔记-第3章 控制程序流程1
- 如何寻找WEB程序漏洞及如何利用和防范
- 网站程序中非SI漏洞的利用
- DVBBS7.0Sp2前台提权漏洞利用程序[Kendy版]源码
- C#中利用process类调用外部程序以及执行dos命令
- 利用IE Object Data 远程执行漏洞开后门
- 利用HTTP协议和IE的漏洞在其他计算机上运行一个程序
- TIJ 第三章 程序流程控制