2024/10/01 4

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