Null HTTPd远程堆缓冲区溢出漏洞-一一网络

Null HTTPd远程堆缓冲区溢出漏洞

漏洞信息详情

Null HTTPd远程堆缓冲区溢出漏洞

漏洞简介

Null HTTPd是一款小型多线程的WEB服务程序,可使用在Linux和Windows操作系统下。

Null HTTPd在处理Content-Length为负值的请求时存在问题,远程攻击者可以利用这个漏洞进行基于堆的缓冲区溢出,以Web进程在系统上执行任意指令。

漏洞公告

临时解决方法:

如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:

* 暂时在边界防火墙设置策略,只允许可信IP访问Null HTTPd。

厂商补丁:

NullLogic

———

采用如下补丁程序:

diff -Nru nullhttpd-0.5.0/src/format.c nullhttpd-0.5.1-pre/src/format.c

— nullhttpd-0.5.0/src/format.c Sun Feb 3 18:18:22 2002

+++ nullhttpd-0.5.1-pre/src/format.c Sun Sep 15 21:55:09 2002

@@ -153,3 +153,29 @@

}

return 0;

}

+

+int printht(const char *format, …)

+{

+ unsigned char buffer[1024];

+ int offset=0;

+ va_list ap;

+

+ va_start(ap, format);

+ vsnprintf(buffer, sizeof(buffer)-1, format, ap);

+ va_end(ap);

+ while (buffer[offset]) {

+ if (buffer[offset]=='<‘) {

+ prints(“<“);

+ } else if (buffer[offset]==’>’) {

+ prints(“>”);

+ } else if (buffer[offset]==’&’) {

+ prints(“&”);

+ } else if (buffer[offset]=='”‘) {

+ prints(“””);

+ } else {

+ prints(“%c”, buffer[offset]);

+ }

+ offset++;

+ }

+ return 0;

+}

diff -Nru nullhttpd-0.5.0/src/http.c nullhttpd-0.5.1-pre/src/http.c

— nullhttpd-0.5.0/src/http.c Sun Feb 3 18:18:22 2002

+++ nullhttpd-0.5.1-pre/src/http.c Sun Sep 15 21:55:09 2002

@@ -149,8 +149,15 @@

while ((line[strlen(line)-1]==’\n’)||(line[strlen(line)-1]==’\r’)) line[strlen(line)-1]=’\0′;

if (strncasecmp(line, “Connection: “, 12)==0)

strncpy(conn[sid].dat->in_Connection, (char *)&line+12, sizeof(conn[sid].dat->in_Connection)-1);

– if (strncasecmp(line, “Content-Length: “, 16)==0)

+ if (strncasecmp(line, “Content-Length: “, 16)==0) {

conn[sid].dat->in_ContentLength=atoi((char *)&line+16);

+ if (conn[sid].dat->in_ContentLength<0) {

+ // Negative Content-Length? If so, the client is either broken or malicious.

+ // Thanks to <ilja@idefense.be> for spotting this one.

+ logerror(“ERROR: negative Content-Length of %d provided by client.”, conn[sid].dat->in_ContentLength);

+ conn[sid].dat->in_ContentLength=0;

+ }

+ }

if (strncasecmp(line, “Cookie: “, 8)==0)

strncpy(conn[sid].dat->in_Cookie, (char *)&line+8, sizeof(conn[sid].dat->in_Cookie)-1);

if (strncasecmp(line, “Host: “, 6)==0)

diff -Nru nullhttpd-0.5.0/src/main.c nullhttpd-0.5.1-pre/src/main.c

— nullhttpd-0.5.0/src/main.c Sun Feb 3 18:18:22 2002

+++ nullhttpd-0.5.1-pre/src/main.c Sun Sep 15 21:55:09 2002

@@ -36,12 +36,17 @@

logaccess(2, “%s – HTTP Request: %s %s”, conn[sid].dat->in_RemoteAddr, conn[sid].dat->in_RequestMethod,

conn[sid].dat->in_RequestURI);

snprintf(file, sizeof(file)-1, “%s%s”, config.server_htdocs_dir, conn[sid].dat->in_RequestURI);

snprintf(conn[sid].dat->out_ContentType, sizeof(conn[sid].dat->out_ContentType)-1, “text/html”);

– if (strncmp(conn[sid].dat->in_RequestURI, “/cgi-bin/”, 9)==0) cgi_main();

– else if (sendfile(sid, file)==0) return;

– else if (dirlist(sid)==0) return;

– else {

+ if (strncmp(conn[sid].dat->in_RequestURI, “/cgi-bin/”, 9)==0) {

+ cgi_main();

+ } else if (sendfile(sid, file)==0) {

+ return;

+ } else if (dirlist(sid)==0) {

+ return;

+ } else {

send_header(sid, 0, 200, “OK”, “1”, “text/html”, -1, -1);

– prints(“

The file or function ‘%s’ could not be found.
\n”, conn[sid].dat->in_RequestURI);

+ prints(“

The file or function ‘”);

+ &nbs

参考网址

来源: BID

名称: 5774

链接:http://www.securityfocus.com/bid/5774

来源: XF

名称: null-httpd-contentlength-bo(10160)

链接:http://www.iss.net/security_center/static/10160.php

来源: freshmeat.net

链接:http://freshmeat.net/releases/97910/

来源: BUGTRAQ

名称: 20020922 remote exploitable heap overflow in Null HTTPd 0.5.0

链接:http://archives.neohapsis.com/archives/bugtraq/2002-09/0284.html

免责声明:务必仔细阅读

  • 本站为个人博客,博客所转载的一切破解、path、补丁、注册机和注册信息及软件等资源文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。

  • 本站为非盈利性站点,打赏作为用户喜欢本站捐赠打赏功能,本站不贩卖软件等资源,所有内容不作为商业行为。

  • 本博客的文章中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断.

  • 本博客的任何内容,未经许可禁止任何公众号、自媒体进行任何形式的转载、发布。

  • 博客对任何脚本资源教程问题概不负责,包括但不限于由任何脚本资源教程错误导致的任何损失或损害.

  • 间接使用相关资源或者参照文章的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, 博客对于由此引起的任何隐私泄漏或其他后果概不负责.

  • 请勿将博客的任何内容用于商业或非法目的,否则后果自负.

  • 如果任何单位或个人认为该博客的任何内容可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明至admin@proyy.com.我们将在收到认证文件后删除相关内容.

  • 任何以任何方式查看此博客的任何内容的人或直接或间接使用该博客的任何内容的使用者都应仔细阅读此声明。博客保留随时更改或补充此免责声明的权利。一旦使用并复制了博客的任何内容,则视为您已接受此免责声明.

您必须在下载后的24小时内从计算机或手机中完全删除以上内容.

您使用或者复制了本博客的任何内容,则视为已接受此声明,请仔细阅读


更多福利请关注一一网络微信公众号或者小程序

一一网络微信公众号
打个小广告,宝塔服务器面板,我用的也是,很方便,重点是免费的也能用,没钱太难了,穷鬼一个,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9kY3ZwbXo=


一一网络 » Null HTTPd远程堆缓冲区溢出漏洞

发表评论

发表评论

一一网络-提供最优质的文章集合

立即查看 了解详情