JSP에 해당하는 글 2

  1. Log4j 설치2024.11.15
  2. JSP 테스트2024.11.15

Log4j 설치

보안공부/기타|2024. 11. 15. 17:56

Log4j 취약점을 테스트 해보고 싶어서 Log4j 를 설치하기로 했다.

 

최종적으로 위와 같은 폴더 구조가 될 것이다.

1. log4j-core, log4j-api 2.14.1 jar 파일 다운로드

https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.14.1/

https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.14.1/

 

위 경로에서 log4j-core와 log4j-api jar 파일을 다운로드한다.

Log4j 취약점이 있는 2.14.1 버전으로 다운로드 하였다.

 

2. WEB-INF/lib에 복사

간단하게 VSCode를 이용해서 만든거라 jar 파일을 수동으로 넣어줘야 했다.

먼저 WEB-INF/lib 폴더를 만들고 jar 파일을 넣는다.

 

 

3. apache-tomcat-10.1.33/lib에 복사

apache-tomcat 설치 폴더의 lib 폴더에도 jar 파일을 넣는다.

 

 

4. log4j2.xml 파일 만들기

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level: %msg%n" />
        </Console>
        <File name="File" fileName="../logs/app.log">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level: %msg%n</Pattern>
            </PatternLayout>
        </File>
    </Appenders>

    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

 

WEB-INF/classes에 log4j2.xml 파일을 만든다.

apache-tomcat 설치 폴더의 logs 폴더에 app.log 라는 이름으로 로그가 쌓인다.

 

 

5. 톰캣 재시작

./tomcat 설치폴더/bin/shutdown.sh

./tomcat 설치폴더/bin/startup.sh

 

shutdown.sh으로 종료 후 시작을 해야 적용이 된다.

 

6. 로그 테스트

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<head>
    <title>Document</title>
</head>
<body>
<%
    java.util.Date today = new java.util.Date();
    out.println("오늘 : " + today.toString());
%>
<%@ page import="org.apache.logging.log4j.LogManager" %>
<%@ page import="org.apache.logging.log4j.Logger" %>

<%
    Logger logger = LogManager.getLogger("MyLogger");
    logger.info("This is an info log message");
    logger.error("This is an error log message");
%>

</body>
</html>

 

위와 같이 수정 후 URL 접근 하면

tomcat 설치폴더/logs/app.log에 로그가 쌓인다.

 

반응형

'보안공부 > 기타' 카테고리의 다른 글

Log4j 취약점 테스트-2  (0) 2024.11.23
Log4j 취약점 테스트-1  (0) 2024.11.22
ldap 설치  (0) 2024.11.18
JSP 테스트  (0) 2024.11.15

댓글()

JSP 테스트

보안공부/기타|2024. 11. 15. 15:44

다른 테스트를 위해 PHP 뿐만 아니라 JSP로도 개발이 가능하도록 서버에 설치를 하였다.

 

1. 자바 설치

https://jdk.java.net/java-se-ri/11-MR3

 

자바 11 를 설치하였다.

 

 

2. 다운로드한 거 서버로 옮기고 압축 해제

tar -xvf xxx.tar.gz

 

자바 11 tar.gz 파일을 scp를 이용해 서버로 옮기고 tar로 압축을 해제한다.

 

 

3. 자바 환경변수 설정

# 홈 디렉터리에서
vi .profile

# 맨 밑에 아래 문구 추가
export JAVA_HOME=$HOME/jsp/jdk-11.0.0.2
export PATH=$PATH:$JAVA_HOME/bin

# 저장 후 .profile 적용
source .profile

# 적용 확인
java -version

 

위처럼 자바 사용을 위한 환경변수를 설정한다.

 

 

4. 자바 버전에 맞는 톰캣 설치

 

자바 11에 맞는 톰캣 버전인 톰캣 10.1.x 버전을 설치하기로 했다.

 

 

위에서 10.1.33 버전의 tar.gz 파일을 다운로드한다.

 

tar -xvf xxx.tar.gz

다운로드한 파일을 scp를 이용해 서버로 옮기고 압축을 해제한다.

 

압축해제된 경로의 bin 폴더에서 톰캣 실행

./startup.sh

 

http://주소:8080 으로 들어가면

 

위 하면이 나오면 설치가 완료된 것이다.

 

5. 사용자 추가

지금은 Server Status나 Manager APP이나 Host Manager에 들어가면 403 에러가 뜬다.

# 사용자 추가
vi /conf/tomcat-user.xml

# 중간에 주석 해제 하면서 내용 수정
  <user username="admin" password="admin" roles="manager-gui,admin-gui"/>
  <user username="robot" password="robot" roles="manager-script"/>

 

이렇게 하면 localhost를 통해서는 진입이 가능하다.

그러나 톰캣을 VM같은 가상서버에 설치하고 호스트 PC에서 진입하려면 다음과 같은 추가 작업이 더 필요하다.

 

# 추가 작업
vi webapps/manager/META-INF/context.xml

# 중간에 허용 아이피를 뜻하는 allow가 있다.
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

# 아래처럼 호스트 PC IP를 넣어 수정한다.
allow="192\.168\.0\.3|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

# host manager에 대해서도 같은 작업을 수행한다.
vi webapps/host-manager/META-INF/context.xml

 

위 처럼 수정하고 bin 폴더의 ./shutdown.sh와 ./startup.sh를 실행한 후 접속하면 접근이 될 것이다.

 

6. 확인

webapps 폴더 밑에 자신만의 폴더를 만들어 jsp 파일을 작성한다.

# tomcat설치경로/webapps/jsp/w1/index.jsp 라는 이름의 파일을 만들고 아래 코드를 넣는다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<head>
    <title>Document</title>
</head>
<body>
<%
    java.util.Date today = new java.util.Date();
    out.println("오늘 : " + today.toString());
%>
</body>
</html>

 

 

해당 페이지가 제대로 나오는 것을 확인할 수 있다.

반응형

'보안공부 > 기타' 카테고리의 다른 글

Log4j 취약점 테스트-2  (0) 2024.11.23
Log4j 취약점 테스트-1  (0) 2024.11.22
ldap 설치  (0) 2024.11.18
Log4j 설치  (0) 2024.11.15

댓글()