전체 글 (68) 썸네일형 리스트형 [Lord of SQL injection] orc 소스코드 분석$_GET[pw] = addslashes($_GET[pw]); addslashes는 데이터 베이스에 저장이 될때 특수문자 앞에 \를 넣어준다.ex)insert into test (id) values ('$a') 이런 쿼리문에 'LOS'라는걸 입력을 해서 저장을 한다고 할때insert into test (id) values (''LOS'') 이런 에러를 피하기 위해서 적어준다.addslashes 적용 -> insert into test (id) values ('\'LOS\'') $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysql_fetch_array(mysql_query($query).. [Lord of SQL injection] goblin 소스코드 분석if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");no에 쿼터를 사용못하게 해놨다. 문자를 사용못하게 해놨으니no의 값을 조작해서 문제를 풀어야겠다. no에 1을 넣으니 Hello guest라는 문구가 뜬다. no에 2를 넣으니 문구가 뜨지 않는다.그럼 뒤에 or 조건을 줘서 id = 'guest' and no=0 (거짓) or no = ? 이렇게admin의 no를 찾아서 대입을 해본다. ?no=0%20or%20no%20=20 or no = 2 [Lord of SQL injection] cobolt 소스코드 분석gremlin 문제랑 별다를게 없음 if($result['id'] == 'admin') solve("cobolt");elseif($result['id']) echo "Hello {$result['id']} You are not admin :(";그래서 id를 admin 이라는 조건만 맞춰주면 풀림 ?id=admin%27%20%23admin' # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.. [Lord of SQL injection] gremlin 소스코드 분석 preg_match 함수사용if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");preg_match 함수는 매치된 횟수를 반환을 하는데, 매치가 된 문자가 있으면 1 없으면 0 을 반환하는데, 처음 매치가 이루어 지면 검색을 중지하기 때문prob _ . () 이런 문자들이 id에서 발견되면 No Hack ~_~ 이 출력된다.PW도 마찬가지구분자 뒤의 "i"가 있으면 대소문자를 구별하지 않음 $query = "select id from prob_gremlin where id='{$_GET[id]}' and p.. 이전 1 ··· 6 7 8 9 다음