Information Security ˗ˋˏ ♡ ˎˊ˗
반응형

Security/WebHacking 25

[bWAPP] 운영체제 명령 실행 / OS Command Injection 풀이

bWAPP를 이용하여 OS Command Injection(level: low) 문제 풀기 https://t-okk.tistory.com/208 운영체제 명령 실행 취약점에 대한 자세한 설명 해당 문제를 풀기 위해서는 '운영체제 명령 실행' 취약점에 대해서 알고 문제를 풀어야 한다. 먼저 bWAPP를 접속 및 로그인을 하여 OS Command Injection 문제를 선택하고 HACK! 공격자가 도메인 주소를 입력하면 아래와 같은 화면이 출력되는 것을 볼 수 있다. * DNS lookup: DNS 정보를 조회 www.nsa.gov;cat /etc/passwd 우리는 앞에서 배웠던 운영체제 명령어와 리눅스에서 사용하는 다중 명령어를 이용해 도메인에 대한 정보뿐만 아니라 서버에 대한 정보도 얻어보려고 한다...

Security/WebHacking 2023.01.05

[웹취약점] 운영체제 명령 실행(OS Command Execution)

운영체제 명령 실행(OS Command Execution) 의미와 점검방법 개념 운영체제 명령 실행이란 웹에서 시스템 명령어인 system(), exec() 등을 실행시킬 수 있는 환경을 제공한 대상에게 실행되는 취약점이다. 사용자 입력값에 대한 필터링이 제대로 이루어지지 않을 때, 공격자가 원하는 운영체제 시스템 명령어 실행이 가능하다. 부적절하게 권한이 변경되거나 시스템 동작에 악영향을 줄 수 있다. 리눅스 다중 명령어 명령 ; 명령 명령어 순차적으로 한 번에 실행한다. 명령 && 명령 명령어 순차적으로 실행하지만, 명령어 실행에 실패할 경우 뒤에 오는 명령어는 실행하지 않는다. 명령 || 명령 명령어 순차적으로 실행하지만, 명령어 실행에 성공하면 뒤에 오는 명령어는 실행하지 않는다. 명령 | 명령 ..

Security/WebHacking 2023.01.05

[bWAPP] 칼리리눅스(Kali Linux)에 bWAPP 설치 / bee-box 설치

bWAPP(buggy Web Application) 웹 취약점을 공격할 수 있는 오픈소스 웹 애플리케이션으로 100여 개가 넘는 취약점이 존재한다. bee-box bWAPP의 설치와 설정이 되어있어 설치 없이 바로 활용할 수 있도록 만들어진 가상머신으로 구성되어 있다. 사용하는 방법은 두 가지가 있다. bee-box를 이용하는 방법이 있고 칼리 리눅스에 bWAPP를 설치하여 사용하는 방법이 있다. 첫 번째 방법: bee-box를 이용하는 방법 설치파일 https://sourceforge.net/projects/bwapp/files/bee-box/ bWAPP - Browse /bee-box at SourceForge.net Manage your IT operations | Monday.com monday...

Security/WebHacking 2023.01.05

[웹취약점] 포맷스트링(Format String) 기본지식 및 공격방법

포맷스트링 취약점에 대한 기본적인 지식과 공격방법 정의 포맷스트링(Format String): 사용하는 함수에 대해 어떤 형식 또는 형태를 지정해주는 문자열 의미 char str[10] = "World!"; printf("Hello, %s\n", str); //1번 코드 printf(str); //2번 코드 Hello, World! //1번코드 World! //2번코드 포맷 인자 아래와 같은 포맷스트링 인자는 포맷 함수의 변환 형태를 말한다. 인자 입력 타입 출력 타입 %d 값 정수형 10진수 %u 값 양의 정수 10진수 %x 값 16진수 %c 값 문자 값 %f 값 실수형 상수 %s 포인터 문자 스트링 %n 포인터 지금까지 출력한 바이트(byte) 수 지시자 앞까지의 길이를 저장 printf 함수 동작방..

Security/WebHacking 2023.01.04

[WebGoat] Buffer Overflows / Off-by-One Overflows 풀이

실행환경: burf suite, WebGoat Buffer Overflows 정의 공격 공격 유형 대응방안 버퍼 오버플로우 스택(Stack)이나 힙(Heap)에 할당되는 메모리에 문자열 등이 저장될 때 최초 정의된 메모리의 크기를 초과하여 문자열을 저장하는 경우 예기치 않은 결과가 발생하는 보안약점 1) ASLR(주소 공간 배치 난수화) 메모리 공격 방어하기 위해 주소 공간 배치를 난수화 ​ 2) Stack Guard (스택 가드) ​RET, 복귀 주소 근처에 '카나리아'라는 특수 문자열 넣어 방어 3) Stack Shield (스택 쉴드) 함수 시작 시 복귀 주소를 Global RET에 저장하여 함수 종료 시 저장된 값과 스택의 RET 값을 비교 문제 VIP 손님이 쓰는 방은 어떤 방인지 찾는다. Sh..

