0

我正在帮助 IM 的开发人员测试他们的安全性和问题,他们想要一个在他们的服务器上报告的 tcp 重置漏洞的示例。我在编译时遇到问题,有人可以帮忙吗?错误日志: http: //pastie.org/4212921

C文件: http ://www.exploit-db.com/download/291

4

2 回答 2

2

从第一个报告的错误开始几乎总是一个好主意。

在您的情况下,第一个报告的错误是:

reset-tcp.c:51: error: ‘u_char’ undeclared (first use in this function)

u_char不是标准的 C 类型;它可能是unsigned char.

您的源文件具有以下#include指令:

#include <libnet.h>
#include <stdio.h>

<stdio.h>can't define u_char,所以它必须在-- 特别是在源文件所依赖<libnet.h>的任何版本中定义。<libnet.h>

这是一个非标准的头文件(它没有安装在我的系统上),所以我最好的猜测是你使用的 libnet 版本与reset-tcp.c设计使用的版本不同。

我知道这不能解决你的问题,但它应该给你一个很好的起点。

编辑 :

我刚刚在我的 Ubuntu 12.04 系统(版本 1.1.4-2.1 )上安装了libnet1libnet1-dev和包。您的源文件现在编译(在加入第 74 和 75 行之后)并带有一些警告。类型定义在 中,间接包含在 中。libnet1-doclibnet1u_char/usr/include/i386-linux-gnu/sys/types.hlibnet.h

我确实收到了一些警告:

291.c:95:1: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 3 has type ‘u_char *’ [-Wformat]
291.c:95:1: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 4 has type ‘u_char *’ [-Wformat]
291.c:95:1: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 5 has type ‘u_char *’ [-Wformat]
291.c:95:1: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 6 has type ‘u_char *’ [-Wformat]
291.c:95:1: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 7 has type ‘u_char *’ [-Wformat]
291.c:95:1: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 8 has type ‘u_char *’ [-Wformat]
291.c:116:1: warning: format ‘%i’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat]

你绝对应该注意的;该代码当前尝试将int值存储在u_char( unsigned char) 对象中。

建议:

  1. libnet告诉我们您使用的是什么操作系统和版本;如果我们有这些信息,有人可能会提供更好的建议。

  2. 让我们知道该源代码的来源,看看您是否可以找出libnet它应该使用的版本。

于 2012-07-07T02:22:12.410 回答
0

您需要安装libnet及其开发包。

在 Debian 下,您可以通过安装软件包libnet1libnet-dev.

于 2012-07-07T11:03:34.753 回答