이번 세션은 SQL Injection 중 UNION Injection과 Blind Injection에 대한 내용이다. 첫 번째 퀴즈는 UNION Injection을 이용해서 유저의 패스워드 정보를 탈취하는 퀴즈인데, 친절하게도 두 개의 테이블에 대한 정보를 제공해준다. SQL Injection이 발생하는지 확인하기 위해 쿼리 에러가 발생할 수 있도록 입력값을 구성해서 전달해보니, 에러가 발생하는 것을 알 수 있었다. 이를 통해 SQL Injection이 가능할 수 있다는 것을 알 수 있다. 특히 에러 메시지를 통해 실제 실행되는 쿼리 구문이 무엇인지 까지 전달해주고 있어, SQL Injection에 더욱 도움이 되고 있는 상태이다. UNION SQL Injection을 할 때에는 테이블명, 필드명을 알..
이번 세션은 Injection 취약점 중 SQL Injection에 대한 내용이다. 세션 내용은 기본적인 Query 지식을 시작으로 간단한 SQL Injection 내용을 순으로 다루고 있다. 앞 부분에서 다루고 있는 Query에 대한 내용은 간단히 질문에 해당하는 쿼리구문을 입력만 하면 되는 문제들이므로 넘어가고, 후반부의 SQL Injection 부분을 다뤄본다. 첫 번째 문제는 주어진 쿼리구문이 SQL Injection이 발생하도록 3개의 셀렉트 박스에서 값을 선택해서 실행해보도록 디자인 되어 있다. 쿼리구문이 항상 참이 되도록 아래와 같이 선택하여 문제를 통과한다. Smith' or '1'='1 두 번째는 직접 쿼리를 입력하도록 좀 더 어렵게 퀴즈가 나왔다. 이때 두 필드 중 한개의 필드에서만 인..
ChatGPT를 이용하여 AWS re:Inforce 2023 컨퍼런스 중 애플리케이션 보안과 관련된 세션 내용을 정리하고 어떤 트랜드가 있는지 확인해 보았다. https://docs.google.com/spreadsheets/d/1_BE8hfimkhHcgajB38Yt34F_64B19EvIWuwKA8ORxyw/edit#gid=1979300205 re:Inforce 2023 Application Security Trends AWS re:Inforce 2023의 애플리케이션 보안 관련 세션들은 현대적인 애플리케이션 개발 환경에서 보안이 중요한 측면 중 하나임을 강조합니다. 클라우드 서비스, AI/ML 기술의 통합, 개발 및 배포 프로세스에서의 보안 통합과 같은 다양한 주제를 다루며, DevSecOps 문화의 ..
ChatGPT를 이용하여 AWS re:Invent 2022 컨퍼런스에서 이야기 한 내용을 정리하고 어떤 트랜드가 있는지 확인해 보았다. https://docs.google.com/spreadsheets/d/1_BE8hfimkhHcgajB38Yt34F_64B19EvIWuwKA8ORxyw/edit#gid=0 1. Re:Invent 2022 Trends 서버리스 및 마이크로서비스 아키텍처 클라우드 환경에서 서버리스와 마이크로서비스 아키텍처의 채택이 증가하고 있으며, 이는 개발의 속도와 유연성을 높이는 동시에 운영 복잡성과 보안 과제를 증가시키고 있습니다. 이러한 아키텍처는 DevOps, 보안, 인프라 자동화에 대한 새로운 접근 방식을 요구합니다. 암호화 및 데이터 보호 암호화 및 데이터 보호에 대한 관심이 커..
이번 세션에서는 준비된 도커이미지를 다운받고, 해당 이미지의 /root 경로에 있는 파일을 확인하여 제시한 암호문을 복호화하는 것이다. 우선 도커 이미지부터 다운받고 bash shell로 해당 도커에 접속해보자 docker exec -it [docker image id] /bin/bash 이제 /root에 접속해보면, 현재 사용된 계정은 권한 때문에 접근이 불가능하다는 메시지를 받게 된다. 그럼 이번에는 passwd 파일을 확인하여 관리자 그룹으로 변경해보면 어쩔까 싶어, /etc/passwd 파일을 확인해 보았다. 역시 현재 사용되고 있는 webgoat 계정의 UID/GID는 root와 다른 값이였다. 이제 이 /etc/passwd를 로컬로 다운로드 받아 수정 후 관리자 UID/GID로 변경을 해보자 ..
이번 세션은 서명과 관련된 내용이다. 우선 이번 세션은 자주 접하지 못했던 부분이라 온전히 혼자 힘만으로 해결할 수 없었고, 다른 유튜버가 풀이한 내용을 많이 참고하여 진행하였다. https://www.youtube.com/watch?v=9lQJa4zHRYM 우선 해당 세션에서는 RSA 암호화 알고리즘에 대한 Private Key를 제공할 때, Pubilc Key에 대한 Modulus를 구하고, 이 Modulous를 이용한 서명을 확인하라는 퀴즈를 제공하고 있다. 사실 나는 Modulus가 무엇인지 부터 막막했다. 이럴땐 역시 ChatGPT에게 문의해본다. Modulus는 Public Key에 저장되고, 이 값은 암호화나 서명 검증 등에 사용된다는 것을 확인할 수 있었지만, 여전히 완전히 이해가 되지 않..
이번 페이지에서는 Base64 외의 다양한 인코딩 방법에 대해서 안내해주고 있다. URL encoding과 HTML encoding 인데, 이 두 방법은 웹서비스에서 파라미터를 전달하거나 웹에 출력할 때 자주 사용하는 방법이라 자주 보았던 인코딩 방법이였다. 하지만 다른 UUEncode, XOR encoding은 이번에 처음 본 인코딩 방법이였다. 문제에서는 XOR 인코딩 값을 주고 이 값을 디코딩할 수 있는지 확인해보라는 것이다. XOR 인코딩이 내부적으로 어떻게 인코딩을 하고 있는지는 사실 중요하지 않다. 왜냐하면 요즈음은 대부분의 인코딩과 디코딩을 제공해주는 무료 웹서비스가 너무 많기 때문이다. 인코딩은 암호화 방식이 아니기 때문에 너무 쉽게 본래 값을 확인할 수 있을 것이다. 간단히 XOR 디코딩..
WebGoat의 두 번째 도메인은 암호화와 관련된 내용이다. 여기서 다루어야 하는 내용은 후반부에 꽤 많은 내용이 있어, 나눠서 작성하려고 한다. 처음 이야기하는 부분은 인코딩과 관련된 내용이다. Basic Authentication으로 전달되는 입력값을 통해 계정정보를 탈취하라는 퀴즈이다. Authorization: Basic bXl1c2VyOm15cGFzc3dvcmQ= Basic Auth는 계정정보를 암호화가 아닌 인코딩을 통해 전달하는 방법이기 때문에, 해당 인증값이 노출될 경우, 디코딩을 통해 계정정보를 확인할 수 있다. 간단히 해당 정보를 디코딩 해보면 예문에서 이야기 했던 계정정보와 똑같은 값을 확인할 수 있었다. 그럼 실제 문제로 나온 Basic Authentication을 동일한 방법으로 ..
이번 퀴즈는 인증쿠키 스푸핑을 통한 인증우회 방법에 대한 내용이다. 주어진 내용은 webgoat, admin 계정과 패스워드를 제공해주고 있으며, 이때 Tom 계정으로 스푸핑을 진행하는 것이다. 우선 주어진 계정정보를 통해 어떤 쿠키가 생성되고 있는지 확인해보자 다음으로 로그인 시 다른 계정의 인증토큰을 함께 넣었을 때, 어떻게 반응하는지 확인해보자 위 스크린샷을 보는 것처럼, 전달한 계정정보와 상관없이 인증쿠키가 있을 경우, 인증쿠키를 통해 로그인이 진행된 것을 확인할 수 있다. 그렇다면 퀴즈의 의도는 인증쿠키의 값에 계정정보 등이 포함되어 결정되고 있어, 해당 패턴을 유추하여 특정 계정에 해당하는 인증쿠키를 생성하여 인증로직을 우회하는 것일 것이다. 그럼 인증쿠키가 어떻게 생성되고 있는지 확인해보도록..
이번 내용은 기능(Function) 레벨에서의 Access Control 부재에 대한 내용이다. 이전에 진행했던 객체 단위의 Access Control과는 다르게 이번에는 기능 단위의 Access Control 이다. 첫 번째 퀴즈는 숨겨진 기능이 있는지 확인하는 것이다. 우선 눈에 보이는 메뉴로는 아래와 같이 2개 메뉴와 총 5개의 기능이 있다. Account -> My Profile, Privacy/Security, Log Out Messages -> Unread Messages, Compose Message 우선 숨겨진 기능이 무엇인지 찾으라고 하였으니, 가장 먼저 생각 나는 것은, 권한에 따라 메뉴를 숨겼는지 보기 위해 클라이언트 코드를 확인해본다. 역시 Admin 권한으로 제공되는 메뉴가 3개가..
- Total
- Today
- Yesterday