언어별 취약 시스템 명령어
Web-vuln cmd system web VulnabilityRuby & Perl 두 언어의 경우 파일 및 하위 프로세스의 I/O를 제공하는 open 함수가 존재한다. [Ruby] File.open("example.txt", "r") do |file| contents = file.read puts contents end [...
Ruby & Perl 두 언어의 경우 파일 및 하위 프로세스의 I/O를 제공하는 open 함수가 존재한다. [Ruby] File.open("example.txt", "r") do |file| contents = file.read puts contents end [...
strcmp() 함수란? 두 문자를 비교하여, 그 결과를 반환해주는 함수이다. string1이 string2보다 작으면 음수를 반환하고 string1이 string2와 같으면 0을 반환한다. string1이 string2보다 크면 양수를 반환하게된다. int strcmp...
Type Juggling 이란? PHP는 Python, Javascript와 같은 언어와 동일하게 동적 언어이다. 이는 프로그램이 실행되는 동안 변수 유형을 검사하게되는데, PHP에는 Type Juggling라는 기능이 존재한다. 다양한 유형의 변수를 비교하는 동안 PHP는 ...
두 함수는 무슨 역할을 함수인가? 두 함수의 공톰점은 PHP에서 사용되는 함수이며, 주로 SQL Injection 을 방지하기 위해 사용되는 함수이다. 쉽게 설명해서 입력값에 ‘(싱글쿼터), “(더블쿼터), (역슬래쉬), 등등 악의적인 쿼리로 이어질 수 있는 입력값이 들어오...
CSP란 무엇인가? Content Security Policy 란 XSS , CSRF, Click Jacking와 같은 공격들을 완화하는 것을 목표로 만들어진, 브라우저 보안 메커니즘이며, HTTP 응답 헤어이다. 또한 메타태그를 통해 적용할 수도 있다. 이는 페이지가 특정...
보통 쉘을 획득할떄는 두 가지 방법을 사용한다.대표적으로 바인드 쉘과, 리버스 쉘이라는것을 사용한다. 1. 바인드 쉘[Bind Shell] 바인드 쉘의 경우, 서버에서 포트가 열려있고 클라이언트에서 접속하여 쉘을 얻는 방식이다.일반적으로 가장 많이 사용되는 방식...
FPO? SFPO? 시스템 해킹을 하다보면 보통 ret영역의 값을 악의적으로 변형시켜 system함수를 실행시키는 등 해당 프로그램을 제어하지만, 입력버퍼의 제한으로 ret영역까지 접근을 하지 못 할 수 있다. 하지만 SFP영역의 단 하위1바이트만으로 ret영역 제어와 비슷...
대량의 소스코드등을 vi를 이용해 내용을 저장했을때 줄맞춤, 정렬등이 밀려있게된다. 이를 깔끔하게 정리하기위해서는 ctrl + v를 누른상태에서 키보드커서로 영역을 잡아준 후 = 키보드를 누르면 자동으로 줄 맞춤이 된다.
Deserialize란? 역 직렬화로 써 직렬화된 데이터 즉 바이트 스트림을 역연산 하는 과정을 말한다. Serialization? 계층 구조의 데이터를 바이트 스트림으로 변환하는 작업을 뜻하며, 객체를 저장 및 전송의 편리함 및 다른 플렛폼에서 사용하거나, 객...
HTTP 상태코드 401&403 특정 페이지들을 살펴보다 보면, HTTP 상태코드로 401 또는 403으로 반환되는 경우가 종종 있다. 이 두 종류의 코드는 무엇일까? 401 Unauthorized HTTP 표준에서 Unatuhorized(미승인)으로 명시하...
취약점은 Path Traversal 취약점의 한 부분으로 아카이브 파일에서 파일을 추출하는 동안 디렉터리를 통과하는 과정에서 발생한다. 이게 무슨 소리냐? 압축된 파일 혹은 아카이브 파일에서 파일명이 절대경로 로 표시된 경로 명으로 되어 있는 경우, Unarchive 되면서...
해당 문제는 https://app.hackthebox.com/machines/PermX 에서 확인할 수 있습니다. Editorial 시스템 모의 침투 수행 내용 vHOST 탐색으로 lms하위도메인 식별 Chamilo lms CVE 식별 및 파일 업로드 취약점을 통해 ...
해당 문제는 https://tryhackme.com/r/room/jokerctf 에서 확인할 수 있습니다. Dreaming 시스템 모의 침투 수행 내용 정보 수집 디렉터리 부르트 포싱으로 /app 경로 확보 pluck CMS 4.7.13 의 CVE가 존재 웹쉘...
해당 문제는 https://tryhackme.com/r/room/dreaming 에서 확인할 수 있습니다. Dreaming 시스템 모의 침투 수행 내용 정보 수집 디렉터리 부르트 포싱으로 /app 경로 확보 pluck CMS 4.7.13 의 CVE가 존재 웹쉘...
pspy 란 무엇인가? 리눅스 시스템에서 실행 중인 프로세스를 실시간 모니터링 및 새로운 프로세스를 감지하는 도구로서, root권한 없이 사용이 가능하며, 시스템의 모든 프로세스를 추적할 수 있다. cron을 사용하지 않아도 cron 과 유사한 반복된 작업을 수행하는 프로세...
ffuf 란 무엇인가? ffuf는 Go로 작성된 빠른 웹 퍼저로, 일반적인 디렉토리 검색, 가상 호스트 검색(DNS 레코드 없음), 하위도메인 검색, GET 및 POST 매개변수 퍼징을 허용한다. 기본적인 사용 방법 ffuf -u http://example.com/FU...
해당 문제는 https://app.hackthebox.com/machines/Editorial 에서 확인할 수 있습니다. Editorial 시스템 모의 침투 수행 내용 정보 수집 도메인 획득 후 IP와 매칭 사이트 내에 사진 Preview 기능에서 SSRF 취약점...
해당 취약점은 무엇인가? ROP기법이란 Return-Oreinted-Programming의 약자로 반환 지향형 프로그래밍 이다. ret영역에 가젯을 이용하여 연속적으로 함수를 호출하며 공격자가 원하는 흐름대로 프로그래밍 하듯 공격한다는 뜻의 기법이다. 사전 지식 ROP는 ...
LXD/LXC 란 무엇인가? lxc 리눅스 컨테이너 기술의 초기 형태로, 프로세스와 자원을 격리하여 가벼운 가상화 환경을 제공하는데 사용되며, 이를 통해 머신의 여러 인스턴스를 운영할 수 있다. 현재로서는, 개발 및 테스트 환경에서 다양한 리눅스 배포판 및 특정 소프트웨어...
Ruby Regular expression bypass Ruby를 포함한 몇몇 언어에서는 정규표현식을 제공한다. 기본적으로 정규표현식은 “한줄모드”로 동작하며, 개발자들이 백엔드에서 특정 로직을 구현할시 ^와 $를 사용하여 문자의 시작과 끝을 정해놓는 경우가 존재한다. \...
Root Detection and Bypass이란? 루팅이란 안드로이드 시스템 권한을 얻는 과정 즉, 슈퍼 유저의 권한으로 하드웨어의 다양한 조작이 가능한 것 을 일컫는다. 안드로이드의 경우, 독립적으로 동작하므로, 루팅이 되지 않는다면 어플리케이션에서 할 수 있는 행위에 제...
Vulnerable Activity Components이란? 어플리케이션 구성요소중 기본적인 구성 단위중 하나로, 어플리케이션과 사용자간의 상호 작용에 필요한 기능을 제공하는 것을 액티비티 라고 한다. 이러한 액티비티는 AndroidManfiest.xml 파일에 태그로 선언...
💡 해당 다양한 인코딩을 통한 난독화 기법은 portswigger을 상당부분 참고하였습니다. 다양한 취약점을 식별하여 해당 취약점에 대한 Exploit을 진행 할 때 Payload에서 문자열 혹은 dot(.), / 등이 필터링 되어 있는 경우고 종종 다수 존재한다. 이 때 ...
SSRF 취약점이란? SSRF는 클라이언트측의 입력값을 위조시켜 위조된 HTTP 요청을 보내, 일반적으로 외부에서 접근이 불가능한 서버 내부망에 접근(Access) 하여, 데이터 유출 및 서버의 기밀성, 가용성, 무결성을 파괴한다. SSRF 의 경우 CSRF 공격과 유사하지...
SMTP란 무엇일까? SMTP란 단순 전자우편 전송 프로토콜로서 대부분의 Email 소프트웨어 들이 사용하는 프로토콜이다. 보통 웹 어플리케이션에서 메일전송과 관련된 기능 및 API 는 SMTP 프로토콜을 통해 이루어진다. SMTP 를 통한 Injection?? 웹페이지...
File Inclusion 취약점이란? 해당 취약점은 응용 프로그램에서 File을 불러 올 때 include를 사용하여 코드내에 Built 하거나 동적으로 파일을 포함하는 로직이 구현되어있을경우 일반적으로 나타나며, 다른 Path Traversal 과 같은 타 취약저믈과 연...
취약점 설명 CSRF 공격은 사용자의 의도와는 무관하게 공격자가 특정 웹 애플리케이션에 요청을 보낼 수 있게 하는 공격이며, 공격자가 사용자의 권한을 이용해 임의의 요청을 서버에 보낼 수 있습니다. 이로 인해 사용자가 의도하지 않은 작업이 수행될 수 있다. 송금 기...
취약점 설명 CSRF 공격은 사용자의 의도와는 무관하게 공격자가 특정 웹 애플리케이션에 요청을 보낼 수 있게 하는 공격이며, 공격자가 사용자의 권한을 이용해 임의의 요청을 서버에 보낼 수 있습니다. 이로 인해 사용자가 의도하지 않은 작업이 수행될 수 있다. 해당 유...
취약점 설명 CSRF 공격은 사용자의 의도와는 무관하게 공격자가 특정 웹 애플리케이션에 요청을 보낼 수 있게 하는 공격이며, 공격자가 사용자의 권한을 이용해 임의의 요청을 서버에 보낼 수 있습니다. 이로 인해 사용자가 의도하지 않은 작업이 수행될 수 있다. 비밀번호...
prototype 이란? Javascript는 프로토타입 기반 언어라 불리며, prototype이란 Javascript에서 객체를 상속하기 위해 사용되는 방식을 의미한다. 자바스크립트의 함수는 기본적으로 객체이며, 모든 함수는 자동으로 prototype 이라는 속성을 가지고...
Local Encryption issues이란? Local Encryption issues의 경우 데이터를 로컬 저장소(예를 들어, 하드 드라이브, SSD, 기기 내 저장소 등)에 암호화할 때 발생하는 문제이다. 어플리케이션 환경설정 정보, 외부 API 연동 및 인증 토큰 등...
취약점 설명 웹 어플리케이션에서 브라우저와 서버간에 데이터 전달시 XML을 사용할 경우 XML 파서의 잘못된 파싱방식으로 인해 외부 엔터티를 참조하게될 경우 발생할 수 있는 취약점이다. 해당 취약점은 XML 파서가 위치한곳으로 부터 공격이 이루어지기 때문에 SSRF, RCE등...
취약점 설명 SSRF는 클라이언트측의 입력값을 위조시켜 위조된 HTTP 요청을 보내, 일반적으로 외부에서 접근이 불가능한 서버 내부망에 접근(Access) 하여, 데이터 유출 및 서버의 기밀성, 가용성, 무결성을 파괴한다. SSRF 의 경우 CSRF 공격과 유사하지만, 공격이...
취약점 설명 LFI는 응용 프로그램에서 File을 불러올 때 include를 사용하여 코드 내에 Bulit 하거나 동적으로 파일을 포함하는 로직이 구현되어 있을 경우 일반적으로 나타 나며, LFI는 로컬 시스템의 파일을 불러올 수 있는 취약점이다. SQLiteMan...
취약점 설명 Restrict Folder Access 취약점은 특정 폴더나 디렉터리에 대한 접근 권한을 제한하는 보안 메커니즘에서 발생할 수 있는 취약점을 의미한다. 다양한 파일들이 존재하며, 권한이 있어야만 문서 폴더에 액세스 할 수 있다고 한다. 즉 /bWA...
취약점 설명 Restrict Device Access 취약점은 디지털 기기와 시스템에서 특정 디바이스나 네트워크 리소스에 대한 접근을 제한하는 데 사용되는 보안 메커니즘에 존재하는 취약점을 의미한다. 일부 인증된 디바이스만 접근할 수 있으며, 현재 접근 매체는 스...
취약점 설명 해당 취약점은 응용 프로그램에서 File을 불러 올 때 include를 사용하여 코드내에 Built 하거나 동적으로 파일을 포함하는 로직이 구현되어있을경우 일반적으로 나타나며, 다른 Path Traversal 과 같은 타 취약저믈과 연계될 수 있다. 이러한 Fil...
SSTI란 무엇인가? 웹 템플릿 엔진을 사용하는 웹 어플리케이션에서 일어나는 취약점으로, 웹 서버측에서 사용하는 웹 템플릿 엔진은 다양하다. 공격자는 웹 템플릿 엔진 구문을 사용하여, 웹 서버측에 페이로드를 삽입할 수 있다. SSTI 취약점은 나아가 RCE, SSRF 등으로...
Command Injection이란? Command Injection이란 사용자의 입력값을 파라미터로 받아 서버측 백엔드에서 운영체제 명령으로 전달되어 명령을 실행하고 다시 반환될 때 발생하는 취약점으로 해당 취약점이 조재할 경 우 대상 서버를 완전히 제어 및 무력화 할 수...
취약점 설명 해당 취약점은 웹 서버가 HTTP요청 헤더인 host 헤더를 전적으로 신뢰하고 있을 경우 발생하며, 일반적으로 웹 서버는 요청이 도착한 호스트를 확인하기 위해 host헤더를 사용하지만 이를 조작할 경우 악의적인 사이트로의 이동을 우도할 수 있다. 화면에...
취약점 설명 Directory Traversal 혹은 path traversal은 ./(현재 디렉토리) 또는 ../(상위 디렉토리로 이동)를 나타내는 문자들이 제대로 필터링되지 않아 파일 시스템 API로 전달되어, 허용된 디렉토리가 아닌 숨겨진 디렉토리 및 파일에 대한 무단 ...
취약점 설명 Directory Traversal 혹은 path traversal은 ./(현재 디렉토리) 또는 ../(상위 디렉토리로 이동)를 나타내는 문자들이 제대로 필터링되지 않아 파일 시스템 API로 전달되어, 허용된 디렉토리가 아닌 숨겨진 디렉토리 및 파일에 대한 무단 ...
Path Traversal 이란 무엇인가? ./(현재 디렉토리) 또는 ../(상위 디렉토리로 이동)를 나타내는 문자들이 제대로 필터링되지 않아 파일 시스템 API로 전달되어, 허용된 디렉토리가 아닌 숨겨진 디렉토리 및 파일에 대한 무단 access를 가능하게 하는 취약점이며...
Weak Authorization mechanism 이란? 직역하면 취약한 인증 메커니즘으로, 각각의 기능들에 대한 정상적인 인증 절차를 우회하여 비정상적인 방법으로 접근 권한을 취득할 수 있는 취약점이다. 즉, 모바일 앱의 백엔드 서버에 서비스 요청을 제출하여, 인증을 위...
취약점 설명 해당 시나리오의 취약점은 평문 및 sha-1과 같은 약한 해시 알고리즘을 통한 데이터 전송시 이를 크랙하여 전송 데이터 유출이 가능하게 된다. Low-Level 텍스트 파일에 계정을 입력하는 듯한 기능이 존재한다. 계정 정보 입력시 파일에 ...
취약점 설명 POODLE 취약점은 SSL3.0에서 발견된 보안 취약점으로, 중간자 공격을 통해 암호화된 통신을 해독할 수 있도록 하는 공격이다. 해당 웹 서버는 POODLE 취약점이 존재 한다고 한다. nmap -p443 --script ssl-poodle -s...
취약점 설명 Host Header Attack의 경우 웹 어플리케이션이 호스트 헤더를 신뢰하고 검증하지 않을 때 발생하며, 호스트 헤더는 클라이언트가 서버에 요청하는 도메인 이름을 나타낸다. 이로 인해, 사용자 데이터 유출, 세션 하이재킹, xss 등의 보안취약점이 발생할 수...
취약점 설명 Heartbleed 취약점은 OpenSSL 라이브러리에서 발생하는 보안 취약점으로, OpenSSL은 많은 웹 서버에서 ㅅ용되는 암호화 라이브러리 이다. 이는 https를 비롯 다양한 보안 프로토콜을 구현하는데 사용된다. Heartbeat Extension 라는 T...
취약점 설명 HTML5 Web Storge는 웹 브라우저에서 데이터를 클라이언트 측에 저장할 수 있는 기술이다. 보통 Web Storage는 로컬 스토리지와 세션 스토리지라는 두 개의 메커니즘이 존재하며, 각각 영구적으로 저장되거나 세션 중에만 유지되는 데이터를 제공한다. 이...
취약점 설명 해당 시나리오의 취약점은 HTTP 통신을 하는 과정에서 암호화되지 않아 평문으로 전송되어 악의적인 사용자가 중간에서 데이터를 도청할 수 있는 스니핑 취약점이다. Low-Level 일반적인 로그인 기능이 구현되어 있다. 희생자 PC에서 bWA...
취약점 설명 Base64는 암호화 방식이 아닌 인코딩, 디코딩 방식으로, 단 순 데이터 인코딩이다. 즉, 자체적인 보안 기능이 없으며, 누구나 쉽게 디코딩이 가능하다. 이 경우, 개인 정보 혹은 민감 정보를 Base64를 통해 인코딩 할 시 보안 위협으로 다가올 수 있다 중요...
취약점 설명 robots.txt 파일은 웹 크롤러에게 해당 웹 사이트의 클롤링 규칙을 알려주는 파일이다. 하지만 이러한 robtos.txt 파일이 노출될 경우 클롤링을 허용 및 거부하는 페이지가 노출되므로 다양한 경로가 노출될 수 있다. 즉, 악의적인 공격자에게 공격 표면을 ...
주의 해당 글에서 소개하는 기법, 및 사이트등을 이용하여 특정 사이트에 대한 공격 행위는 불법, 즉 범죄 행위입니다. 취약점 설명 오래된 백업 파일, 참조 파일, 디렉터리 등이 추측하기 쉬운 문자열로 되어 있을 경우, 부르트포싱을 통한 크랙이 가능하며, 디렉터리 리스팅이 이...
취약점 설명 SMTP는 전자 메일을 사용하는데 사용되는 프로토콜이다. 이 또한 에이전트와 클라이언트 사이의 통신을 담당 하며, 메시지를 수락하고 전달하는데 사용된다. 이러한 SMTP가 중간자 공격에 노출될 경우 도청, 메시지 조작, 주소 위조등의 보안 위협으로 이어질 수 있다...
취약점 설명 해당 취약점은 HTTP통신을 하게되면 평문으로 데이터를 주고 받게 되며, 이럴 경우 데이터 노출 및 ARP 스푸핑을 통해 스니핑 위험이 존재한다. HTTP를 통한 통신에서 로그인 기능이 구현되어 있다. 해당 실습을 위해 pc1(우분투) 에서 ...
취약점 설명 해당 시나리오는 CVE-2009-2692로 명명된 취약점을 이용한 로컬 권한 상승 취약점이다. 이는 net/socket.c의 sock_sendpage()에서 발생하는 NULL Pointer Derference취약점이다. 우선 로컬 권한 상승을 위해서는 ...
취약점 설명 WevDAV란 HTTP 프로토콜을 기반으로 하는 웹 서버와 클라이언트간의 파일 공유와 협업을 위한 프로토콜 및 기술이다. 이러한 WebDAB를 사용하면 웹 서버에서 파일을 read/write 및 폴더를 생성 삭제가 가능하다. 이러한 작업을 웹 브라우저나 WebDA...
취약점 설명 SNMP란 네트워크 장비나 시스템을 관리하고 감시하기 위한 프로토콜이며, 주로 네트워크 장비나 서버등과 같은 IT시스템에서 사용, SNMP를 통해 장비의 상태정보를 수집 및 설정을 변경할 수 있다. 또한 SNMP는 실제 장비나 시스템에서 실행되는 “에이전트” 데몬...
취약점 설명 FTP 서버의 구성이 안전하지 않다는 시나리오이며, FTP 는 파일 전송 프로토콜로 서버와 클라이언트 간에 전송하는데 사용되는 네트워크 프로토콜이다. 이러한 FTP 프로토콜의 대표적인 보안적 이슈는 “암호화 되지 않은 평문 전송으로 인한 중간자 공격, Anonym...
Flawed Broadcast Receivers Broadcast Receivers란 무엇인가? 애플리케이션의 4대 구성 단위중 하나로서 안드로이드 앱에서 발생하는 시스템 브로드캐스트 메시지를 수신하여 처리하는 구성 요소이다. 브로드캐스트 리시버는 안드로이드 앱의 다른 구...
취약점 설명 XML Bomb DoS는 XML을 이용하여 서버의 리소스를 과도하게 소모시켜 서비스를 마비시키는 DoS 공격의 일종이다. 이는 서버의 CPU 및 MEMORY 부하를 발생시킨다. 아파치 웹 서버가 동작 중이며, xml dos에 취약하다고 한다. ...
취약점 설명 HTTP 요청에서 Header와 Body부분을 구분하기 위해 header의 마지막 부분을 표시하여야 한다. 이 때 사용되는 것이 CRLF인데 이러한 CRLF를 2번 보내어 메시지의 Header의 마지막을 선언해야하지만, CRLF문자를 1번만 보내 empty lin...
취약점 설명 DoS공격중 하나인 SSL-Exhaustion은 SSL/TLS 프로토콜을 통한 서버의 리소스를 고갈시켜 서비스를 중단시키는 공격이다. 이러한 공격은 서버가 SSL/TLS 핸드셰이크를 처리하는 동안 새로운 연결을 처리할 수 없어 서비스를 중단시키는 점을 악용한다...
해당 취약점은 무엇인가? XSS 공격의 종류중 하나로서, XSS 공격을 방어하거 위해 만들어진 쿠키 속성 중 하나인 HTTPOnly 속성을 우회할 수 있는 기법이다. HTTPOnly?? HTTPOnly는 XSS 공격을 방지하기 위해 쿠키 값이 JavaScript를 통...
취약점 설명 DoS는 서비스 거부 공격으로, 대상 시스템에 대한 가용성을 무너뜨리는 공격이다. 대표적으로 대역폭 공격, 리소스 고갈, 프로토콜 공격, 공격자 자원 고갈등이 존재한다. 8080/8443 포트로 Nginx 웹 서버가 동작중이며, 해당 웹 서버는 chun...
취약점 설명 XSS 공격에 대한 대응 방안으로 HTTPOnly 쿠키가 존재한다. 이는 해당 사이트가 생성한 쿠키가 javascript로 읽히지 않도록 해주는 역할을 한다. 이는 XSS로 인한 세션 탈취를 방지한다. 클라이언트측에서 Request시 사용되는 메서드 ...
취약점 설명 해당 시나리오에서는 SOP 정책을 완화하기 위해 사용되는 CORS 적용이 잘 되어있는지 확인하는 시나리오이다. SOP란 서로 다른 출처 즉 다른 도메인에서의 공격을 방지하기 위한 웹 브라우저 보안 메커니즘이며, 다른 도메인의 경우 접근을 허용하지 않는다. 이 때 ...
취약점 설명 samba는 리눅스 혹은 윈도우 시스템에서 파일 및 프린터 공유를 위한 프로그램이다. 이 때 samba 서비스에 대한 잘못된 보안설정으로 서버에 존재하는 파엘 대한 접근이 가능하다고 한다. samba 서비스가 동작중인 거 같으며, 임의의 파일에 대한 읽...
해당 취약점은 무엇인가? IDOR은 간접 개체 참조를 나타내며, 어플리케이션을 사용하는 사용자가 직접 입력하는 값을 기반으로 특정 개체에 대한 직접적인 접근을 제공할 때 발생하는 취약점으로, 사용자가 일반적으로 접근할 수 없는 다른 사용자의 데이터나 개체를 access할 수 ...
Level - Low 사용자의 secret 값을 기본 default secret 값으로 변경하는 기능이 존재한다. <reset><login>bee</login><secret>Any bugs?</secret></r...
어떠한 티켓을 판매하는 기능이 구현되어 있다. 티켓 구매에 대한 개수 제한은 없으며, 한장당 15유료에 판매되고 있다. 구매시 즉시 구매가 되며, 15 유료가 자동으로 빠졌다고 되어 있다. ticket_quantity=1&ticket_price=15...
Level - Low 이전 xss 문제와 동일하게 특정 계정에 대한 secret값을 변경하는 부분이 존재한다. 해당 문제는 IDOR 취약점을 악용하는 문제이다. 수평적 권한 상승 및 변경을 통해 타인의 secret 값을 변경하는 듯 하다. test 계정으...
해당 문제는 https://tryhackme.com/r/room/ultratech1 에서 확인할 수 있습니다. UltraTech 시스템 모의 침투 수행 내용 정보 수집 robots.txt 및 sitemap 발견 restAPI사용을 통한 숨겨진 페이지 및 Comma...
phpmyadmin 내에 error.php 페이지의 BBcode에서 스크립트가 발생하는 취약점인 거 같다. CVE-2010-4480 으로 명명되어있다. 해당 취약점은 PhpMyAdmin 3.3.8.1 혹은 3.4.0-beta1 이전 버전에서 발생한다. BBc...
시간 날짜, 사용자의 ip, User-Agent 헤더의 냉용이 출력되는 걸 볼 수 있다. 이전 문제들과 동일하게 요청 헤더를 변조하면 스크립트가 실행되며 사용자의 접근 시간, ip, User-Agent 등의 값들으 서버측 데이터베이스에 저장 후 불러올 때 스크립트가 ...
좋아하는 영어를 추천하도록 되어 있다. /xss_stored_2.php?genre=action&form=like 따로 출력되는 문자는 없으며 Cookie 값에 추가되어 전송된다. 전송될 때 GET 형식으로 전송되며 GENRE 파라미터와 FORM 파...
시크릿 값(패스워드 힌드)를 변경하는 로직이 구현되어 있는 듯 하다. 입력값을 주고 변경을 하더라도 입력값이 페이지 내 혹은 응답값 내에 출력되지는 않는다. 위와 같이 로그인 실패시 패스워드 힌트에 대한 secret 값에 test를 주었다. ...
글쓰기 기능이 존재한다. 대표적인 Stored XSS 취약점이 발견되는 유형인 게시글 유형이다. 글을 쓰면 사용자의 입력값은 서버 데이터베이스에 저장되고 게시글을 볼 떄 데이터베이스에 저장되어 있는 데이터를 가져와 페이지 상에 출력하게 된다. 이 때 사...
SQLite의 관리자 페이지인 main.php 및 index.php 취약점을 악용한 xss취약점이다. CVE-2012-5105 으로 명명되어있다. 해당 취약점은 SQLLiteManager 1.2.4 에서 발생한다. SQLiteManager version ...
이전의 Referer 문제와 동일하게 User-Agent 헤더의 값이 페이지 내에 고스란히 출력되고 있다. 이 또한 Request 값을 가로채 요청 헤더의 값을 변조하면 스크립트가 실행된다. User-Agent: <script>alert(1)</s...
페이지 내에 Referer 헤더의 값이 고스란히 출력되고 있다. 버프스위트와 같은 도구를 사용하여 Request 값을 가로채 헤더 값을 변조하게 되면 스크립트가 발생한다. Referer: <script>alert(1)</script> ...
First name과 Last name 값에 사용자의 입력값을 받고있다. 두개의 사용자의 입력값을 합쳐 페이지 내에 출력되고 있다. <?php if(isset($_GET["form"]) && isset($_GET["first...
로그인 기능이 구현되어 있는 페이지이다. superhero 라는 유로 자격증명을 하라는 거 같지만, superhero 라는 유저는 존재하지 않는다. ’ 입력시 DBMS Error가 발생하게 된다. 해당 시나리오에서 sqli 취약점도 함께 존재한다. ...
해당 문제는 https://tryhackme.com/r/room/boilerctf2 에서 확인할 수 있습니다. Boiler CTF 시스템 모의 침투 수행 내용 정보 수집 joomla CMS 확인 추가 부르트포싱을 통한 _test 경로 확인 sar2html 사용...
Level - Low 영화 투표기능이 존재하며, 이름을 입력해야한다. 투표 가능한 영화 목록이 있으며. 입력한 이름은 상단에 출력된다. 일반적인 스크립트 입력시 문자열 그대로 출력된다. 투표 클릭시 Redirection 되는 페이지이다....
해당 문제는 https://tryhackme.com/r/room/dogcat 에서 확인할 수 있습니다. Dogcat 시스템 모의 침투 수행 내용 정보 수집 웹 서비스 내에 LFI 취약점 존재 access.log 파일 열람을 통한 log poisoning 공격 잘못된 ...
Level - Low data() 함수를 통한 사용자가 해당 페이지 접근시 실시간 시간을 알려준다. 해당 시나리오의 경우 data 함수와 eval() 함수를 사용한당. eval함수는 사용하기에 따라 매우 취약하게 작동할 수 있다. /bWAPP/xss_eval.p...
Level - Low 해당 페이지에서 bWAPP 라는 사용자가 따로 정의한 Custom Header 를 사용하는 듯 하다. GET /bWAPP/xss_custom_header.php HTTP/1.1 Host: 192.168.146.133 Cookie: PHPSESSID...
Level - Low go back라는 버튼이 존재. 해당 버튼을 누르면 이전 사이트로 Redirect 됨 <input type=button value="Go back" onClick="document.location.href='<?php echo iss...
해당 문제는 https://tryhackme.com/r/room/anonymous 에서 확인할 수 있습니다. Anonymous 시스템 모의 침투 수행 내용 정보 수집 ftp 서비스에 Anonymous 계정으로 접근가능 ftp 접속시 scripts 경로에 특정 기능...
Level - Low 입력 값은 JSON 형식으로 넘어가는 듯 함 <script> var JSONResponseString = '{"movies":[{"response":"HINT: our master really loves Marvel ...
Level - Low 이전 실습과 동일하게 JSON 형태의 검색 사이트가 존재한다. 해당 환경에서는 AJAX 를 사용하여 새로고침 없이 입력값이 즉시 반영되는 구조이다. 일반적인 스크립트 태그를 가지고 XSS는 통하지 않는다. <scrip...
해당 취약점은 무엇인가? 사용자의 입력값으 로그파일에 기록될 때 발생 할 수 있는 취약점으로 공격자가 로그 기록을 조작하여 데이터 탈취 및 서비스중단까지도 발생할 수 있다. 일어날 수 있는 피해는? 로그 항목 위조 : 임의로 삽입된 입력값이 로그파일에 삽입되어, ...
해당 취약점은 무엇인가? HTTP Authorization 요청 헤더는 클라이언트가 서버의 자격 증명을 제공하는데 사용된다. 즉 웹 어플리케이션에서의 리로스에 대한 인증을 하는데 주로 사용된다. 서버에서 401 Unauthorized 상태를 WWW-Authenti...
Level - Low 영화 검색기능이 존재한다. 이 떄 데이터의 요청과 응답이 AJAX-XML 형식으로 전달되는 듯 하다. HTTP/1.1 200 OK Date: Sun, 31 Mar 2024 12:58:47 GMT Server: Apache/2.2.8 (Ubunt...
First name과 Last name 파라미터로 넘어가는 사용자 입력값이 GET 형식이 아닌 POST 형식으로 넘어간다. firstname=test&lastname=test&form=submit burp suite를 통해 요청 패킷을 확인해보...
Level - Low 사용자의 성, 이름 입력구간이 존재하며, 입력 값은 URI 를 통해 GET 형식으로 전송된다. /bWAPP/xss_get.php?firstname=test&lastname=name&form=submit 그 후 사용자의 입...
Level - Low 위 두 사진을 보게되면 일반적인 로그인 기능에서 CAPTCHA 기능이 존재하는 걸 확인할 수 있다. 이 때 로그인 성공 및 실패 에 따라 CAPTCHA의 문자열은 랜덤한 문자열로 지속적으로 바뀌게 된다. 이럴 경우 BruteForce 공격이...
Level - Low 해당 시나리오는 약한 패스워드 정책으로 인한 문제를 다루는 것으로 추정된다. $login = "test"; switch($_COOKIE["security_level"]) 28 { 29 30 case "0" : ...
Level - Low 이전 시나리오의 내용들을 합친 시나리오라고 볼 수 있다. 각각의 Level 마다 점점 강한 세션관리를 통한 세션 처리가 이루어지는 듯 하다. Low Level 의 경우 이전과 동일하게 탈취한 세션을 통한 변조 후 해당 페이지 접근시정상적...
Level - Low (Mideum & Haigh 시나리오 없음) 해당 시나리오에서는 사용자의 세션 값이 URI에 그대로 노출되어 발생할 수 있는 취약점을 다룬 시나리오이다. 그림 1-2와 같이 URI 의 PHPSESSID 파라미터를 동해 GET 형식으로 ...
Level - Low 로그인 기능이 구현되어 있으며, 해당 시나리오는 부르트포스 및 사전대입공격을 사용하는 시나리오인듯 함 로그인 실패시 위 그림1-2와 같은 문자가 출력됨 로그인 시점에서 Intercept 를 통해 패킷을 잡은 후 Intruder...
Level - Low 간단한 로그아웃 기능이 구현되어 있음 해당 시나리오의 경우 “뒤로가기” 기능을 통해 이전 사용자의 세션을 가지고 다시금 로그인 상태로 돌아갈 수 있음. 성공적으로 로그 아웃되어 BWAPP 초기 화면으로 돌아왔다. “뒤로가기”...
Level - Low 이전 문제의 Http Only 와 문제 자체는 동일하지만, Http Only 헤더가 아닌 Secure 헤더에 대한 학습을 위한 문제이다. Secure 헤더란 SSL/TLS 을 사용한 HTTPS 프로토콜을 통해 전송되는 응답에만 쿠키를 포함...
Level - Low Cookies 버튼을 클릭시 아래 표에 쿠키 값이 출력 되며, here 버튼 클릭시 alert 창을 통해 쿠키 값이 출력 된다. 세션 값과 각각의 쿠키값을 보여준다. 해당 시나리오는 세션값을 탈취하는 시나리오로 예상되며, tes...
Level - Low 로그인 기능이 구현되어 있음 해당 시나리오의 경우 DB가 구성되어 있지 않거나, 웹 페이지 소스상에 로그인 정보가 고스란히 하드코딩 되어있는 경우를 나타냄 개발자의 실수를 통해 일어날 수 있음 해당 부분을 마우스를 통해 드래그하거나 ...
Level - Low 해당 페이지에 대한 접근이 거부되고 있다. 주어지는 힌트로는 URL을 검사하라고 한다. 해당 시나리오는 일반 사용자가 관리자 페이지에 접근할 수 있는 취약점으로 확인된다. https://192.168.146.133/bWAPP/smgmt_ad...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 검색 목록이 존재하며, 목록을 선택하여 검색하면 관련도딘 값들이 순차별로 나오는 것을 알 수 있다. 또한 데이터 전송 방식은 GET 형식으로 전송되는 것을 알 수...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 로그인 폼이 구현되어 있다. 해당 로그인 기능을 XML 을 통해 이루어지는 듯 하다. ’ (싱글쿼터) 입력시 페이지 상단에 XML Error가 발생하는 것을 ...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 사용자의 입력값을 받아 영화 제목과 매칭되는 기능인 듯 하다. 그에 따른 결과는 이메일로 전송된다는 문구가 함께 출력되어 있다. 여러 입력값 및 ‘(싱글쿼터)등을 삽입...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 해당 Any bugs? 버튼을 클릭해도 아무런 변화가 일어나지 않는다. Burp Suite 를 통해 요청값과 응답값 패킷을 잡아 확해보면 POST 형식의 XM...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low HTTP 요청 헤더의 User-Agent 값이 페이지상에 노출되고 있다. 출력되는 문구를 보면 IP 주소와 User-Agent 문자열을 가지고 데이터베이스에 로그인된다....
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 이전과 동일하지만 DBMS의 종류가 SQLite이다. 공격 방식은 동일하지만 문법을 SQLite로 하면 된다. users 라는 테이블 확인 test',(s...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low ‘(싱글 쿼터) 입력시 Error 발생 DBMS 의 종류가 SQLite 이다. union Based 로 방향을 잡았으며, 이전의 DBMS 들과의 문법이 상이하다. ...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low Select 기능을 통해 특정 값을 추출함 입력값을 전달할 수 있는 방안이 페이지상에 없어 Proxy Tool을 사용 입력값은 POST 형식으로 전송 m...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 게시글을 출력하는 기능이 존재 입력값은 POST 형식으로 전달됨 ‘(싱글 쿼터) 입력시 DBMS Error가 출력됨 Proxy Tool을 사용하여 입력...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low Login Form이 존재 ‘(싱글 쿼터) 입력시 DBMS Error가 발생 Error 은 발생하였으나, 일반적인 우회는 되지 않음. 검증 로직 1...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 일반적인 Login Form이 존재한다. ‘(싱글 쿼터) 입력을 통한 DBMS Error 유/무 확인시 Error 발생 일반적인 ‘ or 1=1– 와 같은...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 앞서 실습한 일반적인 Boolean Based SQLI 이다. 하지만 DBMS가 SQLIte 라는 점을 유의해야한다. SQLIte의 경우 타 DBMS 와 다른 SQL...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 검색창에 임의의 문자를 주고 전송하는 방식이 아닌 문자열 입력시 즉시 반영되는 AJAX 형태의 검색창이 존재 Ajax는 비동기식 javascript, X...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 사용자의 입력값이 DB 에 저장된 후 불러와 다시금 출력하는 듯 하다. 사용자의 입력값이 Entry에 입력되는 걸 확인 할 수 있다. 이럴 경우 보통 XSS ...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low ‘(싱글쿼터) 입력시 Error 는 발생 하지만 DBMS Error 와 같이 특정 정보를 출력하지는 않는다. 입력값을 참으로 만들면 “The movie exist...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low CVE-2014-3794는 Dryupal 7에서 발견된 SQL 인젝션 취약점으로, Drupal 웹 사이트의 데이터베이스에 원격으로 액세스할 수 있다. 이는 views_qu...
unshadow 란 무엇인가? 일반적인 리눅스 시스템 상에서 passwd 파일과 shadow파일을 합쳐준다. 이를 통해 john과 같은 Password Cracking Tool을 통한 Hash Cracking이 가능하다. 기본적인 사용 방법 unshadow /etc/p...
keepass2john란 무엇인가? keePass 데이터베이스 파일(.kdbx)을 John the Ripper가 사용할 수 있는 형식으로 변환해준다. 이를 통해 Keepass 데이터베이스에서 추출한 해시를 John the Ripper 로 사용하영 하여 Password Cra...
Cewl이란? 특정 사이트 내에서 Password cracking에 사용되는 사전 단어 목록을 만들어 내는 도구이다. 웹 사이트에서 특정한 패턴이나 단어를 추출하여 사용자 정의 단어목록을 생성한다. 설치 방법 sudo apt install cewl 기본적인 사...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low Select 기능이 존재하고 영화 제목을 질의할 수 있다. 또한 해당 질의의 응답으로 게시판 형식이 출력된다. 출력되는 레코드는 하나의 열만 출력하는 듯 하다. GET...
검증 로직 <?php if(isset($_REQUEST["message"])) { // If the security level is not MEDIUM or HIGH if($_COOKIE["security_level"] != "1" && $_C...
검증 로직 Low Level 에서는 보안 대책이 적용되어 있지 않다. Level - Low 검색 기능이 존재하며, GET 방식으로 전송된다. ‘ (싱글쿼터) 입력을 통해 Error 유/무를 체크해보았다. Error 가 발생되며 DBMS Error 가...
검증 로직 function commandi($data) { switch($_COOKIE["security_level"]) { case "0" : $data = no_check($data); break; ...
해당 취약점은 무엇인가? log Poisoning은 웹 어플리케이션에서 발생하는 취약점으로, LFI 취약점이 존재하며, Log 파일을 열람이 가능할 때 발생하며, log injection과 LFI 취약점이 선행되어야 한다. 이를 통해 RCE 까지로 이어질 수 있는 취약점이다....
해당 취약점은 무엇인가? Redirection 후 PHP가 지속적으로 실행되는 취약점이라고 볼 수 있으며, 해당 취약점은 특정 웹 사이트에서 Redirection을 처리하는 방식의 오류로 발생된다. 해당 취약점으로 인한 피해는? 인증 및 인가 되지 않는 페이지에 대...
해당 문제는 https://tryhackme.com/room/archangel 에서 확인할 수 있습니다. Archangel 시스템 모의 침투 수행 내용 정보 수집 웹 서버 디렉터리중 /test.php 경로 발견 /test.php 에서 LFI 취약점 발견 Apa...