Security/WebHacking 2022.12.28

[HackCTF Web] 가위바위보 (파일 업로드 취약점)

ctf.j0n9hyun.xyz/challenges#%EA%B0%80%EC%9C%84%EB%B0%94%EC%9C%84%EB%B3%B4 HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 문제 가위바위보 그림을 클릭하면 게임이 시작된다. 선택하면 게임이 시작되면서 이겼는지, 비겼는지 그리고 졌는지 결과가 나오는 페이지이다. 그리고 게임하는 페이지만 있는 것이 아니라 이름과 프로필 사진을 변경할 수 있는 페이지도 존재한다. 해당 페이지 이름은 settings.php이다. 풀이 지금 설정되어있는 이름은 kaa으로 설정되어있다. 정상적인 페이지에서 어떻게 문제를 해결할 수 있는가 생각해보았을때, 가장 먼저 소스코드를 확인하는 것이었다. 메인페이지에..

Security/WebHacking 2021.02.03

[HackCTF Web] Input Check (X-Forwarded-For 헤더)

ctf.j0n9hyun.xyz/challenges#Home HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 문제 풀이 처음에는 해당 IP주소를 크롬 브라우저를 통해서 들어가 보았을 때 큰 힌트를 얻을 수 없었다. 이후에는 문제 페이지의 소스코드를 살펴보았다. 해당 소스코드에서도 힌트를 찾을 수 없었다. 문제를 보면 강조된 머리말이라는 단어에 집중하기로 했다. IP 주소와 머리말을 살펴보았을 때, Header를 생각할 수 있었고 구글에 다양한 방식으로 검색을 해봤다. 검색창에 http header ip를 입력했을 때, X-Forwarded-For(XFF)가 나오는 것을 볼 수 있었다. 아래에서 자세히 살펴보겠지만, 간략하게 X-Forwa..

Security/WebHacking 2021.02.03

[HackCTF Web] Input Check

문제 풀이 입력값을 flag를 입력했을 때는 "No Hack~"이라는 문자열 출력되는 것을 볼 수 있다. 다른 입력값을 입력했을때는 문제와 같은 화면이 뜬다. 또 다른 힌트를 찾기 위해서 페이지의 소스코드를 확인해보았다. 다음과 같은 힌트를 확인할 수 있었다. "Hint : Input Command Check is Array Type" 라고 적혀있었기 때문에 입력의 형태를 배열로 바꿔주었더니 flag 값이 화면에 나타났다. ctf.j0n9hyun.xyz:2033/?text[]=flag

Security/WebHacking 2021.02.03

[HackCTF Web] Time (is_numeric 함수)

문제 풀이 코드를 살펴보았을 때, 입력하는 문자열은 숫자만 가능하고 최소 5184000보다 커야 하고 최대 7776000보다 작아야 한다. else문에서 sleep 함수가 있어서 5184001을 입력하면 5184001초 뒤에 flag가 출력되기 때문에 기다리는 것으로 해결해서는 안된다. 일단 is_numeric함수에 대해서 살펴보았다. 간단하게 살펴보면, is_numeric 함수는 지정한 파라미터가 숫자인지 아닌지 확인하는 함수이다. 함수에 대해 살펴보다가 취약점이 존재한다는 것을 알게 되었다. is_numeric 함수를 살펴보면 정수형을 포함해, 지수 표현까지도 숫자로 인식한다고 한다. 5184001을 지수로 바꿔서 in_numeric 함숫값으로 들어가고, sleep 함수는 int형으로 형 변환이 되면..

Security/WebHacking 2021.02.01

[WebGoat] Numeric SQL injection 풀이

실습 환경: BurfSuite, WebGoat 문제 공격자는 날씨 데이터를 볼 수 있다. 모든 지역 날씨 데이터를 표시하는 SQL 문자열을 삽입하여 공격을 시도한다. 풀이 처음에는 지역 기상 관측소를 콜롬비아로 설정하여 Go! 버튼을 클릭해보았다. 해당 결과를 보았을 때, 콜롬비아는 101이라는 번호로 설정되어 있는 것을 볼 수 있었다. 여기에서 BurfSuite를 사용하여 해당 구문을 변경할 수 있고, F12를 눌렀을 때 나오는 HTML 코드를 수정하여 모든 지역의 날씨 데이터를 확인할 수 있었다. 변경 후 실행 결과 모든 데이터를 확인할 수 있다. 결과

Security/WebHacking 2020.09.10
반응형