본문 바로가기

IT

(192)
EL, Servlet의 개념, 게시판 Servlet이란 ?? 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말한다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 서블릿은 JSP와 비슷한 점이 있지만, JSP가 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바코드 안에 HTML을 포함하고 있다는 차이점이 이다. [출처 : 위키백과] [그림 출처: Head First Servlets & JSP] # 컨테이너(톰켓)은 멀티 스레드를 지원합니다. 컨테이너는 서블릿 하나에 대한 다수 요청을 처리하기 위해서 다수의 스레드를 실행합니다. 위의 그림 Client A 와 Client B의 각 요청에 따라 하나씩 스레드를 가지고, 이 스레드 마다 request와 resp..
EL, JSTL EL(Expression Language)(표현언어) - 값을 나타내고 출력하기 위한 스크립트이다. - JSP의 표현식을 사용하는 것보다 간결한 코드를 사용해서 값을 출력할 수 있다. 형식 : ${식} EX) 만약 request.setAttribute("test", "안녕하세요"); 값을 넘겨준다면 getAttribute가 아닌, ${test}로 값을 출력할 수 있다. JSTL(JSP Standard Tag Library) - 표준 태그 라이브러리 - JSP 페이지에서 많이 사용되는 논리적인 판단 반복 처리, 포맷 처리를 위한 커스텀 태그를 표준으로 만들어서 정의한 것 ※ 사용에 앞서 tag 라이브러리가 필요하다. (tomcat 홈페이지에서 다운로드 가능) 라이브러리 설정 후 taglib 지시자 설정. ..
JSP&SQL 게시판 만들기(2) list.jsp # currentPage, pageSize, totalCount 변수를 정의하고, plist 객체를 생성해서 setAttribute를 해준다. 저번 게시물에서 구현했던 BoardService를 통해 totalCount와 Arraylist 타입의 list를 받아았다. listView.jsp # list.jsp에서 setAttribute한 list와 plist를 getAttribute하고, 페이지 관련 데이터를 받아오고 있다. # SelectOne.jsp는 클릭시 해당 내용의 상세정보를 볼 수 있다(다음 내용에서 다룬다.) 파라미터 값으로 idx와 page를 넘겨준다. # 오늘 올라온 게시물은 시간 분, 그 외의 게시물은 날자가 출력되도록 한다. # button에 글쓰기 버튼은 SelectO..
JSP&SQL 게시판 만들기(1) ! 준비 작업 1. mysql 테이블 만들기. # 게시판의 테이블을 만들고, 필요한 기능의 샘플을 미리 테스트해 본다. 2. SQL 연결, VO객체, DB 쿼리 실행 등을 위한 클래스 준비하기. 1) DBConn.java # Connection 타입의 conn객체 생성 그리고 소멸을 위한 클래스이다. 2) MyUtil.java # 게시판의 게시물이 최신글인지 확인하기 위한 클래스. 3) Board.java # board와 관련된 변수를 한번에 컨트롤 하기 위한 vo클래스. 4) BoardDAO.java # Instance()메서드를 통하여 접근이 가능한 싱글톤 클래스를 만든다. # 글의 갯수의 경우 데이터가 하나가 나오기 때문에 rs.getInt(1)로 표현이 가능하다. # 탐색된 결과를 vo객체에 담는..
level4 - system()함수의 위험성 level3 # 코딩을 보면 인자가 1개가 아니면 에러를 출력하고 프로그램을 종료(exit(0))한다. - argc는 명령어를 포함하기 때문에 인자는 하나라는 뜻이 된다. # "dig @argv[1] version.bind chaos txt"의 문자열이 명령어로써, system에 의해 실행된다. # 파일 명이 제시 돼있으니, find / -name autodig 2> dev/null로도 찾을 수 있다. # 동시에 여러 명령어를 사용하려면 ; 를 사용하면 된다. # 문자열 형태로 명령어를 전달하려면 " "를 사용하면 된다. # 먼저, nslookup과 dig에 대해 간단하게 알아보자. 1). nslookup - 도메인 서버의 IP 주소를 확인하는 프로그램으로, 원도우 운영체제에도 있다. - 사용법 : ns..
level2 - vi에서의 명령어 기능 level2 # 그럼 일단 이전 단계와 같이 setuid가 걸린 파일을 찾아보자. # 위의 파일을 실행시켜보자. # /usr/bin/editor 파일은 일시적인 level3 계정의 권한으로 VI편집기를 실행하게 된다. # vi 중 강력한 기능중 하나는 명령어 실행 기능이다. ":!명령어" 형식으로 명령어를 실행하면 셸 화면으로 일시적으로 복쉬하면서입력한 명령어를 실행할 수 있다. # :!/bin/bash 명령어를 실행하자 권한이 유지되면서 완전히 level3의 계정을 해킹에 성공했다. !
level1 - setuid level1 # hint를 통해 hint를 얻는다. # SUID와 SGID라고 하는 기능을 이용하면 다른 계정(level2)에서 만든 파일을 내 계정(level1)에서 읽거나 쓰거나 실행할 때 파일을 실행하는 동안만큼은 다른 게정(level2)의 권한을 잠시 얻을 수 있다. #rws 즉, s가 setuid다. # 따라서 해당 파일을 실행했을때, level2의 권한을 가지고 있는 것이고, 이 권할을 유지하는 방법은 배시쉘을 이용하는 것이다.
JSP&SQL 출석체크 ▶ DB tables 만들기. # workbench에서 위와같이 테이블을 만들고 날자만 다르게 insert를 여러개 해준다. ▶MyUtil.java wdate날짜가 오늘인지 체크해주는 class. ▶ chulFrom.jsp 입력값을 받고 chulSave.jsp로 넘겨주고, 다시 반환받아 값을 출력하는 페이지다. (1) # 작성자와 내용을 입력받는 부분이다. ip를 hidden으로 저장하고있다. # 47,50번 lines : db와 연결을위한 conn, stmt 객체를 생성하고 있다. # 53번 line : order by idx desc 옵션을 통해 최신순으로 출력되도록 한다. # 56번 line : rs 객체에 데이터가 있을때 실행되는 if문 # 64 line : 현재 시간의 객체를 만든다. # 65 ..