본문 바로가기

4-5. 2022-2 심화 스터디/버그 헌팅과 모의 해킹

(6)
[2022.11.26] SSRF 보호되어 있는 글입니다.
[2022.11.19] 원격코드실행(RCE) 원격 코드 실행(RCE) 원격 코드 실행이란? 취약한 애플리케이션이 사용자의 입력 값을 검증하지 않고 사용할 때 발생한다. 원격 코드 실행 공격 종류 1. 셀 명령 실행 -> 애플리케이션이 검증되지 않은 셸 명령을 실행할 때 RCE 수행 가능 www..com이 ping 명령으로 원격 서버를 사용할 수 있는지 확인이 가능하 도록 설계되어있다고 가정 www..com?domain=google.com 을 입력하면 사이트의 PHP코드는 다음과 같이 처리. domain 변수가 검증되지 않고 그대로 shell_exec에 전달되어 명령을 실행. 매개변수의 값으로 ‘google.com’을 줬을 때 우리가 예상하는 결과는 아래와 같지만, 리눅스 명령어에서는 세미콜론(;) 입력 시 여러 명령어를 동시에 실행할 수 있음. g..
[2022.11.12] sql injection + Oauth 취약점 SQL injection SQL이란? 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적 의 프로그래밍 언어 SQL 인젝션 공격의 원리 1. 공격자가 sql 구문을 주입 2. 사용자 입력 값과 미완성된 Sql 구문이 합쳐져 완성된 sql문으로 작동 3. 데이터베이스는 이 SQL 구문을 정상이라고 인식하고 요구하는 값을 반환 별도의 입력값 검증을 거치지 않아 취약점이 발생 사용자가 url?name=peter에 방문한 이후 MySQL 명령을 민들기 위한 서버의 PHP 코드 $_GET[]을 사용해 URL 파라미터에서 name 값에 액세스, 이 값을 $name에 저장 입력 값을 검증하지 않고 $query 변수로 전달 쿼리는 $query 변수를 PHP 함수 mysql_query에 전달해 실..
[2022.10.08] 메모리 취약점 문제 풀이 - LOB HackerSchool의 Load of BOF 문제를 해결했습니다. 취약점 위주로 Write-up 해봅시다! Gremlin #include #include #include int main(int argc, char *argv[]) { char buffer[256]; if(argc < 2){ printf("argv error\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } argv[1]을 통해 인자를 전달받고 있으며, strcpy를 이용해 이를 buffer에 복사하고 출력하는 프로그램입니다. 이때, strcpy 함수가 취약합니다. argv[1]의 입력값 길이를 검증하지 않고 있어 buffer의 크기인 256byte를 초과하는 만큼의 데..
[2022.10.1] 메모리 취약점 메모리 취약점 애플리케이션의 메모리 관리 버그를 공격해 의도치 않은 동작을 발생시켜 자신의 명령을 주입하고 실행할 수 있다. 주로 개발자가 직접 애플리케이션의 메모를 관리하는 프로그래밍 언어에서 주로 발생한다.(C, C++) 개발자는 동적으로 동작을 수행하기 전 적합한 양의 메모리가 할당되었는지 확인해야 한다. Ruby, Python, PHP, Java 등의 언어는 상대적으로 메모리 버그에 덜 취약하다. 버퍼 오버플로 애플리케이션이 할당된 메모리(버퍼)에 비해 지나치게 큰 데이터를 쓰는 버그 개발자가 변수에 저장할 데이터의 크기를 확인하지 않았거나, 필요한 데이터 크기를 잘못 계산했을 때 발생한다. 일반적으로 strcpy(), memcpy()와 같이 메모리를 변경하는 함수에서 발생하나, malloc(),..
[2022.09.17] 크로스 사이트 스크립팅(xss) XSS 개념정리 xss: 웹 사이트가 특정 문자의 입력값 검증을 하지 않아 브라우저가 악성 자바스크립트를 실행할 때마다 발생. 취약점을 유발하는 문자: 큰따옴표, 작은 따옴표, 꺾쇠괄호() 사이트에서 문자를 올바르게 검증하는 경우: HTML 엔터키로 렌더링됨. ex) 큰따옴표(”)를 " 또는 " 또는 " ex2) " 작은따옴표(’)를 &apos 또는 &#39; 올바르게 검증을 하지 않는 경우: HTML과 자바스크립트로 웹 페이지 구조를 정의할 수 있음 ex) 꺾쇠를 제거하지 않는다면 를 삽입하여 페이로드를 주입할 수 있다. → 입력값 검증을 하지 않는 웹사이트에서 해당 자바스크립트를 실행. 동일 출처 정책(SOP): document가 다른 출처에서 가져온 자원과 상호작용하는 방법을 제한. ex) www...