전체 글 42

VS Code에서 php 개발 환경 구축

1. 웹 서버 기본 상식웹서버를 구축하기 위해서는 APM(apache, PHP, MySQL)이 필요하다.각각을 설치하는 과정이 매우 번거로운데, XAMPP라는 통합 설치 도구를 사용하면 모든 과정이 간결하게 해결된다.PHP는 웹 프로그래밍 언어, MySQL은 DB 시스템, 그리고 Apache는 HTTP 웹 서버이다. 1.1. ApacheApache는 월드와이드 웹 서버용 소프트웨어이다. HTTP Apache라고도 불린다. 리눅스나 윈도우 등 거의 모든 운영체제에서 사용할 수 있으며 구축이 쉽고, 다양한 추가 기능을 가지고 있기 때문에 현대 가장 인기있는 웹 서버로 이용되고 있다.  1.2. 웹 서버란?웹 서버란, 웹 브라우저와 같은 Client로 부터 HTTP 요청을 받아들이고, HTLM 문서와 같은 웹..

development 2024.10.04

webhacking.kr: old-50

1. 문제 풀이사용자의 입력이 그대로 쿼리문에 포함된다. SQL Injection 공격에 취약한 사이트같다. id : pw :    |"); if($result['lv']==2) echo("level : 2"); } if($result['lv']=="3") solve(50); if(!$result) echo("Wrong"); }?>  foreach($_GET as $ck) if(preg_match("/from|pw|\(|\)| |%|=|>|-> old-27과 같이 특정 문자들을 필터링한다. from, pw, (, ), %, =, >, $result = mysqli_fetch_array(mysqli_query($db,"select lv from cha..

WarGame 2024.10.01

webhacking.kr: old-27

1. 문제 풀이제출 칸에 soooooo를 입력하고 제출했다. 쿼리문에 내가 작성한 문자열이 그대로 입력되는 것을 확인할 수 있다. SQL Injection 공격에 취약한 웹 페이지이다.   이제 페이지 코드를 살펴보자. if(preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no'])) exit("no hack");->preg_match() 함수는 주어진 정규 표현식 패턴을 사용하여 문자열 내에서 일치하는 부분을 찾아내는 함수이다. 일치하는 패턴을 문자열에서 처음으로 발견하면 검색을 중단한 뒤 1을 반환한다. 그렇지 않은 경우에는 0을 반환한다.-> #, select, (, 공백, limit, =, 0x중 하나라도 발견되면 'no hack' 메시지를 출력한다.$r=m..

WarGame 2024.10.01

Lord of Injection: germiln

1. 문제 설명query : select id from prob_gremlin where id='' and pw=''query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("gremlin"); highlight_file(__FILE__);?>2. 문제 풀이?로 쿼리의 시작을 알리고 id값으로 germmmmm을 넣어봤다. 그랬더니 아래의 query 부분이 내가 입력한 문자를 그대로 출력하는 것을 볼 수 있었다. 웹 페이지가 어떻게 동작하는지 알게되었다. 쿼리를 조작할 수 있다는 것을 알아냈으니, 인젝션 공격이 가능하다. query : select id from prob_greml..

War_Game 2024.10.01