목록WEB SECURITY/SQL Injection (25)
R136A1
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("dragon"); highlight_file(__FILE__); ?>제약사항따로 없음 풀이조건query의 결과 맨 위의 값의 id가 admin이어야 한다 쿼리select id from prob_xavis where id='guest'# and pw='{$_GET[pw]}' 풀이"개행문자" %0a가 포인트mysql의 특징은 ;가 입력되기 전까지는 무조건 하나의 쿼리로 인식된다. 일반적인 상황에서 개행문자는 아무런 영..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_xavis where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("xavis"); highlight_file(__FILE..
보호되어 있는 글입니다.
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("zombie_assassin"); highlight_file(__FILE__); ?> 제약사항id,pw 파라미터에 addslashes 함수 적용→ 주로 쿼리 전달 전에 쓰여서, ' " \ null 값을 \' \" \\ \null 로 replace한다.이렇게 생성된 SQL문을 실행시키면, \' \" \\ \null등의 값이 문법이 아닌 '문자'로 해석된다. 이렇게 적용된 값을 다시 strrev 함수 적용한다→ 인자로 들어온 문자열을 뒤집어서 반환 풀이조건쿼리의 결과가 있기만 하면 쿼리select id from prob..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("succubus"); highlight_file(__FILE__); ?>제약조건파라미터 id, pw에 싱글쿼터(') 사용 불가 select id from prob_succubus where id='{$_GET[id]}' and pw='{$_GET[pw]}' 풀이조건쿼리의 결과에 값이 있다면이스케이프 문자(\)를 활용하여 id의 ' 를 단순 문자로 취급되게 한다.그 결과, pw의 첫번째 ' 를 끝 ' 로 사용하게 되어 전부 문자열로 취급된다.select id from prob_succubus where id='\' a..
보호되어 있는 글입니다.
SQL은 띄어쓰기에 굉장히 엄격하기 때문에 현재 select 1234 from{$_GET[shit]}prob_giant where 1 이므로 shit에 어떤 값을 넣어서 띄어쓰기를 만들어줘야한다. 제약사항 shit에는 공백, \n, \r, \t 이 대소문자 상관없이 들어올 수 없다. 또한 shit은 2글자 이상 될 수 없다 (무조건 1글자) 다른 대체제: /**/, (), %20, %2b(=+), %09, %0a, %0b, %0c, %0d, %a0, 에서 (), /**/의 경우 4글자이기때문에 사용할 수 없다. 또한 \n(LF=%0a), \r(CR=%0d), \t(HT=Horizontal tab=%09)을 사용할 수 없기 때문에 그에 해당하는 ASCII도 못쓴다. %20, %2b(=+), %a0은 왜 안..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_bugbear where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("bugbear"); highlight_file(__..