모의해킹

[SPRING] web.xml 접근 취약점을 통한 정보 누출

우와해커 2020. 8. 3. 22:50

web.xml 접근 가능할 경우 문제점

 

spring의 web.xml에 명시된 contextConfigLocation과 classpath

 

[contextConfigLocation]

  <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath:config/spring/spring-admin.xml</param-value>

  </context-param>

 

* contextConfigLocation: Spring 로딩시 읽어올 설정 파일 명시, 

해당 명시가 없을 경우 default로, /WEB-INF/applicationContext.xml 을 읽어온다.

 

* classpath: 컨테이너에서 정의하여 사용하는 경로의 변수

IDE에서 src/main/resources 에 파일을 하나 생성해 놓고 빌드를 해보면 성한 파일이 WEB-INF/classes 에 들어가 있는걸 볼 수 있다

 


SqlMapConfig.xml의 <sqlMap> 엘리먼트

 

<sqlMap resource="sql/admin/AdminDAO.xml" />

<sqlMap resource="sql/pr/PrDAO.xml" />

<sqlMap resource="sql/ir/IrDAO.xml" />

<sqlMap resource="sql/business/BusinessDAO.xml" />

 

 

SqlMapConfig.xml에서는 <sqlMap>엘리먼트를 설정하도록 하고 있다. 

이것은 서로다른 2개의 설정이 필요할때 이용하게 된다. 이것 역시 JAR파일이나  WAR파일에 포함된 내용에 접근이 가능하게 되며, classpath를 루트로 해서 참조하면 된다.

보다 명확한 위치를 지정하여 사용하고자 할때에는 url속성을 이용할 수 있다. 이 속성은 java.net.URL클래스를 이용하여 접근할 수 있도록 해준다.

 


보안가이드

 

http://서비스URL/WEB-INF/web.xml을 브라우져에 입력해서 엑세스가 가능하면

아파치 설정파일 ../conf/httpd.conf 화일에 아래와 같이 설정을 해주어야 한다.


<Location /WEB-INF>
    SetHandler WEB-INF
    Order deny,allow
    Deny from all
</Location>

 

서버 설정 값을 수정했기 때문에 적용을 위해서는 데몬 재부팅 필요.