2025 KS한국고용정보 해킹 사건 정리
Security Issue
사건 개요최근 4월말 SKT Telecom 해킹 사건 이후 얼마 되지않아 또 한번 ks한국고용정보(콜센터 도급 운영 전문업체)에서 대규모 해킹으로 인한 인사 데이터가 유출되는 사고가 발생했다.해당 피해 사건의 공격 과정은 공격자(해커)가 기업의 내부 계정을 탈취하기해 악성코드를 심어놓았다.KS한국고용정보의 공식 도메인 관리자 계정이 LummaC2 인포스틸러 악성코드에 감염되어 계정정보가 탈취된 정황이 확인되었다. 해당 악성코드로 인해 관리자 PC에 저장된 세션 토큰, 브라우저 자동저장 정보등을 빼내 공격자에게 전송되게 된다.이를 통해 관리자의 아이디와 비밀번호가 유출된다.사건 피해관리자 계정을 탈취한 공격자(해커)는 KS한국고용정보의 내부 인사관리 시스템에 접속하였다.이로 인해 시스템에 저장되어 있던 ..
Content Security Policy(CSP) Bypass
Web/Web Hacking Techniques
CSP란 무엇인가?Content Security Policy 란 XSS , CSRF, Click Jacking와 같은 공격들을 완화하는 것을 목표로 만들어진, 브라우저 보안 메커니즘이며, HTTP 응답 헤어이다. 또한 메타태그를 통해 적용할 수도 있다. 이는 페이지가 특정 출처에서의 리소스를 제한하고 페이지가 다른 페이지에 의해 구성될 수 있는 여부를 제한하는 방식이다. CSP 형식Content-Security-Policy: ; META 태그를 활용한 CSP 적용HTTP 헤더를 활용한 CSP 적용Content-Security-Policy: policyCSP를 활용한 ExampleContent-Security-Policy: ; 위와 같은 형식으로 CSP를 적용할 수 있으며, 아래의 예시와 같이 사용된다...
PHP Functuion (mysql_real_escape_string OR Magic Quotes) Bypass
Web/Web Hacking Techniques
두 함수는 무슨 역할을 하는 함수인가?두 함수의 공톰점은 PHP에서 사용되는 함수이며, 주로 SQL Injection 을 방지하기 위해 사용되는 함수이다. 쉽게 설명해서 입력값에 ‘(싱글쿼터), “(더블쿼터), (역슬래쉬), 등등 악의적인 쿼리로 이어질 수 있는 입력값이 들어오면 이스케이프 문자인 (역슬래쉬)를 자동으로 붙여 공격을 방지한다. mysql_real_escape_string 함수의 경우 PHP 7.0.0 버전 이전에 사용되었으며, 이후 버전에서는 사용되지 않으며, 7.5.0 이후의 버전부터는 완전히 삭제되었다. 또한 Magic Quotes 함수 또한 PHP 5.3.0 버전부터 비활성화 되어 5.4.0 버전 이후에 완전 제거 되었다.Bypass입력값 앞에 자동으로 \가 생성되지만, 이 때 \앞..
PHP Type Juggling Magic Hash
Web/Web Hacking Techniques
Type Juggling 이란?PHP는 Python, Javascript와 같은 언어와 동일하게 동적 언어이다. 이는 프로그램이 실행되는 동안 변수 유형을 검사하게되는데, PHP에는 Type Juggling라는 기능이 존재한다. 다양한 유형의 변수를 비교하는 동안 PHP는 공통적이고 비교 가능한 유형으로 변환시킨다. 즉 정수 7과 문자열”7”을 비교할 때 7 == “7” 은 True를 반환하게 된다. 다른 경우로 “7 apple” == 7 이 또한 True를 반환하게된다. 이는 == 를 통한 비교를 수행하기 떄문에 발생하는 취약점이다. PHP 에서는 두 값을 비교하는 방식으로 == 와 === 이 존재한다. 위 그림을 보게 되면, == 방식을 사용하여 비교하는 경우매우 느슨하게 두 값을 비교하며, 다양한 ..
PHP strcmp() Vulnability
Web/Web Hacking Techniques
strcmp() 함수란?두 문자를 비교하여, 그 결과를 반환해주는 함수이다. string1이 string2보다 작으면 음수를 반환하고 string1이 string2와 같으면 0을 반환한다. string1이 string2보다 크면 양수를 반환하게된다.int strcmp(string1, string2); Returns -1 if string1 Returns 0 if string1 === string2Returns +1 if string1 > string2 와 같이 동작한다.취약점이 발생하는 구간if (strcmp($_POST['passwd']), '$checkpass') == 0){ login()} 위와 같이 login 함수를 호출하기 전에 if 조건이 수행된다고 가정해보자.POST 방식으로 입력 받은 패스..
언어별 취약 시스템 명령어
Web/Web Hacking Techniques
Ruby & Perl두 언어의 경우 파일 및 하위 프로세스의 I/O를 제공하는 open 함수가 존재한다.File.open("example.txt", "r") do |file| contents = file.read puts contentsend[Perl]open(my $file_handle, ") { print $line;}close($file_handle); 만약 첫 번째 문자가 |(파이프라인)일 경우 pipe_open 함수에서 처리된다. 해당 함수는 새로운 프로세스를 생성하므로, 임의 명령어를 실행시킬 수 있다. rb_io_s_binred, rb_io_open, rb_is_s_read를 사용하는 IO.read, IO.bindread 두 함수를 사용하더라도 전달된ㄴ 인자에 따라 프로세스를 실행하..
Privilege Escalation Using LXD_LXC Group Assignment
System/System Hacking Techniques
LXD/LXC란 무엇인가?lxc리눅스 컨테이너 기술의 초기 형태로, 프로세스와 자원을 격리하여 가벼운 가상화 환경을 제공하는데 사용되며, 이를 통해 머신의 여러 인스턴스를 운영할 수 있다.현재로서는, 개발 및 테스트 환경에서 다양한 리눅스 배포판 및 특정 소프트웨어의 버전 테스트에 사용되며, 여러 서비스를 단일 호스트에서 격리하여 운영할 수 있다.lxdlxc를 기반으로 현대적인 시스템 컨테이너 매니저로서, lxc의 상위 레벨 도구이다.RSET API를 통해 컨테이너 관리 자동화 및 스크립트화 할 수 있으며, 다양한 네트워크 설정을 지원하고 이미지 서버를 통해 다양한 리눅스 배포판 이미지를 다운로드하고 사용할 수 있다.현재로서는 개발 테스트, 어플리케이션 배포, 격리된 호스팅 서비스, 클라우드 환경에서의 ..
Ruby-regular-expression(newline)[\n]
Web/Web Hacking Techniques
Ruby를 포함한 몇몇 언어에서는 정규표현식을 제공한다. 기본적으로 정규표현식은 "한줄모드:로 동작하며, 개발자들이 백엔드에서 특정 로직을 구현할시 ^와 $를 사용하여 문자의 시작과 끝을 정해놓는 경우가 존재한다. \n(newline) 문자는 개행을 나타내며, 해당 문자가 존재할 경우, 물리적으로 여러 줄로 나누게 된다. 이 때 한줄 모드로 검증을 수행하는 정규표현식 검사를 우회할 수 있게 된다.^[0-9a-z ]+$/i 와같이 특수문자를 배제하여 웹 취약점을 차단하려 하여도, a\n 와 같이 우회하여 특수문자가 삽입이 가능해진다. 혹은, url인코딩을 통해 a%5c%6e%3c%24%3d%20%3e와 같이 사용할 수 있다.즉, 개행 문자(\n)를 사용하면 정규 표현식의 ^와 $가 전체 문자열이 아니라 각..