전체 글 76

Burp Suite에서 Custom 필터링: Bambdas 사용하기

Burp Suite의 History 및 Logger 탭에서는 다양한 필터링 기능을 제공하지만, 문자열 검색 범위를 response로 제한하거나, 특정 헤더가 포함된 request로 필터링하고 싶을 때 아쉬운 부분이 있다.이런 경우에 유용한 기능이 Bambdas. Fiddler Classic의 커스텀 스크립트와 같이 정교한 필터링을 구현이 가능하다. Bambdas 예시Proxy > HTTP history > Filter settings에서 Bambda mode 를 선택하면 커스텀 필터를 작성할 수 있다. Montoya API를 기반으로 작성하고, 메소드 등은 공식 홈페이지 문서 페이지에서 확인 가능하다. 예시로 response에서만 특정 문자열을 검색하려면 다음과 같은 코드를 작성할 수 있다. if (re..

Web,Mobile/Tool 2024.06.20

SFTP Chroot 감옥 사용자 생성

일부 사용자끼리 특정 디렉터리 내 읽기/쓰기 권한을 주어 파일을 공유하고 싶다.공유 계정은 아래의 조건을 만족해야 한다. 공유 계정은 SSH 접근 불가능지정된 공유 디렉터리 상위로 이동 불가SSH 서버의 sshd_config 설정을 통해 어렵지 않게 구현할 수 있다. 1. 사용자 생성먼저 공유할 계정을 생성한다.쉘 접근이 불필요한 계정일 경우 nologin으로 설정한다.$ useradd share$ passwd share$ vi /etc/passwdshare:x:1010:1010::/home/share:/usr/sbin/nologin 2. sftp & Chroot 적용아래의 sshd_config 설정을 적용하면 ssh로 쉘에 접근 할 수 없다.$ vi /etc/ssh/sshd_configSubsystem..

Server 2024.04.01

eval()과 Function 생성자의 Scope

eval을 절대 사용하지 말 것! eval() - JavaScript | MDN**eval()**은 문자로 표현된 JavaScript 코드를 실행하는 함수입니다.developer.mozilla.org eval()은 인자로 받은 코드를 caller의 권한으로 수행하는 위험한 함수입니다. Function으로는 실현할 수 없는 공격이 가능합니다. 라고 작성되어있는데 정확히 이게 무슨 소린가 싶다. 그래서 좀 찾아봤다. 자바스크립트에는 스코프(Scope)라는게 있는데 전역 스코프, 블록 스코프, 함수 스코프가 존재한다.  JavaScript ScopeW3Schools offers free online tutorials, references and exercises in all the major languages..

Web,Mobile/Tech 2024.01.12

Github Actions로 push 이벤트 발생 시 내 서버로 배포 자동화하기

GitHub 리포지토리의 Actions 탭에서 CI/CD 플랫폼을 이용해 빌드, 테스트, 배포 등을 자동화할 수 있다. 공식 문서이 GitHub Actions를 이용해 특정 브랜치에 push 이벤트가 발생할 때 설정된 서버로 자동 배포를 구현해보기로 한다.  1. GitHub Actions 설정 리포지토리의 Actions 탭을 클릭하면 자동화된 워크플로우를 설정할 수 있다.  "Set up a workflow yourself" 옵션을 선택하여 직접 작성할 수 있다.  GitHub Actions의 워크플로우는 YAML 파일로 작성되며, 공식 문서를 참고하여 문법을 확인할 수 있다. Workflow syntax for GitHub Actions - GitHub DocsA workflow is a config..

Server 2023.09.05

String, Number형 변수를 이용한 XSS Bypass

1. 문제 사용자의 입력 값을 script 태그 안의 변수에 선언하는 경우가 있다. // Request https://test_page.xyz/test?code=CODE&mode=ACD&value=test&count=1&dept=0&name=%ED%85%8C%EC%8A%A4%ED%8A%B8 // Response 필터링이 미흡할 경우 사용자 입력 값에 악의적인 스크립트를 넣어 실행할 수 있다. 그래서 필터링을 적용해보았다. 탐지하는 문자는 다음과 같고 탐지하는 문자를 사용 시 페이지 자체가 차단되도록 했다. ' " ` %0d %0a ; %20 () [] {} . + - string href concat document script alert confirm prompt console.log eval ..

Web,Mobile/Tech 2023.08.08

JSFuck과 Function 객체 생성자를 이용한 XSS Bypass

0. 서론 스크립트 태그 영역 안에서 별도의 태그나 이벤트 핸들러를 사용하지 않고 XSS 취약점을 터트리는 경우 서버에서 XSS 스크립트 실행에 사용해야 할 함수(여기서는 'alert' 를 예시로 든다.) 값 자체를 필터링하고 있다면 이를 우회하기가 쉽지가 않다. 필터링되어 있지 않은 비슷한 함수 confirm, prompt 등으로 대체하거나 서비스 자체의 필터링을 이용한 방법*을 이용하는게 아니라면 alert 자체를 우회하긴 어렵다. * 페이지를 불러오기 전 백엔드에서 "abc"를 공백으로 치환하는 서비스 자체의 시큐어코딩이 되어있을 경우 "alabcert"를 입력하여 우회 등등 그러나 해당 스크립트를 문자열을 실행할 수 있다면 이런 제한에서 비교적 자유로워 질 수 있다. 우회 예시 => 문자열 합치기..

Web,Mobile/Tech 2023.07.19

Raspberry Pi 3 안전하게 종료하기

라즈베리파이는 전원 소켓에 플러그를 꽂으면 자동으로 부팅된다. 하지만 종료할 때 전원 소켓을 그냥 뽑으면, 부트 영역이 손상되어 부팅이 되지 않을 위험이 있다. 안전하게 종료하려면 아래 명령어를 사용해야 한다.$ sudo poweroff  플러그 뽑았다가 주말 내내 작업하던 데이터를 모두 날려버렸다.기존에도 라즈베리파이 플러그를 바로 뽑아 종료했었는데, 그동안 운이 좋았던 것 같다. 반드시 안전하게 종료하도록 하자.

Raspberry Pi 2023.04.17

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

1. Sendmail 설치먼저, 아래 명령어를 통해 sendmail과 관련 패키지를 설치한다.apt-get install sendmail sendmail-cf 설치 도중 "Creating SSL certificates for sendmail." 단계에서 설치가 멈춘다면, Ctrl+C로 설치를 중단한 뒤 아래 명령어를 실행한다.cd /etc/mail/tlssudo openssl dsaparam -out sendmail-common.prm 2048sudo chown root:smmsp sendmail-common.prmsudo chmod 0640 sendmail-common.prmsudo dpkg --configure -ahttps://askubuntu.com/questions/937666/ubuntu-16..

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