반응형

WEB hacking 79

[비박스(bWAPP)] - Insecure DOR (Order Tickets)

취약한 접근 통제 리스크의 사례 - URL이나 파라미터를 조작하여 다른 사용자의 리소스에 접근하거나 허용되지 않은 기능을 실행할 수 있는 경우 - 적절한 인증 및 인가 과정을 거치지 않고 관리자 페이지에 접근할 수 있는 경우 - 디렉터리 트래버설 취약점과 같이 웹 디렉터리 경로를 벗어난 호스트 내부 경로의 리소스에 접근할 수 있는 경우 안전하지 않은 직접 객체 참조(IDOR 공격) 실습 IDOR공격은 공격자가 요청 메시지의 URL이나 파라미터를 변경하여 정상적으로는 허용되지 않은 기능을 실행하거나 다른 사용자의 리소스에 접근할 수 있는 공격이다. bWAPP A4 항목에 Insecure DOR (Order Tickets)를 선택하여 실습을 진행한다. 이 실습 페이지는 사용자가 티켓의 수를 입력하여 입력한 ..

[비박스(bWAPP)] - Base64 인코딩

Base64 인코딩이란? base64 인코딩이란 이진 테이터를 아스키 텍스트 문자열로 변환하는 방법이다. base64 인코딩은 대표적으로 전자우편 또는 HTTP 메시지를 전송할 때 사용하는데, 파일 전송과 같이 텍스트로 표현할 수 없는 바이너리 데이터를 전송할 때 base64로 인코딩 하여 전송한다. base64인코딩 과정은 각각 8비트로 구성된 3개의 바이트를 6비트씩 쪼개어 4로 나누는 방식으로 진행된다. 디코딩 과정은 인코딩 과정과 반대로 6비트로 구성된 4개의 바이트를 8비트씩 쪼개어 3등분한다. 비박스에서 base64에 관련한 문제를 풀어보도록 하겠다. 문제 풀이 해당 페이지 내용은 secret은 암호화된 쿠키로 저장되어 있다고 한다. 힌트에는 암호화된 쿠키를 복호화하라는 것 같다. 그림 2와 ..

[비박스(bWAPP)] - Text Files (Accounts)

이 페이지는 회원가입 페이지이다. id와 password를 입력하고 Insert 버튼을 누른다. id와 password를 hello로 설정을 하였다. 이 페이지는 실습 페이지 이므로 계정정보가 담겨져있는 파일을 다운로드 받을 수 있다. 한번 다운로드 받아 보겠다. 그림 3번 처럼 패스워드가 평문으로 저장되어있다. 만약 패스워드가 평문으로 저장되어 있을 경우 해커한테 공격을 당했을 때 평문으로 된 패스워드에 접근이 가능하게 된다. 따라서 패스워드를 평문으로 저장할것이 아니라 해시로 저장을 해야한다.

[비박스(bWAPP)] - HTML5 Web Storage (Secret), XSS - Reflected (GET)

내용을 보면 로그인 이름과 시크릿이 html5에 저장되어 있다고한다. 힌트는 XSS(크로스 사이트 스크립트)를 통해 알아 내는 문제이다. 스토리지를 확인 해 보면 로그인 아이디는 bee이고 시크릿은 any bug?로 정보를 알려주고 있다. 크로스 사이트 스크립트 공격을 시도하기 위해 bWAPP 메뉴 중 A3에 XSS - reflected(get) 메뉴를 선택한 후 공격을 시도해 보겠다. first name에 기본적인 자바스크립트를 작성하여 넣어보겠다. 스크립트가 작동한 것을 확인 하였으니 로컬스토리지에 있는 내용을 읽어 보겠다. localStorage.getItem() 자바스크립트 함수를 이용하여 로컬 스토리지에 저장되어 있는 내용을 읽었고, 인자로 secret을 입력함으로써 secret 키의 값을 읽을..

[비박스(bWAPP)] - Clear Text HTTP (Credentials)

tcpdump 명령어 tcpdump를 이용하여 네트워크 상에 있는 패킷들을 캡쳐할 수 있다. tcpdump명령어 tcpdump -ni eth0 -A -s 0 tcp port 80 tcpdump 사용된 명령어 옵션 -n : IP 주소나 포트 숫자를 호스트 네임이나 서비스 이름으로 변경하지 않고 숫자 그대로 표시 -i : 인터페이스를 지정하는 옵션, -i eth0을 입력하면 eth0 인터페이스를 통해 전달되는 트래픽을 스니핑함 -A : 아스키 형태의 문자열로 출력 -s : 표시할 내용의 길이를 지정, -s 0 일경우 길이제한 없이 출력 tcp : TCP 프로토콜만 출력하도록 필터링 port 80 : 80번 포트에 대해서만 출력하도록 필터링 칼리리눅스에서 tcpdump명령어를 실행한 후, bWAPP 메뉴 A6..

