목록분류 전체보기 (65)
Tyojong
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_darkknight where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("darkknight"); highlight_f..
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_golem where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("golem"); highlight_file(__FILE..
보호되어 있는 글입니다.
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("skeleton"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("skeleton");id가 admin이면 해결된다.$query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0";조회 되는 쿼리 뒷 부분을 보면 and 1=0 이 추가로 붙어있다. 하지만 별다른 필터링이 없기 때문에 그냥 뒷부분을 주석처리하면 된다. 문제 해결?p..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("vampire"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("vampire");id가 admin이면 해결된다.$_GET[id] = strtolower($_GET[id]);$_GET[id] = str_replace("admin","",$_GET[id]);입력받은 id를 모두 소문자로 바꾸고 admin이라는 문자열은 공백으로 바꿔 필터링한다. 문제 해결admin문자열을 공백으로 치환 시 한번의 과정만 진행한다.?id=..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("troll"); highlight_file(__FILE__);?> 문제 목표if($result['id'] == 'admin') solve("troll");id가 admin이면 해결된다.if(preg_match("/admin/", $_GET[id])) exit("HeHe");admin문자열을 필터링하고 있다. 문제 해결sql에서는 대•소문자를 구분하지 않는다.admin문자열을 필터링하고 있는 정규표현식을 보면 admin이라는 소문자로만 이루어진 문자열만 검증하고 있다.이런식으로 id에 대문자를 섞어 작성..
이벤트 핸들러 (script태그 우회)onload해당 태그가 요청하는 데이터를 성공적으로 로드한 후에 실행onerror해당 태그가 요청하는 데이터를 로드하는데 실패할 시 실행onfocusinput 태그에 커서를 클릭하여 포커스가 되면 실행autofocus 속성을 이용해 자동으로 포커스 시키거나, URL의 hash부분에 input태그의 id 속성 값 입력 (ex. https://tyojongblog.site/#inputID) 를 넣어 자동으로 포커스 되도록 한다.문자열 치환 필터링 우회script 라는 키워드를 제거하는 필터링이면 scrscriptiptonerror 라는 키워드를 제거하는 필터링이면 oneonerrorrror활성 하이퍼링크 (javascript:, Html Entity Encoding)ja..
보호되어 있는 글입니다.
기능 분석내 ip와 agent 정보가 뜨면서 Wrong IP! 라는 문자열이 출력된다.view-source 버튼을 누르면 소스코드를 볼 수 있다. 코드 분석 if($ip=="127.0.0.1"){ solve(24); exit(); } 코크들 보면 사용자의 ip가 127.0.0.1이면 문제가 해결된다. extract($_COOKIE);$ip = $REMOTE_ADDR;코드를 보면 php에서 extract함수는 배열을 변수로 바꿔주는 함수이다. 즉 extract($_COOKIE)를 하게되면 cookie의 key값을 변수 이름으로 cookie의 value값을 변수의 값으로 설정하게 된다.해당 코드에서는 ip를 REMOTE_ADDR이라는 변수에서 가져오기 때문에 REMOTE_ADDR이라는 이름으로 ..
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_orge where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); highlight_file(__FILE__..
