
TryHackMe라는 사이트에서 웹해킹을 위한 Pen Test 문제를 풀어볼까 한다.영어로 되어있고 첫 웹해킹이라 이것저것 찾아봐야할 것들이 많겠지만 차근차근 진행해보자.하나의 문제에는 수행해야할 과제나 주제가 존재한다. 해당 과제를 수행하거나 학습하는 것으로 공부를

Neighbour 문제에서는 IP주소를 URL로 주고 로그인 페이지를 통과해 플래그를 찾아야 한다.머신에 들어가면 firefox에서 url로 접근해보자.로그인 화면이 떴고 게스트 계정을 사용하기 위해 Ctrl+U 를 누르면html 소스코드가 등장하는데, 34라인에 gu

느려터진 TryHackMe 내의 리눅스 플랫폼으로 연결해 문제를 풀기는 쉽지 않다.VPN을 연결해서 최대한 빠른 연결 상태를 마련해야한다.우상단에 있는 Access에 들어가면 해당 화면이 나오는데 Download configuration file을 클릭해서 AU-Reg

웹 해킹의 기본적인 기술과 이론적인 기초를 다지려고 한다.대표적인 웹 애플리케이션의 취약점을 학습하고 테스트 도메인에서 직접 공격해본다.여러가지 기술과 취약점을 나열하고 분석해보자.이제 Penetration Tester로서 웹사이트 혹은 웹 애플리케이션을 검토해보면,

Inspector 개발자도구

Content 컨텐츠를 웹 애플리케이션에서 얘기하자면 파일, 이미지, 백업파일, 상호작용 기능 등 여러가지가 있을 것이다. 그렇게 쉽게 확인하고 상호작용할 수 있는 컨텐츠가 아니라, 웹 애플리케이션 보안에서 다루는 컨텐츠를 말하자면 바로 보이지 않는 공개적 접근 의도가

\-> 직역으로는 비안전 직접 객체 참조, 부적절 인가라고 표현한다.IDOR은 접근 권한 취약점의 한 유형이다. 웹 서버가 사용자 제공에 의한 입력 (파일, 데이터, 문서 등)을 검색할 때 발생할 수 있고, 입력 데이터에 너무 많은 신뢰나 유저 리퀘스트를 받을 때 서버

Local File Incluision (LFI), Remote File Inclusion (RFI), Directory Traversal 등 다양한 File Inclusion (이하 FI) 취약점과 취약점 발견 시 위험과 해결 방안에 대해서 알아보자.일부 시나리오에서

LFI 공격은 개발자의 보안인식 부족이 발생 이유인 경우가 많다.PHP의 몇몇 함수는 애플리케이션이 취약해지는 경우가 종종 있는데, ASP, JSP, Node.js도 마찬가지이다. LFI는 경로 탐색과 유사한 콘셉을 가진다.위 PHP 코드는 URL 파라미터인 lang을

RFI는 취약한 애플리케이션에 원격 파일을 포함하도록 한다.LFI처럼 RFI는 사용자의 입력을 부적절하게 다듬어서 공격자가 외부 URL을 include 함수에 삽입하도록 하는 경우에 발생하는데, allow_url_fopen 옵션이 활성화돼있어야 한다.RFI 취약점은 공

File Inclusion에 관한 Challange 중 하나를 풀어보려고 한다. 플래그 1,2,3을 찾는 것은 성공했으나 마지막 문제를 푸는 것은 포스팅과 함께 하려고 한다. 학습한 과정을 따라가면서 여러 방법을 시도해 플래그를 얻어보자.

Server Side Request Forgery, 이하 SSRF는 공격자가 취약한 애플리케이션에서 서버 대신 내부 혹은 외부 리소스에 리퀘스트를 보내게 만드는 웹 취약점이다. 데이터 노출, 내부 시스템에 비허가 접근, 혹은 서비스 중단을 야기할 수 있다.이 단계에서는

SSRF 시나리오로 문제를 풀어보자. Acme IT Support 웹사이트에서 새로운 엔드포인트가 발견됐고, 추가된 기능을 살펴보자./private에는 IP주소로 컨텐츠를 볼 수 없다는 메세지를 표시하고/customers/new-account-page에 고객의 아바타를

XSS로 잘 알려진 Cross-site Scripting은 JS 코드를 의도적으로 다른 사용자가 실행하도록 삽입하는 Injection 공격이다.JS에 대한 전문적 지식은 없지만 이번에는 XSS유형과 XSS 페이로드의 생성방법, 필터 우회를 위해 페이로드를 수정하는 방법

페이로드는 다른 사용자의 브라우저에서 실행하거나 웹 사이트의 취약점을 증명하기 위한 Proof of Concept(PoC)로 실행하는 JS 코드이다.JS 코드를 타겟 웹 사이트에서 실행할 수 있음을 증명하기 위해서 JS alert를 띄우는 것부터 세션에서 정보를 추출해

한 시나리오를 통해서 Blind XSS 취약점을 알아보자.유저 test의 email로 test@test.com을 만들고 로그인했다.support ticket 탭에서 제목과 내용을 test로 생성해보자.새로운 티켓이 생성되고 id와 제목, 내용, 일시가 적혀있다.내용이

시스템에서 발생하는 이벤트의 타이밍이 프로그램의 동작과 결과에 영향을 미치는 상황을 말한다.공학에서 말하는 정의는 이러하고,CS에서는 OS내의 공유 리소스를 둘 이상의 스레드 혹은 프로세스가 읽기, 쓰기를 하면서 서로 경쟁하는 상황이라고 할 수 있다.여러 스레드에 의해

