'개발자 일기' 시리즈개발자의 일상 20

웹 취약점


정보누출 작업

  • WEBTOB를 사용하고 있음

    http.m 에 Method = "-PUT, -DELETE, -TRACE, -OPTIONS" 삽입
    tmax 엔지니어가 원격으로 피드백 준 부분
    원래라면 web.xml 에 삽입해주고, jsecurity-web-dd.xml 에도 삽입해줘야함
    몇번의 시도 끝에 tmax 엔지니어가 피드백해준 걸로 진행 몇번의 시도 끝에 tmax 엔지니어가 피드백해준 걸로 진행

  • 없는 경로 입력 시 error 페이지가 나오게 명시하기

    해당 경로에 파일하나 삽입

  • 개발자모드에서 error 페이지의 404 등이 노출되면 안됨(숨김 처리 요청)

    webMain.xml에 servlet value값을 true로 설정
    http.m 에 해당 코드들 명시 (에러 메세지 대체)


크로스 사이드 스크립트

  • form 태그 같은 것들이 게시물에 사용되면 안됨

    기능은 있음. 게시판 형태
    기본 게시판과 에디터를 사용하는 게시판이 있는데 기본 게시판만 방지되어 있음
    에디터 게시판도 방지되게 가능하게 개발


약한 문자열 강도

  • 중복 체크 문자를 변경하여 아이디 유추 불가능하게 설정

    alert 창만 설정해주면 됨


불충분한 인증

  • 비밀번호 변경 정보 변경 시 본인 확인 재인증이 필요함

    마이페이지에 들어가기전에 페이지 하나 개설
    비밀번호 체크 확인하기
    SSL 인증서를 사용하지 않기에 RSA 암호화 처리


크로스 사이트 리퀘스트 변조 CSRF

  • 로그인 Controller에 코드 개발

    JAVA 단에서 CSRF 토큰을 생성 (UUID)
    세션과 param으로 서버에 보내주고 jsp에서 받아옴
    jsp 에서 param 값을 다시 JAVA로 보내줌
    JAVA단에서 param과 세션 값을 비교함
    일치하지 않을 시 alert 경고참
    csrf는 랜덤UUID


불충분한 인가

  • 로그인 Controller에 코드 개발

    JSP에서 Controller로 넘어갈때 문제가 생길 수도 있음
    SSL를 쓰는 사이트들은 ㄱㅊ지만 우린 안씀 ㅅㅂㅋㅋ
    JSP에서 RSA 암호화 처리를 해줬음
    Controller에서 복호화 처리를 해줬음
    그것뿐만이아니라 세션과 param 두개 값을 비교도 해줬음


불충분한 세션 만료

  • web.xml에 설정함

    세션 시간 설정하는거
    로그인 후 세션 끊기기전까지 재로그인이 가능함
    10분이 권장사항이라 설정해줌
    web.xml에 명시해주면됨 쉬움


프로세스 검증 누락

  • 로그인 Controller에 코드 개발

    jsp 단에서 문자열 보고선 특수문자 넣어라 등등 설정하는 거임
    jsp 단에서 하면 스크립트 안쓰는 브라우저에서 그냥 비밀번호가 바뀔수도 있다고함
    Controller에서 비밀번호 복잡도 검사하게 바꿈

  • 로그인 Controller에 코드 개발

    ID랑 이름 값을 session값으로 바꿔줍시다... 넘길때... param값하니까 큰일났어요..
    싸그리다 session값으로 바꿔줌
    단점은 서버에 무리가 올수도 있어요.
    세션은 서버에 저장되는 값이거든요


데이터 평문 전송

  • SSL쓰면 상관없으나 안쓰면 개발해야함
  • 로그인 Controller에 코드 개발

    jsp에서 값을 받아서 암호화 처리 해주고
    JAVA에서 암호화된 값을 받아서 복호화해주잡
    RSA암호화 썼음ㅋ


쿠키 변조

  • 로그인 CONTROLLER에서 코드 개발

    세션값 가지고 재사용하면 아디 비밀번호 상관없이 로그인 되는건데...
    아이피랑 랜덤수 두개 가지고 세션에 붙혀주고,,
    메인페이지나 서브페이지에서 세션IP랑 현재 IP 비교하게 설정해줌 controller에서..


후기

다끝냈따.. 털린게 21개고 싹다 처리했다
왜이렇게 많지? 작년엔 안했나 했는데 전임자가 안하고 빤스런해서 2년치한거네?
개씨빨새끼ㅋㅋ 안한게 아니라 못한거겠지

//전임자가 짠 코드 뒤져보다 발견함 ㅋㅋㅋㅋㅋ
if(i>15){
        if(i>3){
            왜 이렇게 코드를 짜는걸까?
            이건 전임자의 작품 ㅋㅋㅋㅋ
            시빸ㅋㅋㅋㅋ
        }
}

븅샴시끼
기능 하나 개발하고 웹 호환성 최적화 접근성 취약점 다끝내고 월급루팡하려했는데
프로젝트 들어가네 큰 프로젝트
8월쯤에 들어간다는데.. 2억쯤되는 프로젝트에 개발자 3명이서 하네
그중에 내가 포함되어있네ㅎㅎㅎㅎㅎ
그래도 웹 취약점이 8월 31일까지인데 벌써 끝냈으니 그사이에 월급루팡하겠습니다


마크에디터 ㅈㄴ어렵다


작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.