본문 바로가기

전체 글30

재무쌤의 네트워크와 시스템강의 요약본! Rip routing rip 설정하는법! en conf t route rip network router0 en; conf t; do show ip route router1 en; conf t; do show ip route router2 en; conf t; do show ip route 각각 라우터에 rip라우팅을 해서 각각 포트마다 달려있는 네트워크 대역을 홍보하면서 rip 라우팅을 했다. ping 명령어를 날려보면 패킷이 3대의 라우터를 잘 통과하며 잘 가는것을 볼 수 있다. Switch 스위치 한대에 pc를 4대를 물렸다. switch는 mac주소 테이블이 있어서 원하는 목적지의 pc에만 패킷을 보낼 수 있다. mac주소 테이블을 학습하기 위해서는 arp라는 프로토콜을 사용한다. arp프로토콜은 .. 2023. 12. 11.
WAF (Web Application Firewall) WAF란웹 애플리케이션 방화벽은 웹 사이트와 웹 애플리케이션을 보호하기 위한 방화벽 이다.다른 방화벽과 비슷하게 악성 트래픽을 감지하고, 차단하면서 공격을 방어한다.  일단 프록시란?포워드 프록시란 우리가 아는 보통의 프록시가 포워드프록시이다. 포워드프록시는 클라이언트를 서버로부터 숨기는 역할을 한다. 리버스 프록시란 포워드 프록시와 반대로 패킷이 프록시서버로 전송되는데, LAN에서 프록시 서버가 작동한다. 서버를 악성 클라이언트로부터 방어하며 로드밸런싱의 역할을 하기도 한다.  WAF의 작동 방식웹 애플리케이션에 대한 방어수단이다. OSI에서는 7계층의 방어이다. 웹 애플리케이션에 들어오는 모든 공격을들 막기 위해서 생겨나진 않았고, 다양한 공격에 대한 종합적인 방어기능을 사용하는 방화벽의 일부분이다... 2023. 11. 15.
ejs 3.1.6 SSTI 취약점 (CVE-2022-29078) CTF 웹 문제를 봐보면 ssti 취약점 문제가 생각보다 많다. ssti 문제들의 패키지 파일을 보면 ejs 3.1.6 이나 ejs 3.1.8 등등이 있는 것 같다. 그래서 한번 ejs 3.1.8을 찾아보려니 먼저 ejs 3.1.6 취약점을 공부해보라고 해서 ejs 3.1.6 취약점을 공부한걸 정리해본다 취약점 발생 코드 // Undocumented after Express 2, but still usable, esp. for // items that are unsafe to be passed along with data, like `root` viewOpts = data.settings['view options']; if (viewOpts) { utils.shallowCopy(opts, viewOpts.. 2023. 9. 30.
Backup file (Root Me) 사실 write up을 보고 공부하며 풀었던 문제다... 도저히 모르겠어서 본거다.. backup file vuln 서버에 백업 파일을 만든 경우가 있다. 그 백업 파일의 디렉토리 위치를 예측해서 파일명을 알아내고, 다운로드 받거나 요청보내서 읽어 내부 정보들을 얻을 수 있다. 문제를 봐보면 로그인 페이지가 있다. 아무거나 입력해보면 user passwd가 틀렸다고 나온다. 물론 로그인으로 문제 푸는게 아니라 아마 한 파일을 찾고 그 파일에 flag가 있거나 뭐 계정이 있을것 같았다. 구글에 흔히 나온 파일 주소들을 많이 넣어 봤는데 삽질하는것 같았다. 문제에 대해 찾아보다가 vim에 특징을 알았다. vim의 특징, 자동백업 리눅스의 vim에는 자동백업 기능이 있다. 우리가 작업하는 동안 자동으로 [파일.. 2023. 9. 15.
HTTP - Open redirect (Root Me) Root Me에 있는 Open redirect CTF 문제 write up이다. 문제 페이지를 들어가면 각각 웹 사이트 버튼이 보이고, 원하는 웹 사이트를 누르면 GET 형식으로 url과 h라는 값을 보내는 것을 알 수 있다. 정상적으로 잘 접속되는 모습을 보여준다. 아마 다른 웹사이트로 리다이렉트 하면 되는 문제인것 같다 한번 url을 바꿔서 보내보겠다 GET /web-serveur/ch52/?url=https://www.op.gg&h=a023cfbf5f1c39bdf8407f28b60cd134 HTTP/1.1 Host: challenge01.root-me.org Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x.. 2023. 9. 13.
SQL Injection SQL은 엄청난 장점이 있는 언어이다.db에서 데이터를 선택하고, 추출하고, 넣고, 지우고... 데이터를 분석하고 이용할때 사용하는 언어가 SQL이다.SQL은 DB 내용들을 손쉽게 관리할 수 있는 강력한 언어이다. SQL은 크게 3가지의 형태로 나누어지는데, DDL, DML, DCL이 있다. DDL에서 쓰는 대표적 예시는# 테이블이나 DB를 새로 만든다CREATE; CREATE TABLE Customers ( CustomerID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), Email VARCHAR(100)); # 이렇게 새로운 테이블을 생성할 수 있다.# 테이블이나 DB의 속성을 바꾼다ALTER; ALTER TABLE.. 2023. 9. 9.
내 web shell은 어디에... 어찌어찌 서버에 web shell을 올렸다고 해도 내 web shell 위치를 찾지 못해서 헛수고하고 로그만 남기고 억장이 와르르할 수가 있다! web shell 올리기 전에 파일 올릴 때의 내부 로직을 정확히 파악하고 해 보자!! 내가 올린 파일 찾기 음 일단 로직을 분석하고 직접 차근차근 찾아보는 방법이 가장 좋은 방법이긴 하다! 그래도 여러 가지 대표적인 방법들이 있으니 알아보자! 응답을 분석해 보자 파일을 업로드하면 종종 응답 내용에서 서버 내부에 파일 위치가 도착하는 경우가 있다. 내부 파일 위치에 접근해서 내 web shell에 접근해 보자! F12를 눌러보자 이미지를 업로드한 img 태그를 확인해 보면 src에 url이 걸려있다. 걸려있는 url을 봐보면 업로드된 위치를 확인할 수 있다. 해.. 2023. 9. 7.
file upload 대응은 이게 정석일껄요...? 필터링하자! 모두가 잘 알듯이 웹 필터링 방식에는 화이트리스트 필터링, 블랙리스트 필터링이 있다. 화이트리스트 방식은 모든 리스트 목록을 다 차단하고 혀용 할 리스트만 허용하는 방식이다. 블랙리스트 방식은 차단할 리스트 안에만 있으면 차단하는 방식이다. 화이트리스트 방식이 보수적이고 폐쇄적이라서 보안에 강점이 있다. 보안성이 강화될수록 서비스는 더 안전하고 신뢰성이 높아질 것이다. 하지만 보안이 어느 선을 넘어가게 되면 안전한 서비스라는 엄청난 장점을 챙기지만 고객들의 불편함을 초래할 수 있다. 예시를 들어보면, 우리가 어떤 사이트에 로그인을 하려고 하면 일단 아이디와 비밀번호를 입력하는 것이 일반적이다. 하지만 김재균이 만든 사이트는 너무 무서워서 샤워를 하러 간 나머지 보안을 엄청나게 챙기려고 노력했.. 2023. 9. 4.
Python 기초! decorator이란? (파이썬 데코레이터) 데코레이터가 필요해ㅠㅠ 는 말 그대로 함수를 데코레이팅 해주는 역할을 한다. def what_my_name(): print("what's my name?") 이런 간단한 함수 하나가 있다. 근데 코딩을 하다 보니까 이 함수에 추가 기능이 필요했다. 저 질문을 하기 전에 몇 마디를 더 출력하고 싶어진 것이다. def what_my_name(): print("what's my name?") print("Do you know?") what_my_name() 흠 완벽하다. 어? 그런데 코딩을 또 하다 보니 새로운 함수가 생기고 여러 번 출력을 해야 한다. def what_my_name(): print("what's my name?") def my_name_is(): print("누구게?") my_name_is(.. 2023. 9. 1.