정보보안 108

[68] IT 비전공자 [dreamhack][wargame.kr] strcmp문제 풀기

" . $FLAG .""; exit(); } else { echo "Wrong password.."; } }?> password : view-source do not brute force! 브루트포스는 막혔다.   `strcmp` 함수는 두 문자열을 비교하는 함수로, 두 문자열이 동일한지 여부를 비교하는 데 사용됩니다. `strcmp`는 **대소문자 구분** 및 **길이가 다른 경우**를 처리하며, 두 문자열이 완전히 동일하면 0을 반환합니다. 그런데 `strcmp` 함수는 **문자열이 일치할 때까지 비교를 진행하는 방식**이기 때문에 일부 취약점이 있을 수 있습니다. ### 취약점 분석 PHP의 `strcmp` 함수는 **정확..

[67] IT 비전공자 [dreamhack][wargame.kr] login filtering문제 풀기

get source 클릭했더니 php스크립트가 떴다 "; echo "FLAG : ".$FLAG; } }else{ echo "wrong.."; } }?>IDPW get source 이 PHP 코드는 사용자 로그인 정보를 처리하고, 특정 조건에 맞는 사용자가 로그인 시 **`$FLAG`**를 출력하는 시스템입니다. 이 코드에서의 핵심은 로그인 시 **`id`**와 **`ps`**를 이용해 데이터베이스에서 정보를 조회하는 부분과, 로그인 후 특정 계정이 차단되어 있는 경우입니다. 아래에 분석과 함께 플래그를 볼 수 있는 방법을 설명하겠습니다. ### 코드 분석 1. **`$_GET['view-source']`**:    - URL에 `?view-source` 파라미터가 포함되어 있으면 현재 파..

[66] IT 비전공자 [dreamhack]off_by_one_001문제 풀기

이 정보는 **Ubuntu 16.04** 운영체제에서 특정 바이너리 파일의 보안 구성 상태를 나타냅니다. 각 보안 기능의 의미를 설명하겠습니다. ### 분석 1. **Arch: i386-32-little**    - **설명**: 바이너리가 **32비트 아키텍처**로 컴파일되었으며, **리틀 엔디안** 형식으로 데이터가 저장됩니다.    - **영향**: 32비트 아키텍처는 64비트에 비해 보안 및 주소 공간 보호가 제한적일 수 있습니다. 2. **RELRO: Partial RELRO**    - **설명**: **RELRO**(Relocation Read-Only)는 **프로그램의 특정 메모리 영역을 읽기 전용으로 설정하여 취약점을 악용하는 것을 어렵게 하는 보호 기법**입니다.    - **Parti..

[65] IT 비전공자 [dreamhack]cmd_center문제 풀기

소스코드다 #include #include #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}int main(){ char cmd_ip[256] = "ifconfig"; int dummy; char center_name[24]; init(); printf("Center name: "); read(0, center_name, 100); if( !strncmp(cmd_ip, "ifconfig", 8)) { system(cmd_ip); } else { printf("Something is wrong!\n"); } exit(0);} 이 프로그램의 코드를 분석하고, 잠재적으로 `cmd_ip` 명령을 수정하여 플래..

[63] IT 비전공자 [dreamhack]CSRF Advanced문제 풀기

CSRF(Cross-Site Request Forgery), 또는 사이트 간 요청 위조는 사용자가 신뢰하는 웹 애플리케이션에 사용자의 의도와 관계없이 악의적인 요청을 보내도록 유도하는 웹 보안 취약점입니다. 이를 악용하면 공격자는 사용자의 권한으로 애플리케이션에서 원하지 않는 작업을 수행하게 할 수 있습니다. ### 1. **CSRF의 원리**    - CSRF 공격은 보통 사용자가 애플리케이션에 로그인한 상태에서 발생합니다. 공격자는 사용자가 특정 사이트에 방문할 때, 그 사용자의 브라우저가 자동으로 신뢰할 수 있는 사이트에 요청을 보내게 합니다.    - 예를 들어 사용자가 인터넷 뱅킹 사이트에 로그인해 있는 상태에서 악성 사이트를 방문하면, 해당 사이트가 사용자의 세션을 이용해 돈을 송금하는 요청을..

