본문 바로가기
728x90

Portswigger64

Portswigger - Exploiting XXE via image file upload solution 이번 문제는 댓글에 이미지를 xml형식으로 업로드해 /etc/hostname파일의 내용을 표시하는 이미지를 업로드하면 된다. 이미지 형식 중 xml을 이용하는 형식은 svg가 있다. 우선 댓글을 작성하고 패킷을 탈취해 보면 각 데이터가 전송되는걸 볼 수 있다. 이중 avatar속성이 이미지이며 xml을 통해 작성하면 된다. &xxe; jh라는 외부 엔티티를 /etc/hostname/ 파일 경로로 선언해 주고 svg태그를 이용해 적당한 넓이와 높이 폰트사이즈와 x, y를 설정해준다음 &xxe;로 외부 엔티티를 참조해 주면 댓글 아바타 이미지에 코드가 보이는 걸 확인할 수 있다. 51300d948031 이 코드를 답안으로 제출하면 문제가 풀린다. 2023. 12. 29.
Portswigger - Exploiting XXE to perform SSRF attacks solution 이번 문제는 XXE 취약점을 활용해 SSRF공격을 하는 것이다. 먼저 페이지의 재고확인 버튼을 눌러보자 xml형식으로 데이터를 가져오는 것을 볼 수 있다. 문제에서는 EC2 메타데이터에서 iam 시크릿 액세스 키를 획득하라 한다. EC2 = 아마존에서 제공하는 컴퓨터 클라우드 http://169.254.169.254/ = EC2 메타데이터 기본 데이터 url 우선 데이터를 가져오려면 데이터가 존재하는 정확한 경로가 필요하다. 이 문제에는 취약점이 하나 있는데 위 사진처럼 productId에 hello를 넣었더니 에러메시지로 에러가 있는 hello라는 단어가 출력되는 걸 볼 수 있다. 이렇게 에러가 발생한 부분을 노출해 주면 악용될 수 있다. 로 외부 엔티티를 선언해 주고 &xxe;로 외부 엔티티를 참조해.. 2023. 12. 27.
Portswigger - Exploiting XSS to perform CSRF solution 이번 문제는 댓글 기능에 취약점이 존재하며 XSS를 활용하여 CRSF공격을 수행하는 게 목표다. 우선 나는 CSRF 문제들을 풀어봤기에 form태그를 이용해 댓글을 작성해봤다. 작성 후 게시글로 돌아가보면 csrf파라미터가 없다고 나온다. 이를 통해 csrf 토큰이 존재하는 걸 알 수 있고 이메일 변경 페이지에 가면 csrf토큰을 확인할 수 있다. ` csrf 토큰을 넣고 다시 댓글을 작성하면 게시글을 열람했을 때 이메일 변경 페이지로 이동되며 이메일이 변경되는 걸 볼 수 있다. 하지만 이 방법은 내 csrf토큰을 내가 알기 때문에 가능한 방법이고 실제 상황에서는 상대방의 csrf토큰을 알 수 없기 때문에 csrf 토큰을 탈취해서 작성해야 된다. 그러면 어떻게 csrf토큰을 탈취해야 될까? 아까 확인했듯.. 2023. 12. 20.
Portswigger - SSRF with filter bypass via open redirection vulnerability solution 이번 문제는 개방형 리다이렉션의 취약점을 통해 필터링을 우회하는 문제다. 재고 확인기는 로컬 애플리케이션에만 액세스 하도록 제한되어 있으므로 먼저 애플리케이션에 영향을 미치는 공개 리디렉션을 찾아야 한다. 상품을 보면 오른쪽 아래 return to list와 next product 버튼이 존재한다. next product 버튼을 누를때 다음 상품으로 리다이렉트 되는 걸 확인할 수 있다. 이 리다이렉션을 이용하면 로컬에서 이동하는 것이므로 재고확인 필터링을 우회할 수 있을 것이다. 재고확인 버튼을 누르고 패킷을 잡아 next product 버튼의 주소를 stockApi에 넣어주면 재고가 나올 공간에 다음 상품페이지가 출력되는 걸 확인할 수 있다. 그럼 이제 path파라미터에 http://192.168.0... 2023. 11. 14.
Portswigger - SSRF with blacklist-based input filter solution 이번 문제는 재고관리 페이지 SSRF에서 간단한 필터링 문제다. 우회해야 할 간단한 2개의 필터링이 존재한다고 한다. 솔직히 지금까지 워게임을 꾸준히 풀었으면 누구나 풀 수 있는 문제 같다. 우선 그냥 admin페이지를 요청하면 보안 메시지가 출력되며 들어가지지 않는다. 필터링이 걸려있는 게 분명하므로 우선 필터링확인을 해보면 admin과 localhost에 둘 다 블랙리스트 필터링이 걸려 있는 걸 확인할 수 있다. 여러 우회방법이 있지만 가장 기초적인고 간단한 대문자로 변경을 시도해 보면 바로 우회되는 걸 확인할 수 있다. 이 뒤는 간단하게 /delete? username=carlos만 넣어주면 된다. 2023. 11. 10.
Portswigger - Basic SSRF against another back-end system solution 192.168.0.x의 내부 ip 포트번호 8080의 주소를 스캔해서 carlos라는 계정을 삭제하면 된다. 간단하게 x부분에 들어갈 숫자는 brute force로 찾아내면 된다. intruder에서 x를 타겟으로 잡고 대략 0부터 500까지 넣어보면 228에서 상태코드가 200으로 정상적인 응답이 오는 걸 볼 수 있다. http://192.168.0.228:8080/admin로 요청을 보내보면 재고확인 아래 admin페이지가 출력되는걸 볼 수 있다. carlos아이디 삭제를 위해 http://192.168.0.228:8080/admin/delete?username=carlos요청을 보내면 문제가 풀린다. 2023. 11. 10.
Portswigger - CSRF with broken Referer validation solution 이번 문제는 참조자 검증이 손상되었다는데 아마 검증방법에 취약점이 존재하는 것 같다. 로그인 후 이메일 변경하는 요청을 repeater로 보내면 Referer이 https://0a5900d104be0f428659adb40023007f.web-security-academy.net/my-account?id=wiener인걸 볼수있다. https://0a5900d104be0f428659adb40023007f.web-security-academy.net/my-account?id=wiener 위 두 사진의 차이점을 보면 1번은 referer링크에서 초록 부분을 변경했고 2번은 빨간 부분을 변경해 보았다. 테스트 결과 초록 부분은 변경을 해도 상관없지만 빨간 부분은 한글자라도 변경되거나 추가되면 오류메시지가 출력되게.. 2023. 11. 10.
Portswigger - CSRF where Referer validation depends on header being present solution 이번 문제는 referer 검증에 따른 csrf에 대한 문제이다. 먼저 로그인을 하고 패킷을 잡아보면 Referer헤더를 볼 수 있는데 Referer 헤더란? Referer 헤더는 웹 브라우저나 웹 애플리케이션에서 웹 페이지 요청 시 해당 요청이 어디서 발생했는지를 나타 내는 정보이다. 이 정보는 웹 서버에게 어떤 웹 페이지나 웹 사이트에서 사용자가 현재 페이지로 이동했는지를 알려 준다. 예를 들어 http://www.jhhack.com/1.html이라는 웹페이지에 있는 링크를 클릭하여 http://www.jhhack.com/2.html으로 이동했을 때 referer는 http://www.jhhack.com/1.html 이 된다. 웹사이트나 웹 애플리케이션 운영 시, Referer 정보는 매우 중요한 역.. 2023. 11. 8.
Portswigger - SameSite Lax bypass via cookie refresh solution 이번 문제는 쿠키 새로고침으 통한 SameSite Lax 옵션 우회에 대한 문제다. 이번 문제에서는 특이하게 OAuth 기반 로그인을 지원한다. OAuth 기반 로그인이란? 웹 서핑을 하다 보면 위 사진처럼 Google과 Kakao 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인할 수 있는 웹 어플리케이션을 쉽게 찾아볼 수 있다. 이때 사용되는것이 바로 OAuth다. OAuth란 Open Authorization의 약자로, 애플리케이션이 특정 시스템의 보호된 리소스에 접근하기 위해, 사용자 인증(Authentication)을 통해 사용자의 리소스 접근 권한(Authorization)을 위임받는 것을 의미한다. 확인을 위해 사이트에 접속 후 로그인페이지로 가면 소셜미디어에 로그인 하도록 안내한다.. 2023. 11. 1.
Portswigger - SameSite Strict bypass via client-side redirect solution 이번 문제는 리다이렉트를 이용해 samesite=strict 옵션을 우회하면 된다. 리다이렉트란? 해석하면 다시 지시하다 즉, 브라우저에게 다른 URL(길, 방향)을 지시하는 것을 리다이렉트라 한다. 예를 들면 우리가 홈페이지에 로그인을 안 한 채로 글을 작성하려 한다면 글작성 페이지로 이동되는것이 아니라 로그인 페이지로 이동될 것이다. (1) 비로그인 상태에서 글작성 버튼 클릭 브라우저 -------> SERVER (2) 로그인 페이지로 이동 브라우저 SERVER (4) 다시 글작성 페이지로 이동 브라우저 2023. 10. 30.
728x90