[웹보안] 웹보안 4일차 - 오전



4일차다..


다음주에 하루만 더 나오면 끝이다아





1.URL 직접 접근


대충 관리자 페이지 URL을 추측해서


/admin/menu.jsp

/admin/setting.jsp


이런식으로 추측해서 바로 접근 한다


보통 저런 URL은 메뉴창에 보이지 않도록 하며


처음 /admin 정도에서만 권한 확인을 하고


그 이후 url에 대해선 권한 체크를 하지 않는 경우가 있어


바로 접근이 가능한 경우가 있다.




2. 중요정보 평문저장


당연한 얘기...


평문으로 전송도 하지 말고 저장도 하지 말자.



3. 하드코드된 암호화키


암호화 키를 코드내에 하드코드 해놓으면 위험하다


외부에서 암호화된 키를 가지고 온 후 복호화 해서 사용 하는 것이


좋아 보인다. 사실 뭔차인지 잘 모르겠다


서버코드 뚫리면 외부 암호화된 텍스트도 털릴텐데





4. 적절하지 않은 난수값 사용


예측 가능한 난수를 사용하지 말고 예측 불가능한 시큐어 랜덤을 사용 한다.


일반 랜덤 함수는 여러번 돌리다보면 패턴이 발견된다.



1
long seq = Math.round(Math.random() * 10240+ 10000;
cs


이건 안됨


1
long seq = Math.round((new SecureRandom().nextDouble() * 10240* 2345);
cs


이렇게 하거나


1
2
3
4
5
private final static Random random = new Random(System.currentTimeMillis());
 
// 이걸  아래처럼 코딩
 
private final static Random random = new SecureRandom();
cs



이렇게 만들자





5. 쉐도우 크랙툴

 https://cafe.naver.com/sec


여기서 유틸모음에서


쉐도우 크랙툴 john 어쩌구 하는거 받아보자


개싱기방기함


사용법은 알아서 찾아 보고 쓰자


http://kcats.tistory.com/128


여기 가면 사용법 잘 나와있는거 같은데 어려움.... 






6. 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출


쿠키변조나 쿠키 가로채기(XSS)등으로..


망할 웹보안 신경쓸거 더럽게 많네


난 쿠키 잘 쓰지도 않고 중요정보는 더더욱 쿠키 안쓰니까


걍 패스....



1
Cookie newCookie = new Cookie(AUTHCOOKIE, loginID);
cs



쿠키를 이렇게만 만들어 놓고 썻다면


1
2
3
Cookie newCookie = new Cookie(AUTHCOOKIE, loginID);
// 아랫부분 추가 해주도록 하자 그럼 
newCookie.setHttpOnly(true);
cs


이렇게 setHttpOnly(true)를 추가 해주도록 하자


그럼 브라우저에서 쿠키값 못가져 온다.


이렇게 아주 간단한 방법으로 막을 수 있다.





7. 주석문 안에 포함된 시스템 주요 정보


주석문 안에 아이디와 패스워드 넣어 놓고 안지우고 배포하는 경우가 있다


가끔 실수 할 수 있으니 잘 체크 하자


8. 솔트값(소금치기) 없이 일방향 해쉬함수 사용


rainbow attack에 취약 하다


레인보우 테이블로 쭉 돌려서 어택 하면


매칭되는 값 나온다.


일방향 해쉬로 암호화를 하더라도 패스워드 중간에


암호키처럼 중간에 다른 값을 같이 넣어서 암호화를 시키면


암호 텍스트도 늘어나고 레인보우공격으로 알아내더라도


정확한 암호를 알기 더 어려워 진다.





9. 무결성 검사 없는 코드 다운로드


딴짓하느라 못들음







----


java 32비트 다운받아서 설치 하고 패스 설정 따로 해주고


paros를 쓰자


paros는 자바32비트에서만 구동됨














+ Recent posts