전체 글

백엔드 개발자로 꾸준히 성장중인 안예성입니다!
· Redis
이 글을 쓰게 된 이유백엔드 개발을 진행하면서 캐싱, 동시성 해결, 메시지 브로커 등 많은 용도로 Redis가 사용되고 있어 Redis가 무엇인지와 어떤 상황에 적용하면 좋을지에 대해서 알아보려고 합니다.Redis란?Redis는 오픈소스 기반의 인메모리 데이터 저장소 입니다. key-value 데이터 구조를 가진 비관계형 데이터 베이스 관리 시스템입니다. Redis는 속도가 빠르고 사용이 간편하여 최고의 성능이 필요한 애플리케이션에서 많이 사용되고 있습니다. Single Threaded이므로 한 번의 하나의 명령어만 처리할 수 있습니다. 그렇기에 중간에 처리 시간이 긴 명령어가 들어오면 그 뒤의 명령어들은 모두 앞에 있는 명령어가 처리될 때까지 대기가 필요합니다.Redis의 데이터 구조String(문자열..
· 보안
드림핵에 simple_sqli를 sql injection을 이용하여 풀어보겠다 db.execute('create table users(userid char(100), userpassword char(100));')db.execute(f'insert into users(userid, userpassword) values ("guest", "guest"), ("admin", "{binascii.hexlify(os.urandom(16)).decode("utf8")}");')userid = request.form.get('userid')userpassword = request.form.get('userpassword')res = query_db(f'select * from users where userid="{..
· 보안
드림핵에서 csrf-1번문제를 csrf기법을 이용해서 풀어볼 것이다서비스에 접속하면 간단한 메모 기능이 있는 웹 어플리케이션이 제공된다. 핵심 기능은 다음과 같다./memo: 메모를 작성하고 조회하는 기능/admin/notice_flag: 내부 관리 기능으로 보이는 엔드포인트이 문제에서 주목할 점은 /admin/notice_flag 경로를 외부 사용자가 직접 호출해도 플래그가 출력되지 않는다는 것이다. 접근 시 조건이 필요하다. 문제의 백엔드 코드 일부를 확인하면 다음과 같은 조건이 포함되어 있다.접근 제한 조건요청자의 IP 주소가 127.0.0.1일 것URL 쿼리스트링에 userid=admin 파라미터가 포함될 것조건을 요약하면 다음과 같다.if client_ip != "127.0.0.1": r..
· 보안
XSS 취약점을 사용해서 플래그를 휙득하는 문제입니다 문제를 실행하면 간단한 메모장 형태의 서비스가 등장합니다.POST /memo : 메모 내용을 작성 (작성자와 메모 내용 입력)GET /memo : 저장된 메모 리스트 출력작성한 메모가 다음과 같이 렌더링되는 것을 확인할 수 있습니다{% block content %} {{ memo }}{% endblock %}문제에서 제공한 Python 코드에서 핵심이 되는 함수는 read_url()과 check_xss()이다.read_urldef read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) driver.get("http://12..
· 보안
일단 문제를 풀면서 느낀점은 javascript를 많이 알고 있어야 잘 풀 수 있다는 것을 느꼈고 다음은 내가 푼 방법에 대한 설명이다. old-15를 처음 들어갔는데 그냥 에러가 뜨는 줄 알았다알고 보니 alert가 떠서 그것을 안 뜨게 하는 것이 문제였고 다음과 같은 풀이 방법으로 해결하였다.Burp Suite를 사용해보기로 해서 Burp Suite를 사용해서 문제를 해결하였다 크로미움 브라우저에서 창을 열고 javascript를 보니 해당 코드가 있었다해당 코드를 반환하니 alert와 location을 지우고 /?getFlag 주소로 요청하니 문제가 풀렸다 old-20을 처음 들어가면 캡쳐를 하라고 뜨는데여기서 capcha옆에 있는 글을 javascript로 값을 받아와서form에 값을 넣고 sum..
· 보안
old-24 풀이방법 문제에 들어가면 "client ip", "agent", 그리고 "Wrong IP!"라는 메시지만 보인다. 겉으로는 뭔가 할 수 있는 게 없어 보여서, 바로 소스코드를 열어봤다.🔍 소스코드 핵심php복사편집extract($_SERVER); extract($_COOKIE); $ip = htmlspecialchars($REMOTE_ADDR); $ip = str_replace("..",".",$ip); $ip = str_replace("12","",$ip); $ip = str_replace("7.","",$ip); $ip = str_replace("0.","",$ip); if($ip=="127.0.0.1"){ solve(24); } extract($_COOKIE) → 쿠키 값으로 $REM..
· 보안
보안과 벡엔드 실무에서는 어떤 용어를 사용하는지 알아봅시다 🔐 보안(Security) 관련 용어CVE: 공통 취약점 및 노출 목록 (예: CVE-2023-1234)Zero-day: 공개 전 악용될 가능성이 있는 취약점Exploit: 취약점을 악용하는 코드/기법Buffer Overflow: 메모리 초과로 인한 취약점RCE: 원격 코드 실행Privilege Escalation: 권한 상승 공격Heap Spraying: 힙 메모리에 악성 코드 주입ASLR: 메모리 주소 무작위화DEP: 데이터 실행 방지🔸 공격 기법MITM: 중간자 공격Phishing: 피싱(사용자 속이기)Brute Force: 무차별 대입 공격SQLi: SQL Injection (DB 조작)XSS: 악성 스크립트 삽입Race Conditi..
· 보안
요즘 학교에서 보안을 공부하는 친구가 3명이나 있고 네트워크, 보안 수업을 듣게 되어 "요즘 보안은 어떨까"라는 생각을 하게 되어 글을 쓰게 되었습니다. 요즘 뜨고 있는 AI를 보안에서 어떻게 사용하고 있는지 알아가 보겠습니다. AI를 활용한 해킹의 최신 동향사회공학적 해킹의 고도화: 해커들은 AI를 활용하여 사람의 심리를 이용하는 사회공학적 해킹 기법을 더욱 정교하게 발전시키고 있습니다. 예를 들어, 북한 해커들은 AI를 이용해 가짜 신분증을 생성하거나, 피싱 공격의 정교화를 통해 보안 시스템을 우회하고 있습니다. ​다국어 피싱 공격 증가: AI를 활용하면 현지 문화와 언어에 맞춘 피싱 메시지를 자동으로 생성할 수 있습니다. 이를 통해 해커들은 영어, 히브리어, 한국어 등 여러 언어로 자연스럽고 정교한..
이번 포스팅에서는 Spring에 있는 Cloud Config를 사용하여 환경변수 서버를 구성하여 프로젝트에 적용을 시켜볼 것이다.Cloud Config를 사용하는 이유는 여러 가지가 있다. 첫 번째로 MSA를 사용하면 여러 서버의 환경변수를 공유해야 하는데 만약 하나의 환경변수가 바뀐다면 여러 개의 프로젝트에서환경변수의 변동이 일어날 것이다. 이런 상황이 벌어진다면 각각의 프로젝트에 환경변수를 적용시켜야 하는 번거로운 작업이 생긴다 두 번째로 jenkins와 같은 CI/CD를 사용하게 된다면 깃허브에 있는 코드를 pull 받아서 사용하는데 github에 환경변수를올려서는 안 Cloud Config에서 환경변수를 가져와서 사용해야 한다. 나는 두 번째의 이유로 Cloud Config라는 것을 알게 되었고 ..
· CI&CD
부산소프트웨어마이스터고등학교에서는 2학년 때 전공동아리 프로젝트를 하여 11월 달에 전공동아리에서 진행한 프로젝트를 발표한다.길다면 긴 시간이지만 우리 동아리에서는 백엔드 인원이 2명이여서 백엔드 리소스가 많이 부족하다. 그래서 쓸모 없는 시간들을 많이 줄여야하는데 시간을 많이 잡아 먹는 요소 중 하나로 배포를 하는데 걸리는 시간이라고 생각했다. 우리 동아리에는 라떼판다 델타를 사용하고 있고 그리고 개인적인 홈서버가 있다. 우리는 개인적인 홈 서버를 Jenkins서버로 라떼판다를 Deploy서버로 사용하기로 하였다. 서론이 길었지만 이 글에서는 Docker를 활용해서 Jenkins를 설치 및 초기 구성을 해볼 것 이다. Docker를 설치 했다는 기준으로 글을 작성하였다. (이 글에서 Doker를 설치 ..
anys
안예성