일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Lord of BOF
- Buffer Overflow
- 운영체제
- LOB
- Spring Framework
- 해킹
- wargame
- 정보보안기사 실기
- webhacking
- Spring
- system hacking
- BOF
- 정보처리기사 실기
- OS
- webhacking.kr
- 웹해킹
- SQL
- 네트워크
- Payload
- System
- Spring MVC
- Pwnable.kr
- pwnable
- PWN
- 정보보안기사
- hacking
- 워게임
- stack overflow
- Shell code
- Operating System
- Today
- Total
목록System (9)
DongDD's IT
[pwnable.kr] cmd2 Problem command shell system을 샀다고 되어있었다.허가없이 해당 프로그램을 사용하는 것을 막기 위해 몇개의 필터가 걸려있지만 항상 사용할 수 있기를 원한다고 되어있었다.이번 문제는 다른 문제와 달리 이전 문제인 cmd1의 flag가 비밀번호로 되어있었다. cmd1의 flag를 password로 사용하여 ssh로 접속해보았다.cmd2 실행 파일과 cmd2.c 소스 코드 파일, flag 파일이 있었다.먼저 소스 코드를 확인해보았다. 12345678910111213141516171819202122232425262728#include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "=")!=0; r +..
[pwnable.kr] cmd1 Problem 이번 문제에서는 Linux에 존재하는 환경 변수가 무엇인지 묻고 있었다.아마 환경 변수를 이용하는 문제인 것 같았다. ssh로 문제에 접속해보았다.cmd1 실행 파일과 cmd1.c 소스 코드 파일, flag 파일 3가지가 있었다.먼저 소스 코드를 확인해보았다. 123456789101112131415161718#include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r += strstr(cmd, "tmp")!=0; return r;}int main(int argc, char* argv[], char** envp){ putenv("..
[pwnable.kr] lotto Problem lotto에 관련된 프로그램을 숙제로 만들었는데 play해보겠냐고 묻고 있는 문제였다.이번 문제에는 ssh로 접속할 수 있는 server가 존재했다.먼저 ssh를 통해 접속해보았다. 접속해보니 flag 파일과 lotto 실행 파일, lotto.c 소스 코드 파일이 있었다.먼저 소스 코드를 확인해보았다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687#include #include #include #include ..
[pwnable.kr] blackjack Problem C로 만든 blackjack 게임을 검사(확인) 해보라고 되어있었다.이번 문제도 저번 문제와 마찬가지로 nc로 접속할 수 있는 port가 있었다.소스 코드가 있는 주소가 주어져있었고 따로 실행할 수 있는 프로그램은 없었다.100만장자가 되면 flag를 준다고 되어있었고 그만큼의 돈을 얻을 수 있냐고 되어있었다. Source Code : http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html소스 코드가 너무 긴 관계로 소스 코드가 있는 주소를 적어놓았다. nc로 접속해보니 다음과 같은 화면이 나왔고 Y를 입력하게 되면 1,2,3을 입력할 수 있게 되어있었다.1번..
[pwnable.kr] coin1 Problem 게임을 하고 싶다는 말이 써져있고 nc로 접속할 수 있는 프로그램 하나가 주어져있었다.앞 문제들과는 달리 소스 코드나 ssh로 접속할 수 있는 상황은 아니었다. nc를 통해 접속해보니 게임 하나가 주어져있엇다.접속을 한 후, 일정 시간이 지나면 N과 C를 주게 되어있었다.0 ~ N 범위의 동전에서 무게가 9인 가짜 동전을 찾는 문제였다. 정상적인 동전은 10의 무게를 가지고 있고 0~N 범위에서 무게가 9인 동전을 찾으면 문제를 해결하는 방식으로 되어있었다.총 C번까지 시도 이후에 답을 입력하면 문제가 해결되었고 총 100개의 문제를 해결하게 되면 reward를 준다고 되어있었다. Solution C번의 기회밖에 주어지지 않아서 모든 동전을 일일이 확인하기..
[pwnable.kr] shellshock Problem bash에 대한 충격적인 뉴스가 있었다고 한다. 모두가 알고 있을 거라는 말과 함께 시도해보라는 듯한 문제가 나와있었다.먼저 ssh를 통해 접속해보았다. ssh를 통해 접속하니 bash 파일과 flag 파일, shellshock 실행 파일과 shellshock.c 소스 코드로 4개의 파일이 있었다.먼저 bash와 shellshock를 실행해보았다. shellshock 파일은 실행 시, shock_me 라는 메시지만 출력되고 종료되었다.bash를 실행해보니 일반 bash 파일인 것 같았다.shellshock.c 소스 코드 파일을 확인해보았다. 12345678#include int main(){ setresuid(getegid(), getegid(),..
[pwnable.kr] mistake Problem 모든 사람들이 실수한다고 적혀있었다. 심각하게 생각하지말고 화려한 해킹 기술이 필요하지는 않다고 되어있었다.hint로는 연산자 우선순위가 주어져있었고 ssh를 통해 접속해 확인해보았다. 먼저 ssh를 통해 접속해보니 password 파일과 mistake 실행 파일, mistake.c 소스 코드 파일과 flag 파일이 있었다.소스 코드를 확인해보았다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include #include #define PW_LEN 10#define XORKEY 1 void xor(char* s, int len){..
[pwnable.kr] leg Problem arm에 대한 것을 배웠다고 되어있었다.arm에 관련된 문제인 것 같았고 leg.c 파일과 leg.asm파일을 다운받을 수 있게 되어있었다.먼저 ssh를 통해 접속해보았다. ssh를 통해 접속하니 부트하는 것 같은 메시지들이 떴고 최종 부팅 후에는 다음과 같은 파일들을 볼 수 있었다.leg라는 실행 파일이 있었고 먼저 소스 코드를 확인해보았다. 1234567891011121314151617181920212223242526272829303132333435363738#include #include int key1() { asm("mov r3, pc\n");}int key2() { asm( "push {r6}\n" "add r6, pc, $1\n" "bx r6\n"..
Buffer overflow Stack overflow - stack overflow는 기본적으로 프로그램의 오류 중 buffer overflow의 한 종류이다.- stack이 프로그램 실행 시 할당된 사이즈를 넘어갈 때 일어난다.- 이러한 stack overflow로 인해 취약점이 생길 수 있다. - 기본적으로 stack에 이러한 순서로 쌓이게 된다.- buffer가 20bytes라면 그 뒤에 4bytes의 sfp, 함수가 끝난 후 돌아갈 return값 4bytes, parameter 이런 순으로적재가 된다. Saved frame pointer(SFP) : 함수의 실행이 끝나고 이전 함수로 돌아가기 위해 이전 함수의 ebp를 저장해둠 Stack corruption에서는 RET의 값을 변조시켜 함수가 끝..