반응형

webgoat 7

[Web Hacking] WebGoat Blind XXE 개념

※ Blind XXE 어떤 경우에도 공격이 성공하더라도 결과가 보이지 않는 경우가 있다. 혹은 읽으려고 하는 자료에 XML 파서에서 오류를 일으키는 문자가 포함되어 있을 수 있다. 예시를 통해 알아보자. 여기서는 외부 DTD를 하나 참조하는데 이것은 공격자의 서버(WebWolf)에서 통제가 가능한 특징이 있다. 당신은 공격자로서, WebWolf 서버를 통제할 수 있다.(동일한 기능을 할 수 있다면 굳이 WebWolf가 아니여도 상관없다) 한 가지 예를 들면, 이 서버의 랜딩 페이지인 "http://192.168.219.100:9090/landing"에 연결을 시도하면 클라이언트의 흔적을 남길 수도 있다. 그럼 어떻게 이를 활용하여 XXE 공격을 할 수 있을지 고민해보자. "attack.dtd"라는 파일을..

[Web Hacking] WebGoat XXE Modern REST framework 문제풀이

※ Modern REST framework 최신의 REST 프레임워크를 사용하는 서버의 경우, 개발자가 생각하지 못한 형태의 데이터(요청 메시지)를 받아들이는 경우도 있다. 이에 따라 JSON 엔드포인트(서버에서 JSON 형식의 데이터를 받아 처리하는 부분)는 XXE 공격에 취약할 수 있다. 해당 문제에서는 이 프레임워크로 서버용 웹 어플리케이션을 개발하는 경우, 클라이언트와 JSON 객체의 형식으로 메시지를 주고 받을 수 있고, 개발 의도와 무관하게 클라이언트가 JSON 객체가 아닌 형태로 요청 메시지를 보내도 서버 측에서는 그것을 받아들일 수 있다는 정도로 생각하면 된다. 문제의 힌트를 열어보게 되면 content type를 살펴보라고 나와있다. Content-Type을 살펴보면 application..

[Web Hacking] WebGoat SQL Injection(advanced) 5 문제풀이

※ 선행 학습 필요 개념 Blind SQL Injection Blind SQL injection은 데이터베이스에 참 또는 거짓 질문을하고 응용 프로그램 응답에 따라 답을 결정하는 SQL 주입 공격 유형입니다. 이 공격은 웹 응용 프로그램이 일반적인 오류 메시지를 표시하도록 구성되었지만 SQL 삽입에 취약한 코드를 완화하지 않은 경우에 종종 사용됩니다. 공격 유형 1) Boolean based Blind SQL Injection [ 외부 입력값 ] 제목검색: hello' AND 1=1-- (유효한 검색단어와 항상 참이되는 조건 부여) [결과] 게시판 검색됨 --> 참(true)이으로 간주 [ 외부 입력값 ] 제목검색: hello' AND 1=2-- (유효한 검색단어와 항상 거짓이 되는 조건 부여) [결과]..

[Web Hacking] WebGoat SQL Injection(advanced) 3 문제풀이

※ 선행 학습 필요 개념 Union SQL Injection 2개 이상의 쿼리를 요청하여 결과를 얻는 UNION 연산자를 이용해 SQL Injection 공격을 가하는 것을 말하며 공격자는 이 연산자를 이용하여 원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻어낸다. 공격이 가능한 전제 조건은 컬럼의 수가 같아야 하며 데이터 형식도 같아야 한다. step 1. 컬럼 갯수 알아내기 갯수를 알아내기 위해 앞의 쿼리문에 이어서 union select 1, %23 으로 쓴다면 에러가 뜰 것이다. 그러나 union select 1, 2, %23 => union select 1, 2, 3, %23 ... 순으로 컬럼의 갯수를 늘려가다보면 에러가 나지 않는 때가 나올때, 즉 컬럼의 갯수가 일치할 때를 알 수 있..

[Web Hacking] WebGoat SQL Injection 문제풀이

해당 문제를 번역해보면 다음과 같다 Q. 아래 양식을 사용하여 users 테이블에서 모든 사용자를 검색하십시오. 전체 목록을 얻기 위해 특정 사용자 이름을 알 필요는 없지만 'Smith'를 사용하여 한 사용자의 데이터를 볼 수 있습니다. 문제에서 Smith라는 단서를 줬다. SQL 쿼리문을 참으로 만들어 Injection을 시도해본다. Smith' or 1=1 -- 를 대입하면 쿼리가 무조건 참이된다. Get Account Info 버튼을 클릭하게 되면 테이블 전체를 응답값으로 받게 된다. 그 다음 문제인 Numeric SQL Injection을 살펴보자. Q. 아래 양식을 사용하여 users 테이블에서 모든 사용자를 검색하십시오. 전체 목록을 얻기 위해 특정 사용자 이름을 알 필요는 없지만 '101'을..

[Web Hacking] CentOS8 WebGoat 설치

WebGoat란 OWASP에서 제공되는 웹 보안 취약성을 내포한 웹 어플리케이션이다. XSS, Injection, Backdoor 등 각 웹 보안 취약성을 이해하고 공격 방법을 이해할 수 있도록 만들어져 있으며, 각 단계별로 풀어나가면서 웹 취약성에 대해 이해하고 대응할 수 있도록 도움을 준다. 설치순서 1. CentOS 시스템 업데이트 $ sudo yum install epel-release $ sudo yum update -y && sudo reboot 2. WebGoat 다운 wget https://github.com/WebGoat/WebGoat/releases/download/7.1/webgoat-container-7.1-exec.jar Build software better, together G..

반응형