목록전체 글 (51)
Tyojong
이벤트 핸들러 (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__..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("darkelf"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("darkelf"); id가 admin이면 해결되지만if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");or과 and 문자열이 필터링된다. 문제 해결or 대신 || 를 사용하면 필터링을 우회할 수 있다. (sql injection ..
문제에 접속하면 flag가 한 글자씩 순식간에 지나간다. 개발자 도구를 이용해 script태그의 코드를 확인해보면 글자가 출력되는 코드가 작성되어있다. 해당 javascript 코드를 복사해 콘솔창에 붙여 넣고 두 가지 코드를 수정하면 된다.aview.innerHTML=x.responseText; 코드는 텍스트 응답을 html코드에 넣어 한 글자씩 띄운다. = 를 +=로 변경하게 되면 앞 글자들도 지워지지않고 더해져서 출력되기 때문에 모든 문자열을 확인할 수 있다. if(x.responseText=="") aview.innerHTML="?"; 코드는 플래그가 다 출력되고 기존에 작성된 문자열을 지우고 ?를 띄우기 때문에 출력된 flag를 사라지지 않게 하기 위해서는 해당 코드를 지우면 된다. 수정 후 콘..
문제에 접속하면 바로 Access_Denied 경고창이 출력되면서 메인화면으로 이동된다. burp suite의 설정에서 response값을 인터셉트할 수 있는 설정을 켜고 문제 접속 과정을 확인해보면 alert창을 띄우고 메인페이지로 이동시키는 코드가 존재한다. 해당 코드를 삭제하고 forward버튼을 누르면 Get Flag 버튼이 나온다. 버튼을 누르면 문제가 해결된다.
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("wolfman");id가 admin이면 문제가 해결된다.if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~");공백이 필터링된다. 공백 필터링을 우회할 수 있는 방법은 많다. (우회 방법은 다른 블로그들이 더 잘 정리되..
보호되어 있는 글입니다.
MYSQL버전 확인mysql> select @@version;mysql> select version();에러 메시지로 DBMS 확인mysql> select 1 union select 1, 2;Blind SQLI를 이용한 버전 확인# @@version => '5.7.29-0ubuntu0.16.04.', mid(@@version, 1, 1) => '5'mysql> select mid(@@version, 1, 1)='5';+------------------------+| mid(@@version,1,1)='5' |+------------------------+| 1 |+------------------------+1 row in set (0.00 sec)mysql> sel..
