| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- dreamhack
- 문제풀이
- 프로그래머스
- 드림핵
- 중앙값구하기
- 파이썬
- OSI 7계층
- 나머지구하기
- 웹
- XAMPP설치
- 아파치
- webhacking
- XAMPP
- 피자나눠먹기3
- PHP 개발환경
- 리눅스
- sql_injection
- web
- 리눅스마스터2급
- XSS
- php
- 더 메뉴
- 피자나눠먹기1
- 리눅스마스터
- 짝수는싫어요
- 네트워크
- 피자나눠먹기2
- 웹해킹
- phpreg
- visualcode
- Today
- Total
목록전체 글 (45)
이것저것
프로그램은 어떻게 실행이 되는가C언어로 프로그램을 작성했다고 해서 바로 실행할 수 있는 것은 아니다. 우리가 작성한 소스 코드는 사람이 이해하기 쉬운 형태이기 때문에 CPU가 바로 실행할 수 없다. 그래서 소스 코드를 CPU가 실행할 수 있는 형태로 차례대로 변환하는 과정이 필요한데, 이것이 프로그램의 빌드 과정이다.전체적인 순서는 다음과 같다..c↓전처리↓.i↓컴파일↓.s↓어셈블↓.o↓링크↓.exe 전처리가장 먼저 전처리(Preprocessing)가 진행된다. 예를 들어 다음과 같은 코드가 있다.#include int main() { printf("Hello"); return 0;} 여기서 #include처럼 # 으로 시작하는 전처리 지시문을 처리하고, #define 같은 매크로나 조건부 컴..
컴퓨터는 크게 3가지로 구성되어 있다. CPU, 메모리, 디스크 CPUCPU(중앙처리장치)는 컴퓨터에서 실제 연산과 명령어 처리를 담당하는 핵심 장치이다. 핵심 개념역할 : 프로그램의 명령어를 해석하고 실행하는 컴퓨터는 두뇌 역할클럭(Clock) : CPU 속도는 헤르츠(Hz) 단위의 클럭 수로 표현되며, 1초에 몇 번의 명령어 사이클을처리할 수 있는지를 나타냄 오버클럭(Overclock)제조사가 설정한 기본 클럭보다 강제로더 높여 성능을 끌어올리는 것처리 속도는 빨라지지만, 발열 및 전력 소모가 늘고 CPU에 과부화가 걸릴 위험이 있음 CPU와 다른 구성요소의 관계CPU는 메모리에서 명령어와 데이터를 읽어와 처리하고, 결과를 다시 메모리나 디스크에 저장한다. 즉, CPU 단독으로 동작하는 게 아니라 메..
문제 설명어딘가 이상한 로그인 서비스입니다.SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다.chatGPT와 함께 풀어보세요!문제 화면문제 코드 분석로그인은 아래 코드에서 처리된다.userlevel = request.form.get('userlevel')res = query_db(f"select * from users where userlevel='{userlevel}'") 사용자가 입력한 userlevel 값이 SQL문에 그대로 삽입된다.예를 들어 0을 입력하면 실제 서버에서는 다음과 같은 SQL이 실행된다.SELECT * FROM users WHERE userlevel='0' 하지만 입력값을 조작하면 원하는 SQL 구문을 삽입할 수 있다...
문제 설명로그인 서비스입니다.SQL Injection 취약점을 통해 플래그를 획득하세요.플래그는 flag.txt, FLAG 변수에 있습니다.플래그의 형식은 DH{...} 입니다.문제 화면 문제 코드 분석로그인 기능은 아래 코드에서 처리된다.res = query_db(f'select * from users where userid="{userid}" and userpassword="{userpassword}"') 사용자가 입력한 userid 와 userpassword 값이 그대로 SQL 쿼리에 삽입되는 것을 확인할 수 있다.예를 들어 아래와 같이 입력하면userid = adminuserpassword = admin 실제로는 다음과 같은 SQL이 실행된다.select * from users where user..
문제 설명php로 작성된 페이지입니다.알맞은 Nickname과 Password를 입력하면 Step 2로 넘어갈 수 있습니다.Step 2에서 system() 함수를 이용하여 플래그를 획득하세요.플래그는 ../dream/flag.txt에 위치합니다.플래그의 형식은 DH{...} 입니다.문제 화면문제 코드 분석로그인 기능은 아래 코드에서 처리된다.$name = preg_replace("/nyang/i", "", $input_name);$pw = preg_replace("/\d*\@\d{2,3}(31)+[^0-8\"]\!/", "d4y0r50ng", $input_pw);if ($name === "dnyang0310" && $pw === "d4y0r50ng+1+13") { 사용자가 입력한 input_name 과 ..
인터넷에서 데이터가 출발지에서 목적지까지 전달되려면, 중간의 라우터들이 "이 패킷을 다음에 어디로 보낼지"를 끊임없이 결정해야 합니다. 이 결정을 내리는 규칙이 바로 라우팅 프로토콜입니다.이 글에서는 대표적인 두 라우팅 프로토콜인 OSPF와 BGP가 각각 왜 등장했는지, 어떤 원리로 동작하는지, 그리고 실무에서 왜 지금까지도 표준으로 쓰이는지를 정리합니다.1. 라우팅 프로토콜이 왜 필요한가라우터가 딱 2~3대뿐이라면 관리자가 직접 "이 목적지는 이 경로로 가라"고 하나하나 수동으로 설정(Static Routing)해도 됩니다. 하지만 네트워크가 수십, 수백, 수천 대의 라우터로 커지면 문제가 생깁니다.라우터가 늘어날 때마다 모든 경로 정보를 수동으로 갱신해야 함회선 장애가 발생해도 관리자가 직접 알아채고..
문제 설명리눅스 명령어를 실행하는 웹 서비스가 작동하고 있습니다.해당 웹 서비스의 코드가 첨부파일로 주어집니다. flag.txt 파일을 찾아 출력하여 플래그를 획득하세요!문제 화면문제 코드 분석app.py를 확인하면 사용자가 입력한 값이 아래 코드에 그대로 삽입되는 것을 확인할 수 있다.user_input = request.form.get('user_input')cmd = f'echo $({user_input})'사용자가 입력한 값은 $( ) 안에 들어가며 쉘 명령어로 실행된다.예를 들어 입력창에 아래와 같이 입력하면ls실제로 서버에서는 다음 명령이 실행된다.echo $(ls)즉 사용자가 원하는 리눅스 명령어를 실행할 수 있는 Command Injection 취약점이 존재한다.파일 목록 확인먼저 입력창에..
문제 설명Not Friendly service... Can you switching the command? 서비스가 불친절하네요... 명령어를 바꿔주실 수 있나요?문제 화면 문제 코드 분석로그인 기능은 아래 코드에서 처리된다.$data = json_decode($_POST["username"]);$username = $data->username;사용자가 입력한 값을 JSON으로 파싱한 후 username 필드를 추출하는 것을 확인할 수 있다.예를 들어 아래와 같이 입력하면username 입력창: {"username": "admin"} 실제로는 다음과 같이 처리된다.$username = "admin"하지만 검증 로직에서 ===(엄격한 비교)와 switch(느슨한 비교)를 혼용하고 있기 때문에 타입을 조작하..
