분류 전체보기

문제를 들어가면 다음과 같은 페이지가 나온다. get source를 눌러 소스를 보았다. D1: D2: get source 코드를 햇거하면 tmp/p7 파일이 존재하지 않으면 p7.c 파일을 컴파일 하여 p7이라는 파일을 만들고 첫번째 값을 p7이라는 실행파일에 집어넣고 실행한 값을 result라는 변수에 저장한 후 result 값이 1이 아니고 d1하고 d2 값이 동일하면 flag 값을 출력하고 그렇지 않으면 try again이라는 문구를 출력하라는 것이다. 이제 p7.c라는 코드를 확인해보자 http://wargame.kr:8080/php_c/p7.c 불러오는 중입니다... 다음과 같이 입력하면 p7.c 코드가 나온다. #include #include void nono(); int main(int a..
· JSP
이번 시간에는 로그아웃을 수행하는 페이지와 기본적인 메인 페이지 틀을 잡아 보도록 하겠다. Logoutaction.jsp 코드가 생각 보다 간단하다 원리 또한 간단하다. 사용자가 로그아웃 버튼을 누르면 사용자로부터 세션을 빼앗은 후 Main페이지로 이동시키는 것이 끝이다. 다음과 같이 Logout이 완료되면 다음으로 메인페이지 틀을 잡아 보도록 하겠다. Main.jsp jsp 연습 메인 게시판 내 블로그 이동 회원가입 로그인 접속하기 로그인 회원가입 내 블로그로 이동하기 메인 게시판 내 블로그 이동 로그아웃 접속하기 로그인 회원가입 내 블로그로 이동하기 위에 있는 코드는 Login.jsp 페이지를 가지고와 살짝 수정을 하였다. 우선 우리는 저번 시간에 세션 관리 하는 법을 배웠다. 이제 메인 페이지에서도..
· JSP
이번 페이지에서는 로그인 및 회원가입한 사용자에게 세션을 부여하는 작업을 해보도록 하겠다. 세션ID를 부여하는 이유는 로그인 및 회원가입을한 회원이 또 다시 로그인 하거나 회원가입을 하는 행위를 막기 위해서 세션ID를 부여한다. 이제 코드를 작성해보자 Loginaction.jsp 그 후 태그 맨위에 다음과 같은 코드를 추가해준다. String userID = null; if(session.getAttribute("userID")!= null){ userID = (String)session.getAttribute("userID"); } if(userID != null){ // 이미 로그인 된 사용자가 로그인을 할 경우 PrintWriter script = response.getWriter(); script..
· JSP
저번 시간에 로그인 까지 구현을 하였다. 이번 시간에는 회원가입을 구현해 보도록 하겠다. 우선 회원가입 창을 만들어야 한다. 회원가입 창은 Login.jsp를 그대로 복사해 온 뒤 몇가지만 수정 해주면 된다. 1. 기본 틀 jsp 연습 메인(current) 게시판 게시판 접속하기 로그인 회원가입 내 블로그로 이동하기 회원가입 화면 위에 있는 코드는 Login.jsp와 Join.jsp 코드가 동일 한 부분이다. ID, 비밀번호 입력 창까지는 동일하다. 이제 이 뒤에 추가적으로 코드를 추가해서 회원가입 창을 만들어 준다. 3. 이름 창 만들기 ˙ input type = "text" = 이름을 입력하기 위해서 text 창을 사용 ˙ name = "userName" = 입력 값을 userName 변수에 전달 4..
· JSP
저번 시간에 Login.jsp 페이지까지 만들었다. 이번 시간에는 회원가입 후 DB에 저장하기 위한 작업을 해보도록 하겠다. 우선 MYSQL을 키고 비밀번호를 입력한다. 그 후 회원가입 정보를 저장할 DB를 만든다. CREATE DATABASE DB명; 다음과 같은 명령어를 입력하여 DB를 만든다. 나 같은 경우에는 JSP로 만들었다. 다음과 같이 만들고 SHOW DATABASES;를 입력하여 만들어진 DB를 확인한다. SHOW DATABASES; 결과 다음과 같이 jsp라는 데이터 베이스가 생성된 걸 확인할 수 있다. 이제 jsp 파일을 사용하자 USE JSP; use JSP; 라는 명령어를 이용하여 jsp를 사용한다. 다음으로는 jsp에 테이블을 생성하려고 한다. create table USER(us..
· JSP
이전 페이지처럼 기본 준비가 끝났다면 WebContent 폴더를 오른쪽 마우스를 누른 후 New를 누른 뒤 JSP File을 선택하여 JSP 파일을 선택한다. 그 후 File name에다가 Login.jsp라고 한 후 파일을 생성한다. 파일을 생성하면 다음과 같이 나오는데 수정해주어야 할게 몇 개 있다. 다음과 같이 헤드 부분 작성이 완료되면 이제 화면에 보여줄 부분을 작성해야 한다. navbar 만들기 게시판들을 보면 맨위에 버튼이 있다. 다음과 같은 navbar를 만들어보자 jsp 연습 다음 코드를 해석해보면 내 블로그로 이동하기 이번 코드는 작성할까 말까 많이 고민했다. 왜냐면 코드는 작성했지만 내 페이지에서 동작하지 않기 때문이다. 그래도 혹시나 다른 사람들은 될 수도 있을 것 같아서 작성한다. ..
· JSP
JSP를 공부하기 위해서 무엇을 할까 고민하다가 무작정 게시판을 만들어 보기로 했다. 게시판을 만들기 위해서 나동빈의 JSP로 게시판 만들기를 무작정 따라 하기로 했다. Tomcat이랑 eclipse는 예전에 설치를 한 적이 있어서 생략하기로 했다. 우선 Tomcat 설치부터 하기로 하였다. Tomcat 실행하기 Tomcat을 설치한 후 Tomcat 파일을 들어가서 bin 폴더에서 startup 배치파일을 실행시킨다. 실행을 시키면 다음과 같이 파일이 실행된다. 이제 다음으로 Eclipse를 실행시킨다. Dynamic Web Project 만들기 이클립스를 실행 시킨 뒤 File -> New -> Dynamic Web Project를 누르면 다음과 같은 화면이 뜨는데 Project name에는 Proje..
문제를 해석하면 PNG 이미지 파일을 복구하라고 한다. 하지만 이게 진짜 PNG 파일이냐고 물어본다, (스테가노그래피는 아니고 포렌식 챌린지 문제이다) 이제 start를 누르면 ptsd가 올 것같은 사진과 함께 find the code!!라는 문제가 있다. 뒤에 있는 사진을 복구하면 되는 것 같다. 개발자 도구를 누르면 pattern pattern이라는 파일이 있다. 이 파일을 다운 받은 후 HXD를 키고 다운 받은 파일을 열면 맨밑에 .tEXtSoftware.Japng r119라는 글자가 있다. 인터넷에 Japng라고 검색을하면 java apng라는 것을 알 수 있다. apng 파일은 .gif 파일처럼 애니메이션을 구연하였지만 기존 PNG 파일과의 호환성을 유지한 파일이다. 쉽게 말해서 png파일이지만..
type confusion 문제를 눌러보면 start를 누르면 view-source를 누르면 view-source 다음과 같은 코드가 나오는데 여기서 중요한 코드만 해석해보면 if (isset($_POST['json'])) { usleep(500000); require("../lib.php"); // include for auth_code function. $json = json_decode($_POST['json']); $key = gen_key(); if ($json->key == $key) { $ret = ["code" => true, "flag" => auth_code("type confusion")]; } else { $ret = ["code" => false]; } die(json_encode..
Broken Auth(취약한 인증) 인증 및 세션 관리와 관련된 어플리케이션 기능이 잘못 구현되어 공격자에게 취약한 암호, 키 또는 세션 토큰을 제공하여, 다른 사용자의 권한을 얻도록 착취하는 행위 Broken Auth는 2017년 OWASP TOP10에서 2번째를 차지할 만큼 위험한 공격이다. 취약한 인증 공격은 다양한 방식이 있는데 브루트 포스 공격, 딕셔너리 공격으로도 공격이 가능한만큼 누구든지 가능한 공격이다. 또한 위의 공격 외에도 비밀번호 찾기 기능을 통해 사용자의 계정정보를 알아낼 수 도 있다. 안전한지 않은 로그인 방식 - (하) Broken Auth - Insecufe Login Form 페이지를 클릭하면 다음과 같이 나오게 된다. F12(개발자 도구)를 누르게 되면 다음과 같이 나오는데..
Search 페이지에 들어가면 다음과 같은 화면이 나온다. search 버튼을 누르면 다음과 같이 genre와 action 변수가 get 방식으로 URL에 변수가 노출이 되어 나온다. 이제 여기에 injection 공격이 먹히는지 확인하기 위해 '를 입력한다. 다음과 같이 경고가 나온다. 또한 search를 누르게 되면 페이지는 contains 함수를 호출한다. fn:contains ($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean? contains 함수는 검색할 단어가 들어 있는지 검색해주는 함수인데 두 개의 변수를 받는다. 첫번째 변수 안에는 테스트할 변수, 두 번째 명령어는 검색할 명령어가 들어가게 되고 만약 검색할 변수가 테스트할 변수 안에 있으..
· python?
이 코드는 직접 작성이 아닌 코드 분석 입니다. 이번 시간에는 pandas 모듈을 사용하여 엑셀 파일을 열고 쓰기로 했다. pandas는 전에 썼던 모듈인 openpyxl 보다 간단하다. 1. pandas 모듈 설치 먼저 pandas 모듈을 설치하자 pandas 모듈을 설치하기위해 환경설정에 들어가야 한다. ctrl+alt+s(환경설정) -> project -> project interpreter에 들어가면 나는 이미 pandas를 설치했기 때문에 현재 설치된 모듈에 pandas가 있지만 아마 pandas를 설치하지 않은 사람은 pandas가 없을 것이다. 이제 여기서 + 버튼을 누르고 검색창에 pandas라 검색하면 여기서 install package를 누르면 pandas 모듈이 설치된다. 이때 pan..
3년안에 내집 마련
'분류 전체보기' 카테고리의 글 목록 (9 Page)