전체 글 69

Raspberry Pi 3 안전하게 종료하기

라즈베리파이는 전원 소켓에 플러그를 꼽으면 바로 부팅이 되게 된다. 그렇다면 종료를 할 땐 전원 소켓을 뽑으면 되는건가? 하고 뽑게 되면 최악의 경우 부트 영역이 손상되어 부팅이 되지 않는 경우가 발생한다. reboot 명령어와 동일하게 안전하게 종료하는 명령어가 있다. $ sudo poweroff 반드시 해당 명령어를 통해 종료하도록 하자. 서버를 이전 다해놓고 '아 이제 기존 서버 뽑고 서랍에 넣어놔야지' 하고 뽑았다가 주말 내내 작업하던거 다 날려버렸다. 기존 라즈베리파이도 자주 플러그를 바로 뽑아 종료하곤 했는데 운이 좋았나보다.

Raspberry Pi 2023.04.17

Raspberry Pi 3 메일서버(sendmail) 구축

간단한 메일서버를 구축해보고자 한다. 아래 명령어를 통해 sendmail을 설치한다. apt-get install sendmail sendmail-cf sendmail 설치 도중 "Creating SSL certificates for sendmail."이라는 부분에서 아무리 기다려도 진행이 안되면 Ctrl+C를 통해 설치를 중단한 뒤 아래 명령어를 실행한다. cd /etc/mail/tls sudo openssl dsaparam -out sendmail-common.prm 2048 sudo chown root:smmsp sendmail-common.prm sudo chmod 0640 sendmail-common.prm sudo dpkg --configure -a https://askubuntu.com/qu..

Raspberry Pi 2022.07.25

Raspberry Pi 3 하드디스크 마운트 및 파일 서버 구축

로컬이나 용량이 작은 여러 usb에 분산해서 저장해놓으니까 막상 원하는 파일이 어디에 있는지 몰라서 이 usb, 저 usb 뒤적거리다 결국은 못찾는 경우가 여럿있었다. 그래서 어차피 라즈베리파이는 웹 서버 때문에 24시간 구동도 하겠다. 파일서버 하나 구축하면 접근성도 쉽고 어떤 파일을 찾고 있는지도 용이할 것 같다. 라즈베리파이 3 에서 부팅을 위한 sd card는 아무래도 용량이 기대한 만큼 크지가 않기에 하드디스크를 하나 구매한 뒤 마운트 해서 사용해보자. 라즈베리파이 3는 이동을 자주하는게 아니므로 외장용 하드디스크 말고 그냥 일반 하드디스크를 구매했다. 용량은 4TB. SATA-USB 변환 케이블로 하드디스크에 전력 공급 및 라즈베리 파이에 연결 시켜줬다. $ sudo lsblk lsblk를 이..

Raspberry Pi 2022.05.27

XSS Bypass in window.location

사용자의 입력 값이 window.location의 속성이나 메소드에 반영되는 서비스들이 종종 있다. 보통 XSS가 발생하는 공격 벡터인데 XSS 방지를 위해 싱글쿼터 또는 더블쿼터를 escape 처리를 해두기도 한다. 이것은 간단한 페이로드로 우회가 가능하다. 사용자의 입력 값이 javascript 단의 location.href 속성 값에 반영된다고 가정. - https://test.com?url=test';alert(1)// 싱글쿼터가 escape처리되어 원하는 스크립트 실행이 힘들어 보인다. - https://test.com?url=javascript:alert(1) 싱글쿼터 혹은 더블쿼터 escape 우회없이 스크립트 실행이 가능하다. window.location.href 속성 외 일부 메소드에서도..

Web,Mobile/Tech 2022.05.03

아파치 HTTP 인증(Basic/Digest authentication) 적용

files 디렉토리는 HTTP 파일 서버를 위해 일부러 인덱싱이 허용되어있다. 이 중 test 디렉토리는 모두가 접근 가능하게 만들되, public(/home/Tools/)이라는 디렉토리는 접근 가능한 사용자를 제한하고 싶다. 이를 위해 아파치 HTTP 인증을 서버에 적용해보고자 한다. 1. HTTP 인증을 하고 싶은 디렉터리에 .htaccess 파일 생성 2. HTTP 인증 사용자 생성 Basic 인증을 사용할 시 1), Digest 인증을 사용할 시엔 2)을 수행한다. 1) Basic 인증 시 $ htpasswd -c .htpasswd [사용자 ID] 2) Digest 인증 시 $ htdigest -c .htdigest '[Auth Name]' [사용자 ID] 사용자 ID, 2번의 PW 입력 후 .h..