먼저 웹 애플리케이션에서 경쟁 조건이 어떻게 일어나는지 보자.웹 애플리케이션은 Client-Server Model을 따르는데, 간단하게 아래와 같다.Client : 서비스를 위해 리퀘스트를 만드는 프로그램이나 애플리케이션 ex) 웹 서버로부터 리퀘스트한 웹 페이지를 받
경쟁 조건을 탐지하는 것은 어려울 수 있다.특정 행동을 반복하는 것을 직접 로그를 확인하는 것이 아닌 이상, 대부분의 행동은 눈에 띄지 않을 가능성이 높다.하지만 그 반복되는 행동이 취약점을 악용하는 데 사용될 수 있다는 것을 생각한다면,,경쟁 조건이 발생하는 취약점을
학습한 내용을 바탕으로 Race를 발생시켜 악용해보자. 각 유저의 정보로 로그인해서 계정 중 하나의 계좌를 1000달러 이상으로 만들면 된다. 4621 유저는 100달러를 가지고 있고 두 유저에게 송금할 수 있다. 5달러를 보내고자 하니 0.25달러의 수수료가

명령어 삽입이라는 의미의 Command Injection은 애플리케이션 내에서 원격으로 코드를 실행할 수 있어 원격 코드 실행(Remote Code Execution, RCE)으로도 불린다.명령어 삽입은 애플리케이션이 사용자의 장치에서 실행되는 것과 동일한 권한을 가지

프로그래밍 언어에서는 잠재적으로 위험한 함수나 라이브러리의 사용을 최소화하는 기능이나 가이드가 존재하고, 사용자의 입력에 의존하지 않고 입력을 필터링하는 것과 같이 명령어 삽입을 방지하는 방법이 있다.PHP에서 쉘을 통해 명령을 실행하려면 운영체제와 상호작용해야 하는

SQLi라고도 불리는 SQL 삽입 공격은 웹 애플리케이션 데이터베이스 서버에서 공격자가 쿼리를 실행시켜 데이터를 탈취하는 공격이다.데이터베이스와 SQL에 대해서 짧게 알아보자.데이터베이스는 DBMS(Database Management System)에 의해 제어되는 조직

지난 포스팅에서 In-Band SQL Injection 유형의 취약점을 이야기했는데, 총 3가지의 유형을 이야기하고자 한다. In-Band SQLi, Blind SQLi, Out-of-Band SQLi의 유형 중 In-Band SQLi에 대해서 먼저 이야기해보자.가장

Blind SQLi 블라인드 타입의 SQLi는 인밴드 타입 SQLi와 다르게 공격의 결과를 화면에서 직접 확인할 수 없다. 오류 메세지가 비활성화되어 쿼리문이 성공했는지 피드백이 없지만 인젝션 자체는 여전히 작동할 때 일어날 수 있다. 몇 가지 블라인드 인젝션의 시

시간 기반 블라인드 SQL 인젝션은 boolean 기반 인젝션과 유사하다.리퀘스트는 같지만, 쿼리가 맞았는지, 틀렸는지에 대한 시각적인 지표가 없고 쿼리의 완료 시간에 대한 정보만 있다.자주 쓰였던 UNION명령어와 함께 SLEEP(x) 같은 내장 함수를 사용하면 알

대역 외 SQL 인젝션이라고도 할 수 있다.데이터베이스 서버의 어떤 기능이 활성화돼있거나 애플리케이션 비즈니스 로직 상 SQL 쿼리 결과에 기반해서어떤 종류의 외부 네트워크 호출을 수행하는 경우에 가능한 SQLi이다.위 특징 덕분에 자주 사용되지는 않는다.공격자의 통신

Burp Suite 웹 애플리케이션의 보안 테스팅 프레임워크인 Burp Suite에 대한 기초를 이해해보자 물론 이전 Room에서 종종 Burp Suite의 사용이 있었지만, 이론적인 내용과 실질적으로 사용하는 방법에 대해서 자세하게 알아보자. What Is Bur

Burp Suite Repeater Repeater(이하 리피터)를 우리말로 뭐라고 할 수 있을까? 재전송 정도로 바꿀 수 있을 것 같다. 말 그대로 가로챈 요청을 원하는 타겟에 수정하거나 그대로 재전송할 수 있는 도구이다. Proxy에서 캡처한 요청을 필요에 따
Intruder Intruder(이하 인트루더)는 퍼징(fuzzing) 도구로, 요청을 수정하고 입력값으로 반복 테스트를 가능하게 한다. 프록시에서 캡처한 요청을 사용해 설정한 규칙에 따라서 값을 조금씩 변경해 여러 요청을 보낼 수 있다. 인트루더는 브루트-포스(B
OWASP OWASP(Open Worldwide Application Security Project)는 이전 포스팅에서도 종종 등장했던 개방형 웹 애플리케이션 보안 프로젝트이다. 개발자와 관리자, 보안 전문가 등의 웹 보안 위협 인식을 제고하도록 표준화된 가이드라인

나머지 5개의 취약점에 대해서 얘기해보자.취약하고 오래된 요소라는 다소 직관적인 취약점은 생각보다 쉽게 발견된다.예를 들어, 한 회사가 워드프레스(WordPress)를 긴 기간 동안 업데이트하지 않았고, WPScan같은 도구를 사용해 워드프레스의 버전이 4.6이라는 것