챔cham

# 전체 글 (74)

보안 공부 2026. 8. 23. 00:35

reverse shell

먼저 Shell이 무엇인지 알아보자.Shell은 쉽게 말하면 컴퓨터에게 명령을 전달해주는 프로그램이다. 일반적인 Shell보통 터미널은 내가 연결을 시작하는 구조이다.내가 연결을 시작하면 연결이 유지되면서 명령을 계속 주고받을 수 있게 된다.이걸 대화형 셸(interactive shell)이라고 한다. 웹셸이라는 것도 있다.웹셸은 HTTP 요청으로 Shell 명령어를 보내고 HTTP로 응답이 오는 구조이다.이렇게 되면 명령 하나에 결과가 하나인 구조이다.즉, 다음 명령으로 이어나가지 못하고 하나의 명령만 이해하는 형태가 되는 것이다.여기서 Reverse Shell이 등장한다. Reverse Shell직역하면 거꾸로 연결하는 셸이다.일반적인 연결은공격자 -----> Target인데 Reverse Shell..

보안 공부 2026. 8. 22. 15:24

searchsploit

한 문장으로 말하면searchsploit은 Exploit-DB에 공개되어 있는 Exploit과 PoC 등을 Kali Linux에서 빠르게 검색하기 위한 명령줄 도구이다.Exploit-DB가 뭐야?Exploit-DB는 공개적으로 알려진 소프트웨어 취약점과 그 취약점을 실제로 이용하는 데 사용되는 Exploit/PoC 등을 모아 놓은 데이터베이스이다.Exploit은 뭐야?만약 어떤 사이트에서 취약점(Vulnerability)가 발견되었다면 누군가는 이 취약점을 실제로 이용할 수 있는 코드를 만들어 공개할 수 있다.이런 취약점을 실제로 악용하기 위해 만들어진 코드를 일반적으로 Exploit이라고 부른다.그럼 해당 회사에 너무 큰 타격인 거 아니야?그래서 이 취약점을 공개하기 전에 미리 해당 회사에 알려준다.그..

보안 공부 2026. 8. 22. 02:13

nmap -sC -sV

nmapnmap은 Network Mapper의 줄임말이고 네트워크 탐색 도구이다.네트워크 탐색 도구???네트워크 탐색 도구를 하나하나 뜯어서 이해해보면 네트워크를 탐색하는 데 도움을 주는 도구구나 라고 이해하면 된다.좀 더 정확히 이야기하자면 해당 서버에 어떤 포트가 열려 있는지 찾아주는 도구인 것이다.왜 필요할까?내가 원하는 건 인터넷을 통해 해당 서버에 접근하는 것이다.근데 열려있는 포트가 없다면?네트워크를 통한 직접적인 공격이 매우 어려워진다.나는 열려 있는 포트를 통해 공격을 시도하기 위해 포트 스캔을 하려는 것이고 그걸 도와주는 도구가 nmap인 것이다.옵션이제 nmap이 무엇이고 왜 사용하는지 알았다.그럼 nmap 뒤에 있는 -sC, -sV는 뭐지?이건 옵션을 주는 것이다.nmap뿐만 아니라 ..

보안 공부 2026. 8. 22. 01:08

TryHackMe - Ignite (1) fuel CMS 1.4.1 - Remote Code Execution (1)취약점 이용해서 문제풀이

TryHackMe의 Ignite 문제로 가면 2가지의 .txt 파일을 찾아야 한다.User.txt와 Root.txt를 찾아야 한다.그럼 시작해보자. 중간중간 공격 대상의 IP 주소가 달라질 수 있다.IP의 정확한 주소보다 어디에 공격 대상의 IP 주소가 들어가는 지 보는 것이 좋다.포트 스캔제일 먼저 공격하고자 하는 대상의 주소에서 열려 있는 포트를 파악한다.이 때nmap -sC -sV {공격대상 IP}해당 명령어를 이용한다.차근차근 하나씩 명령어를 살펴보자.위 명령어에 대해 잘 모르겠다면 아래의 글을 보면 된다.https://chaemin0707.tistory.com/82 nmap -sC -sVnmapnmap은 Network Mapper의 줄임말이고 네트워크 탐색 도구이다.네트워크 탐색 도구???네트워..

내가 보려고 만든 것 2026. 6. 12. 19:02

Docker를 이해해보자.

많은 회사에서 Docker를 사용한다.하지만 Docker 개념이 헷갈리는 부분이 많다.이번 기회에 정리해 보려고 한다.Docker가 없던 시절개발자 A가 프로그램을 만들었다.개발자A는 'Java 17MySQL 8Redis 7' 사용그런데 다른 개발자가 실행하려고 하니까."왜 안 되지?"알고 보니.'A 컴퓨터Java 17B 컴퓨터Java 11'또는'A 컴퓨터MySQL 설치됨B 컴퓨터MySQL 없음'또는'A 컴퓨터Ubuntu운영 서버CentOS'이런 문제가 계속 생겼다.이러한 환경 차이를 해결하기 위해 개발 환경을 통째로 복제하는 방식이 사용되었는데, 대표적인 방법이 VM(가상머신) 이었다.VM은 어떻게 해결했을까?VM은 아래와 같이 생각하면 된다.내 컴퓨터↓VirtualBox↓새 컴퓨터 생성↓Ubuntu ..

내가 보려고 만든 것 2026. 1. 25. 10:00

IDE에서 깃헙 저장소 연동하기

우선 자신의 깃헙에서 저장소를 만든다.그럼 주소가 나올 것이다.이후, 아래 형식을 따라하면 된다. 터미널에서 하면 된다. git initgit remote add origin {저장소 주소}git remote -v연결이 잘 되었나 확인한다. git add .git commit -m "init"git push -u origin main

내가 보려고 만든 것 2026. 1. 20. 23:14

QueryDSL

Spring을 쓰면 QueryDSL를 사용하는 일은 빈번하다.이번 기회에 정리해보려고 한다.QueryDSL이란QueryDSL은 자바 코드로 SQL 같은 쿼리를 안전하게 작성하는 방법이다.여기서 포인트는 SQL 쿼리를 자바 코드로 작성한다는 것이다. 왜?그럼 QueryDSL를 사용하지 않을 경우를 생각해보자.@Query를 사용할 수 있다.아래와 같이 말이다.@Query("select u from User u where u.email = :email")User findByEmail(@Param("email") String email);문제점이 뭘까?첫 번째는 하드 코딩이 들어간다는 것이다.하드 코딩은 좋지 않다.실수를 할 수 있고, 수정을 할 경우 모든 곳을 찾아서 수정해야 한다.만약 필드명을 바꾼다면? 일..

내가 보려고 만든 것 2026. 1. 19. 23:31

Facade 패턴

*************************** APPLICATION FAILED TO START *************************** Description: The dependencies of some of the beans in the application context form a cycle: recordController defined in file[/Users/gimchaemin/personal_project/WalkedPath/build/classes/java/main/org/chamcham/walkedpath/records/controller/RecordController.class] ┌─────┐ | recordService defined in file [/Users/gimc..