[62] IT 비전공자 [dreamhack]Basic_Crypto1문제 풀기

Roman Emperor's Cipher는 일반적으로 시저 암호(Caesar Cipher)라고도 불리는 암호 기법으로, 로마 황제 줄리어스 시저가 사용했다고 전해집니다. 이 암호는 알파벳의 각 문자를 일정한 숫자만큼 이동시켜 암호화하는 방식입니다. 예를 들어, 시저 암호에서 키가 3이라면 A는 D로, B는 E로 변환됩니다. 암호화된 메시지를 해독하려면 반대로 이동하여 원래의 문자를 복구할 수 있습니다. ### 해독 과정 암호문이 **"EDVLF FUBSWR GUHDPKDFN"**라면, 시저 암호로 암호화된 것으로 가정하고 이를 해독해보겠습니다. 일반적으로 시저 암호는 오른쪽으로 3칸씩 이동하는 방식을 사용합니다. 따라서 복호화할 때는 각 문자를 왼쪽으로 3칸씩 이동시키면 됩니다. 1. 각 단어를 나누어 ..

[61] IT 비전공자 [dreamhack]sint문제 풀기

이 정보는 **Ubuntu 16.04** 환경에서 실행되는 32비트(i386) 바이너리의 보안 설정을 나타냅니다. 각 항목의 의미와 보안에 미치는 영향을 설명하겠습니다. 1. **Arch: i386-32-little**    - 이 바이너리는 32비트 **i386** 아키텍처를 사용하며, **little-endian** 방식을 채택하고 있습니다. little-endian은 데이터의 가장 작은 바이트가 메모리의 가장 낮은 주소에 저장되는 형식입니다. 2. **RELRO: Partial RELRO**    - **Partial RELRO**는 런타임 중 일부 메모리 영역을 읽기 전용으로 설정하는 보호 기능입니다.    - 일부 전역 오프셋 테이블(GOT)이 읽기 전용으로 설정되지만, 함수 포인터와 같은 중요..

[60] IT 비전공자 [dreamhack]hook문제 풀기

60번째 문제 드가자~ 국비 합격 연락 받았다 하하. 즐겁게 공부해보자고~ 이 설명은 **Ubuntu 16.04** 환경에서 실행 중인 특정 바이너리(실행 파일)의 보안 설정을 나타냅니다. 각 설정은 프로그램의 보안성을 높이는 기능으로, 주요 요소를 분석해보겠습니다. 1. **Arch: amd64-64-little** - **Architecture (Arch)**는 바이너리가 64비트 AMD64 아키텍처에서 실행되고 있으며, **little-endian** 방식을 사용함을 나타냅니다. 여기서 **little-endian**은 데이터의 가장 작은 바이트가 메모리의 가장 낮은 주소에 저장되는 형식을 말합니다. 2. **RELRO: Full RELRO** - **RELRO**(Relocation Read-On..

[59] IT 비전공자 [dreamhack]sql injection bypass WAF문제 풀기

**SQL Injection Bypass WAF**는 **SQL 인젝션(SQL Injection)** 공격을 시도할 때 **웹 애플리케이션 방화벽(WAF)**을 우회하여 공격을 성공시키는 기술입니다. WAF는 SQL 인젝션과 같은 공격을 차단하기 위해 입력된 SQL 문을 검사하여 악의적인 패턴을 탐지하고 차단합니다. 그러나 공격자는 WAF의 필터링 규칙을 우회할 수 있는 다양한 기법을 사용해 SQL 인젝션을 성공시킬 수 있습니다. ### SQL Injection Bypass WAF 기법과 취약점 설명 다양한 SQL 인젝션 우회 방법을 사용하여 WAF의 탐지 규칙을 피할 수 있으며, 몇 가지 일반적인 기법은 다음과 같습니다: 1. **공백 우회**:    - WAF가 공백을 기준으로 필터링할 경우, 공백 ..