목록보안 기술/WEB (18)
앵하니의 더 나은 보안
당연히 TCP의 3way handshaking이 선행되고, 그 이후의 과정을 다룬다. 암호화 통신을 하기위해서는 여러가지 과정이 존재하는데, 클라이언트와 서버가 HTTPS 세션을 성립시키는 과정을 이해하려면 먼저 서버가 인증서를 어떻게 만드는지를 이해해야 한다. 최초로 서버는 자신이 클라이언트에게 보내는 인증서가 ‘클라이언트로부터 신뢰받은 인증서’로 취급받기 위해, 신뢰되는 CA기관에 본인이 만든 인증서를 위탁하며 CA 기관에서 해당 인증서의 서명을 부탁한다. 그럼 CA기관은 전달받은 인증서의 여러가지 값들(TBSCertificate에 사용하는 값)을 한데모아 해시 값을 만들고, 만든 해시값을 CA기관의 ‘비대칭키 암호화 알고리즘의 개인키’를 사용해 암호화하여 인증서에 기재한다. 이는 인증서의 신원보증과..
서론 왜인진 모르겠지만 2021년부터 OWASP TOP 10으로 SSRF가 등재되면서 SSRF 취약점 떡상의 경종을 울렸다. 근데 취약점 진단하면서 SSRF 취약점은 발견한 적이 없어서 한번 정리해보고자 한다. 본론 SSRF? CSRF는 불특정 다수의 clinet에 악성 스크립트를 노출시키는 것인 반면, SSRF는 서버의 시스템에 악성 스크립트를 노출시켜 특정 행위를 유발, DMZ에서 접근 불가한 데이터까지 외부에서 접근해 정보를 탈취해 낼 수 있는 취약점이다. 그렇다고 방식이 CSRF와 유사하진 않다. 보통 파라미터 값으로 해당 웹 서버 시스템의 루프백이나 내부 IP, 내부 도메인 URI 혹은 그 일부를 전달해 데이터를 탈취한다. 그래서 점검 방법은? 어디서, 어떻게 발견할 수 있는 취약점인디? 단순히..
진단 웹 사이트 중에, CORS origin이 *로 설정 돼 있어서 XMLHttpRequest 객체로 토큰 값을 가져올 순 없는지 확인했음 결론은 실패했는데, JWT 값이 웹의 세션 스토리지에 저장되기 때문이라고 함쿠키로 저장되면 탈취할 수 있는데세션 스토리지에 저장되는거 보니까 안되겠더라 혹시 세션/로컬 스토리지에 JWT 값이 저장되는 경우에도 CSRF가 가능하다면 도움 부탁드립니당
JWT의 signature 값을 새로 생성하거나 알고리즘 값을 변경해 JWT 검증을 우회해보고자 한다. JWT 토큰 검증 우회로 시도해볼 기법은 총 7가지 signature 검증 부재 alg 값으로 none 설정 (CVE-2015-9235) alg 값 수정 HS256 > RS256 (CVE-2016-5431/CVE-2016-10555) JKW Injection (CVE-2018-0114) JKU Spoofing kid injection CVE-2022-23529 signature 검증 부재 JWT 토큰 payload와 signature 값을 대조하지 않는 실수를 하는 개발자도 있다고 해서 payload 값(userId 95 > 96, 기타 인증 관련 값) 임의 변경 시도 alg 값으로 none 설정 al..