Server 2022.04.28

Log4shell(CVE-2021-44228) + JNDI Injection

- log4shell log4j는 자바 로깅 프레임워크 중 하나인데 넘겨받은 값을 문자열 그대로 저장하는 것이 아니라 lookups 기능에서 해석할 수 있는 형태면 해당 문자열을 실행한다. CVE-2021-44228에서는 JNDI Lookup을 이용해서 공격자의 서버에 있는 악성 페이로드를 요청한다. - JNDI Injection 피해자의 서버에 익스플로잇을 하기 위해 사용하는 JNDI Injection도 이해할 필요가 있다. 공격자의 LDAP(또는 rmi) 서버에서 JNDI Naming Reference를 반환하고 피해자의 서버는 Reference Object의 Codebase URL이 가르키는 신뢰되지 않는 악성 클래스 파일을 인스턴스화한다. (log4shell exploit flow 참조) 위 JN..

Web,Mobile/Tech 2021.12.17

[Vulhub] 설치 및 실행 방법

1. 개요 1-day 취약점 분석 시 취약한 버전의 어플리케이션, 환경설정 등이 구성되어야 함. Vulhub는 docker를 이용하여 환경 구성의 번거로움을 해결해준다. 해당 문서는 Vulhub 를 이용해 취약점 환경 테스트를 구성하는 방법을 기술한다. 단, Vulhub는 모든 CVE를 지원하지는 않음. 2. Vulhub 설치 1) 가상머신 설치(optional) Ubuntu 64bit iso 설치 (link) VMWare Workstation 설치 (link) VMWare에 Ubuntu 설치 2) docker, docker-compose 설치 terminal 실행 관리자 권한 상승 limelee@ubuntu:~$ sudo su [sudo] password for limelee: root@ubuntu:/..

Web,Mobile/Tool 2021.09.01

Hacking Camp CTF 2021 write up

web, mobile만 1. World Wide Web World Wide Web 플래그 경로는 /tmp/flag 에 있습니다. https://steemit.com/kr/@huti/phpmyadmin-local-file-inclusion-cve-2018-12613 phpmyadmin Local File Inclusion 취약점(CVE-2018-12613) 재분석 — Steemit 악의적인 사용을 금합니다. 법적 책임은 본인에게 있습니다. 무단 도용/복제를 급합니다. 본 글의 저작권은 huti에게 있습니다. URL에 파일 경로를 포함하면, 사용자가 웹서버에 있는 파일을 열람 steemit.com phpMyAdmin에서 target 파라미터로 전달되는 값에 대해 유효성 검사를 하고 있으나 이를 우회하여 임의..

wargame 2021.08.18

[Burp Suite] 업데이트 후 Render 기능 사용 시 Embedded browser initialization failed 에러

버프스위트 커뮤니티를 쓰다 어느 순간 Render 기능을 사용할 수 없게 되었다. 오른쪽 상단에 업데이트 메시지창을 보고 업데이트 했던 게 의심스럽다. 증상은 Embedded browser initialization failed 라는 에러 메시지가 출력된다. 자세한 에러 메시지가 필요할 듯 하다. Help > Embedded Browser Health Check 에서 확인 가능하다. manifest.properties 파일이 없다고 한다. 그래서 해당 디렉터리로 이동하려고 했더니 이동이 안된다. 뭔가 싶어 디렉터리를 하나하나 따라가니 manifest.properties 파일이 있는 디렉터리 명이 변경되었다. 90.0.4430.212을 91.0.4472.101로 변경해준 뒤 버프스위트를 재실행했다. 디렉터..

Web,Mobile/Tool 2021.06.23 (1)

[Python] requests 라이브러리 프록시 툴로 패킷 캡쳐하기

Python version 3.9.4 Package 'requests' version 2.25.1 예전엔 알아서 패킷을 잡았던 거 같은데 최근에 다시 돌리려 하니 프록시 설정을 킨 상태에서 요청하면 에러가 발생한다. 기존 GET 방식으로 요청 보내는 코드 import requests URL = 'https://limelee.xyz' res = requests.get(URL) print(res) 실행 시 이렇게 오류가 난다. 그래서 proxies 옵션을 추가해주었다. import requests proxies = {'http' : 'http://127.0.0.1:8080', 'https' : 'http://127.0.0.1:8080'} URL = 'https://limelee.xyz' res = reque..

Web,Mobile/Tool 2021.04.19 (2)