[DVWA] - File Upload(파일업로드) Low 단계

File Upload(파일업로드) 파일 업로드 취약점은 파일을 업로드하는 기능에 적절한 보안 대책이 적용되어 있지 않을 때 발생한다. 그림 1에서 Browse를 통하여 올릴 파일을 설정할 수 있고 Upload를 통하여 우리가 선택한 파일을 올릴 수 있다. 우리는 웹쉘을 올려 쉘 명령어를 실행시킬 수 있도록 하겠다. webshell.php 공격자가 입력 폼에 명령어를 입력하면 cmd 파라미터 ($_GET['cmd'])를 통해 전달되고, system() 함수를 이용하여 명령어를 실행한다. webshell.php 파일을 업로드하는데 성공을 하였고 업로드 경로 주소를 알려주고있다. 업로드 주소는 ../../hackable/uploads/ 디렉토리 아래에 존재한다. 우리의 경로는 현재 http://192.168...

WEB hacking/DVWA 2022.10.16

[DVWA] - File Inclusion(파일 인클루전)공격 Low 단계

File Inclusion(파일 인클루전) 파일 인클루전 공격은 주로 PHP 애플리케이션을 대상으로 발생한다. PHP는 인클루드라는 기능을 제공하는데, 인클루드 기능은 include라는 함수를 이용하여 다른 파일을 소스코드에 직접 포함시킬 수 있도록 하는 기능이다. 이를 통해 공격자는 본인이 원하는 파일을 인클루드시킬 수 있다. 파일 인클루전 공격은 공격자가 인클루드할 수 있는 파일이 각각 호스트 내부의 파일인지 외부의 파일인지에 따라 로컬 파일 인클루전, 리모트 파일 인클루전으로 구분이 된다. 리모트 파일 인클루전(RFI) POC 코드 이 코드는 간단하게 /etc/passwd 파일의 내용을 출력하도록 요청하는 system()함수를 호출한다. 해당 URL 주소 창을 보면 ?page=include.php ..

WEB hacking/DVWA 2022.10.15

[DVWA] - Cross Site Request Forgery (CSRF) Low 단계

Cross Site Request Forgery (CSRF) CSRF 취약점의 공격방법은 공격자가 피싱을 통하여 공격 대상이 되는 사용자에게 악성 링크를 누르게 하고, 악성 링크를 클릭하면 사용자가 자신도 모르게 자기가 로그인 되어있는 웹 사이트의 어떤 기능을 동작하게 하는 것이다. CSRF 공격은 사용자가 웹 사이트에 정상적으로 접속하고 로그인되어 있는 상태여야지만 공격이 가능하다. 이 페이지는 사용자의 패스워드를 변경하는 사이트이다. admin의 패스워드를 test로 한번 바꾸고 버프 스위트의 프록시 기능을 이용하여 확인하겠다. 그림 2번을 보면 GET요청으로 password_new, password_conf 파라미터에 우리가 입력한 test가 전송이되고 Change 파라미터에는 Change라는 값이..

WEB hacking/DVWA 2022.10.14

[DVWA] - Stored Cross Site Scripting (XSS) Low 단계

Stored Cross Site Scripting (XSS) 방명록을 작성하기전에 공격자 웹서버 apache서버를 구동하고 접근 로그를 모니터링 한다. message에 스크립트를 삽입하려는데 글자 수가 제한되어있다. 하지만 이 제한은 클라이언트 측에서 검사하도록 되어 있기 때문에 쉽게 우회가 가능하다. maxlength가 50으로 제한되어 있다. 우리는 넉넉하게 500으로 값을 수정하고 스크립트를 입력하겠다. 위와 같이 스크립트를 작성하고 방명록을 등록하겠다. 글을 저장하는 순간 다음과 같이 스크립트가 실행된다. 이 페이지의 경우 방명록에 글을 저장하는 순간 글의 내용을 다시 표시해주기 때문에, 리플렉티드 크로스 사이트 스크립팅 취약점과 같이 글을 저장할 때 스크립트가 실행된다. 로그파일을 확인해보자. ..

WEB hacking/DVWA 2022.10.13

[DVWA] - Insecure CAPTCHA 설정

Insecure CAPTCHA 초기 설정 reCAPTCHA key가 Missing되어 있으므로 키를 받급받아야한다. www.google.com/recaptcha/admin 로그인 - Google 계정 이메일 또는 휴대전화 accounts.google.com 위 사이트에서 키를 발급 받을 수 있다. /var/www/dvwa/config/config.inc.php 에서 캡챠를 추가해주면된다. 싱클 쿼터 사이에 키를 입력하면 된다. 키를 입력한 후 다시 페이지에 들어가면 잘 실행된다.

WEB hacking/DVWA 2022.10.12
반응형