본문 바로가기

about Security58

[입력 데이터 검증 및 표현] HTTP 응답분할 (3등급) 0. 개요 HTTP 요청에 들어있는 파라미터가 HTTP 응답헤더에 포함되어 사용자에게 다시 전달될 때, 입력값에 CR이나 LF같은 개행문자가 존재하면 HTTP가 2개 이상으로 분리될 수 있으며 이때 공격자는 개행문자를 이용하여 첫 번째 응답을 종료시키고 두 번재 응답에 악의적인 코드를 주입하여 XSS 및 캐시 훼손(Cache Poisoning)공격 등을 수행할 수 있다. 1. 보안 대책 - 요청 파라키터의 값을 HTTP 응답헤더 (ex: Set-Cookie 등)에 포함시킬 경우 CR, LF와 같은 개행문자를 제거한다. - 외부 입력 값을 쿠키 및 HTTP 헤더정보로 사용하는 경우, HTTP 응답분할 취약점을 가지지 않도록 필터링하여 사용한다. 2. 진단 방법 - response 헤더에 변수가 사용되는지 .. 2021. 8. 7.
[캡슐화] 제거되지 않고 남은 디버그 코드 (3등급) 0. 개요 디버깅 목적으로 삽입된 코드는 개발이 완료되면 제거해야 한다.즉, 설정 등의 민감한 정보나 시스템을 제어하도록 허용하는 부분을 담고 있는 디버그 코드가 남겨진 채로 배포될 경우, 공격자가 식별 과정을 우회하거나 의도하지 않은 정보나 제어 정보가 노출될 수 있다. 1. 보안 대책 - 소프트웨어 배포 전, 반드시 디버그 코드를 확인 및 삭제한다.: 특히 JAVA개발 경우 디버그용도의 코드를 main()에 작성한 후 삭제하지 않는 경우가 많다. 잘 삭제하도록 하자. 2. 진단 방법 - 개발 중 사용한 테스트 목적의 디버그 코드가 존재하는지 확인 3. 코드 예시 # 1 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA) # 1 + 제거되지 않고 남은 디버그 코드 - 안전한 코드.. 2021. 8. 7.
[보안기능] 중요정보 평문저장 (3등급) 0. 개요 개인정보, 인증정보, 금융정보와 같은 중요 데이터를 암호화하여 저장하지 않아 제대로 보호되지 않을 경우, 보안이나 데이터의 무결성을 잃을 수 있다. 프로그램이 개인정보, 인증 정보등의 사용자 중요정보 및 시스템 중요 정보를 처리하는 과정에서 이를 평문으로 저장할 경우 공격자에게 민감한 정보가 노출될 수 있다. 1. 보안 대책 - 개인정보, 금융정보, 패스위드 등 중요정보를 저장할 때는 반드시 암호화하여 저장한다. : 서버의 DB나 파일 등에 저장되는 중요정보는 반드시 암호화한다. : 안전한 암호알고리즘과 암호기키를 적용한다. (보안요구항목) - 중요정보를 읽거나 쓸 경우에 권한인증 등을 통해 적합한 사용자만이 중요정보에 접근하도록 한다. : 설계 단계부터 주요정보가 다뤄지는 안전영역을 설정하고.. 2021. 8. 7.
[웹해킹문제풀이] # hackCTF wise saying 2021. 2. 15.
[웹해킹문제풀이] # webhacking.kr 워게임 49번 2021. 2. 15.
[웹해킹문제풀이] # webhacking.kr 워게임 13번 진짜 개어려웠음 내가.....파이썬 공부를 안해서........서버통신을 안해봐서........공부 하자 진짜...........반성해.라......사실 진짜 그렇게 어려운 것도 아닌데......하아..........반성해라반성해 sql도 공부 좀 하고;; 후에 HTTP요청을 하는 파이썬 코드를 짜서 코드 내부의 쿼리문을 위의 것들로 바꿔가며 힌트를 하나씩 찾아냈다. 2021. 2. 15.
[웹해킹문제풀이] # webhacking.kr 워게임 8번 2021. 2. 15.
# 알려진 취약점 공격 # 알려진 취약점 공격 : 공격자는 CVE 데이터베이스를 통해 알려진 취약점에 대한 정보를 쉽게 찾고 공격에 사용. + 하트블리드 취약점 공격 - HTTPS 프로토콜의 근간이 되는 SSL/TLS 프로토콜을 구현한 OpenSSL 라이브러리의 버전 중에 존재하는 취약점 (OpenSSL:정해진 규격의 네트워크 보안 프로토콜을 범용 라이브러리로 구현하기 위해 만듬) : 공격자는 하트 블리드 취약점을 이용하여 웹 서버 호스트의 메모리를 읽을 수 있게 되어 사용자의 로그인 정보 및 노출되면 안되는 민감한 정보들을 탈취한다. : 서버와 클라이언트 사이에 주고받는 정보들을 탈취할 수 있다. + 쉘쇼크 취약점 공격 - 쉘쇼크 취약점 : 시스템 환경변수에 특정 패턴의 문자열과 함께 임의의 명령어가 저장되어 있으 면 쉘이 .. 2020. 11. 29.
# XXE # XXE 외부 엔티티 공격 + XML : 기존에 없던 새로운 마크업 언어를 개발하기 위한 수단으로 사용되는 언어로 데이터 전달에 유리하다. - XML작성시 반드시 DTD가 명시되어 있어야 한다. + DTD: Document Type Definition// XML문서의 구조 및 해당 문서에서 사용할 요소와 속성을 정의 - DTD에서의 entity : 특정 문자열을 손쉽게 사용할 수 있는 상용구와 같은 역할을 한다. : 엔티티의 이름과 확장할 문자열을 미리 정의하면 XML문서나 DTD에 사용되는 entity의 이름이 모두 미리 정의된 문자열로 대체된다. : 선언된 엔티티는 XML 문서에서 & + 엔티티 이름 + ; 의 형식으로 사용한다. + XXE 공격 : 사용자가 웹 애플리케이션으로 전달되는 XML 데이.. 2020. 11. 29.