[LOB] xavius->death_knight
2019. 7. 8. 21:54
LOB
[the Lord Of Buffer overflow]
# 20 : xavius->death_knight
마지막 LOB 문제이다. 이거 쓰고 나서는 LOB 풀이한 걸 처음부터 읽어보고, 다시 풀어볼 생각이다.
그리고 FC로 넘어갈 것 같다.
일단 cat death_knight.c의 결과이다.
/*
The Lord of the BOF : The Fellowship of the BOF
- dark knight
- remote BOF
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <dumpcode.h>
main()
{
char buffer[40];
int server_fd, client_fd;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int sin_size;
if((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1){
perror("socket");
exit(1);
}
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(6666);
server_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(server_addr.sin_zero), 8);
if(bind(server_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1){
perror("bind");
exit(1);
}
if(listen(server_fd, 10) == -1){
perror("listen");
exit(1);
}
while(1) {
sin_size = sizeof(struct sockaddr_in);
if((client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &sin_size)) == -1){
perror("accept");
continue;
}
if (!fork()){
send(client_fd, "Death Knight : Not even death can save you from me!\n", 52, 0);
send(client_fd, "You : ", 6, 0);
recv(client_fd, buffer, 256, 0);
close(client_fd);
break;
}
close(client_fd);
while(waitpid(-1,NULL,WNOHANG) > 0);
}
close(server_fd);
}
-수정중-
리모트 어택하는데, 칼리 환경에서 돌려보고 있는데 자꾸 익스 코드가 안먹힌다.
코드가 잘못된건지.. 통신은 되는데;
'Wargame > LOB(Redhat)' 카테고리의 다른 글
[LOB] nightmare->xavius (0) | 2019.07.05 |
---|---|
[LOB] succubus->nightmare (0) | 2019.07.03 |
[LOB] zombie_assassin->succubus (0) | 2019.07.01 |
[LOB] assassin->zombie_assassin (0) | 2019.04.01 |
[LOB] gaint->assassin (0) | 2019.03.31 |