분류 전체보기 117

[Webhacking.kr] Challenge(old) 59번 문제

문제페이지는 해당 페이지와 같다. 해당 페이지는 view-source 링크와 join 과 login 창이 존재한다. 먼저 소스 페이지를 확인해본다. if($_POST['lid'] && isset($_POST['lphone'])){ $_POST['lid'] = addslashes($_POST['lid']); $_POST['lphone'] = addslashes($_POST['lphone']); $result = mysqli_fetch_array(mysqli_query($db,"select id,lv from chall59 where id='{$_POST['lid']}' and phone='{$_POST['lphone']}'")); if($result['id']){ echo "id : {$result['id..

[Webhacking.kr] Challenge(old) 54번 문제

문제 페이지는 해당 페이지와 같다. 해당 페이지에 들어가면 Password is 라는 문자뒤에 문자열이 빠르게 지나가고 마지막에 ? 로 끝이 난다. 변화하는 문자열에 FLAG 단어가 존재하는 듯하여 연속된 문자열을 알아내면 될 듯하다. 먼저 소스코드를 확인해본다. function answer() 함수의 aview.innerHTML = x.responseText 부분을 한글자씩 바뀌는 것이 아니라 중첩되도록 실행하도록 aview.innerHTML += x.responseText 로 바꾸어준다. 또한 마지막 if 조건문에 해당하는 i if(x.responseText=="") aview.innerHTML="?"; 는 text가 없으면 ?로 출력하기 때문에 해당 구문은 삭제한다. 이렇게 수정한 스크립트 부분을 ..

[Webhacking.kr] Challenge(old) 53번 문제

문제페이지는 해당 페이지와 같다. 페이지에는 view-source 링크만 존재한다. view-soure 링크를 통하여 해당페이지의 소스코드를 확인한다. if($_GET['answer'] == $hidden_table) solve(53); GET 방식의 answer 파라미터 값이 hidden_table 이면 해당 문제가 풀린다. 숨겨진 테이블명을 알아내면 문제가 풀리는 것 같다. SELECT 구문을 injection 하여 알아내고 싶지만 필터링 되기 때문에 procedure analyse() 라는 함수를 사용한다. procedure analyse() 는 SQL 내장 함수 중 하나로 select a from {table} where a=1 procedure analyse() 가 들어오면 {DB}.{table..

[Webhacking.kr] Challenge(old) 46번 문제

문제페이지는 해당 페이지와 같다. SQL INJECTION 문구와 level 을 입력하는 창에 1이 입력된 채로 존재하고 view-source 링크가 존재한다. view-source 링크를 통해 해당 페이지의 소스코드를 확인한다. $_GET['lv'] = addslashes($_GET['lv']); addslashes() 함수는 문자열 안의 특수문자가 잘 인식되도록 역슬래쉬를 추가해주는 함수이다. $_GET['lv'] = str_replace(" ","",$_GET['lv']); $_GET['lv'] = str_replace("/","",$_GET['lv']); $_GET['lv'] = str_replace("*","",$_GET['lv']); $_GET['lv'] = str_replace("%","",..

[Webhacking.kr] Challenge(old) 29번 문제

문제페이지는 해당 페이지와 같다. 페이지에는 파일을 업로드 하는 부분과 time, ip, file 의 목록이 존재한다. 그리고 FLAG 가 다른 테이블에 존재한다는 내용이 출력되어 있다. 해당 문제는 Flag 가 존재하는 테이블을 찾으면 풀릴 듯하다. 임의로 test.txt 라는 파일을 업로드 시켜보면 목록이 하나 추가되는 것을 볼 수 있다. Burp suite 를 이용하여 SQL 인젝션 공격을 시도해본다. 1. time / ip / file 의 insert 되는 순서를 일아본다. INSERT INTO 테이블명 VALUES (‘a’, ‘b’, ‘c’), (‘d’, ‘e’, ‘f’); INSERT 문은 다중으로 데이터를 저장할 수 있기 때문에 이를 이용하여 INSERT 순서를 알아본다. 패킷의 filena..

[Webhacking.kr] Challenge(old) 34번 문제

문제페이지로 이동하면 debug me 라는 알림창이 뜬다. 확인을 누르면 페이지에 아무런 내용도 출력되지 않아서 바로 소스 코드를 확인해본다. 이 내용을 debug 해야 할 듯한데 스크립트부분이 개행이 되지 않아 가독성이 안좋았다. 가독성을 높여주는 사이트로 이동하여 개행을 시켜보았다. 코드 뷰티파이어 : https://www.prettifyjs.net/ JS Beautify and Minify - Online Beautify (prettify) your JS data or minify (uglify) it with advanced formatting options. Our site has an easy to use online tool to convert your data. www.prettifyjs...

[Webhacking.kr] Challenge(old) 32번 문제

문제 페이지는 해당 페이지와 같다. Rank 와 Name, hit 의 목록들이 나열되어 있고 1위의 아이디를 클릭했더니 hit 의 숫자가 올라가는 것을 확인할 수 있었다. 다시 한번 더 아이디를 클릭하면 이미 투표를 했다는 창이 뜨면서 거부된다. 페이지의 소스 코드를 확인해도 특별한 단서를 찾지 못해 쿠키 값을 확인하였다. vote_check 라는 쿠키항목이 존재하는 것을 확인할 수 있었다. 이 항목의 쿠키값을 지우고 다시 아이디를 누르면 hit 의 숫자가 증가하는 것을 확인할 수 있다. 를 이용하여 나의 아이디를 검색해보니 목록 가장 하단에 존재하였고 vote_check 쿠키 값을 이용하여 내 아이디의 hit 수를 100까지 증가시키면 문제가 풀릴 듯했다. EditeCookie 프로그램을 이용하여 vo..

[정보 보안 기사] 19. 네트워크 개요 (2) OSI 7 계층

Section 19. 네트워크 개요 주요 네트워크 기술에 대한 특징 OSI 7 Layer의 레이어별 역할 OSI 모델 네트워크 통신을 체계적으로 다루고 있는 ISO 표준 개방 시스템 상호열결모델 (Open System Interconnection) 1970년대 후반에 처음 소개 하드웨어나 소프트웨어 기반의 논리적인 변화에 대한 요구 없이 서로 다른 시스템 간의 통신을 원할하게 하는데 목적 (주의) ISO 는 기구이고, OSI는 모델이다. 개방 시스템 (open system) 기반 구조와 관계 없이 시스템 간의 통신을 제공하는 프로토콜의 집합 개방형(open) 시스템 서로 다른 특성을 갖는 컴퓨터 혹은 정보처리 기기끼리도 상호 연결이 가능한 시스템 폐쇄형(closed) 시스템 특정 사설 프로토콜만 사용하며..

정보보안기사 2021.07.15

[정보 보안 기사] 19. 네트워크 개요 (1) 프로토콜

Section 19. 네트워크 개요 주요 네트워크 기술에 대한 특징 OSI 7 Layer의 레이어별 역할 프로토콜 데이터 통신에 있어서 신뢰성 있게 효율적이고 안전하게 정보를 주고 받기 위해서 정보의 송/수신자 측 또는 네트워크 내에서 사전에 약속된 규약 또는 규범 무엇을 어떻게 그리고 언제 통신할 것인가를 규정 주요 구성 요소 구문(Syntax) 의미(Semantics) 타이밍(Timing) 구문(Syntax) 데이터의 구조나 형식으로 데이터가 표현되는 순서를 의미 의미(Semantics) 비트의 영역별 의미 특정 패턴을 어떻게 해석하고 그를 기반으로 어떻게 동작 할 것인가 결정 타이밍(Timing) 데이터를 언제 얼마나 빨른 속도로 전송할 것인가 [참고] 코드 유니코드(Unicode) 오늘날 널리 사..

정보보안기사 2021.07.14