728x90 Portswigger64 Portswigger - Stored XSS into anchor href attribute with double quotes HTML-encoded solution 이번 문제는 Stored XSS를 a태그 안에 href속성에 적용하면 된다. 댓글 기능에 취약점이 존재하고 작성자 이름을 누르면 alert함수가 호출되게 해야 된다. 댓글 기능에는 코멘트와 이름, 이메일, 웹사이트를 적게 되어 있다. 처음엔 코멘트 부분에 a태그를 이용해 스크립트문을 작성해서 문제를 푸는 줄 알았다. 하지만 몇 번 테스트로 작성해 봤는데 작성자 이름을 눌렀을 때 웹사이트에 적은 주소로 이동되는 걸 확인했다. (ex 123) 고로 웹사이트에 적은 주소가 a태그 href속성에 들어가는 것이다. a태그에서 자바스크립트를 실행하려면 javascript:를 써야 하므로 웹사이트 작성칸에 javascript:alert(0);을 작성하면 (비슷하게 한번 다뤄봤다) https://jh-hack.tist.. 2023. 9. 6. Portswigger - Reflected XSS into attribute with angle brackets HTML-encoded solution 이번 문제는 검색기능에 가 html 인코딩으로 필터링이 될 때 alert함수를 호출하면 풀린다. 검색창에 123을 입력하고 form을 확인해보니 input 태그에 value값이 123으로 들어간 걸 볼 수 있다. 이를 확인하여 input 태그를 닫고 script문을 넣어보려 했는데 가 인코딩 되는 걸 확인할 수 있다. 이로 인해 input태그를 닫고 script문을 작성하는 건 포기하고 https://duni0107-day.tistory.com/131 XSS(Cross Site Scripting) 필터링 우회 1. input박스 value에 스크립트를 넣어 XSS공격 성공시키기 위와 같이 value 값에 구문을 삽입하여 XSS를 발생시켜야 하는 상황일 때 value 값에 XSS 기본 스크립트인 alert.. 2023. 9. 4. Portswigger - DOM XSS in jQuery selector sink using a hashchange event solution 이번 문제는 홈페이지에 DOM based xss 취약점이 있고 location.hash기능을 이용해 자동으로 스크롤된다고 나와있다. 사실 확인을 위해 페이지에 접속 후 script부분을 보면 기본적으로 URL에 해시태그 뒤의 항목이 지정되면 웹에서 이 값을 검색하고 일치하는 항목으로 스크롤한다. 또한 window.location.hash.slice(1)부분은 hash부분을 그냥 가져오기 때문에 취약점이 될 수 있다. 확인해보면 게시물 중 Kids라는 단어를 포함한 게시물이 있다. 그럼 url 뒤에 #Kids를 입력하면 해당 게시물로 자동 이동되는 걸 볼 수 있다. 그리고 #를 입력하면 이러한 취약점을 알 수 있다. 이제 문제에서는 피해자에게 익스플로잇을 전달하여 print()함수를 실행하라 했으니 이 취.. 2023. 9. 1. Portswigger - DOM XSS in jQuery anchor href attribute sink using location.search source solution 문제를 해석하면 anchor 요소를 찾아서 href를 바꿔라 그래서 back링크가 document.cookie를 alert함수로 호출하면 문제가 풀리는 것 같다. 우선 anchor가 무엇이냐 하면 우리가 흔히 웹에 링크를 달때 사용하는 a태그( ex 네이버)를 말한다. 여기서 a태그의 링크를 담당하는 href를 변경하려는것 같다. 우선 script문을 보면 attr이 핵심인데 우리가 보통 링크를 작성하려면 a태그를 입력하는게 일반적인데 jQuery 내부에서도 링크를 걸 수 있다. 그게 attr로 $(location).attr("href", "이동하고 싶은 링크")의 형식으로 쓰인다. 보면 현재 / 라고 되어있는 backLink의 href를 returnPath파라미터로부터 받아와 바꿀라 한다. 그럼 ret.. 2023. 8. 25. Portswigger - DOM XSS in innerHTML sink using source location.search solution 저번 문제와 동일하게 검색기능에 DOM-based XSS 취약점이 존재하고 이번에 innerHTML을 사용해 div요소의 HTML내용을 바꿀라 한다. alert함수를 호출하면 문제가 풀린다. script문을 입력했을때 입력값이 출력되지 않아 처음엔 필터링이 되어 있는 줄 알았다. script문뿐만 아니라 태그()를 사용하면 태그 안에 내용이 출력되지 않았다. 찾아보니 innerHTML은 태그를 일반 text문자로 인식하게 되어 있다. 이는 code injection과 같은 공격을 방지하기 위해서 그렇다. https://security.stackexchange.com/questions/60861/why-are-scripts-injected-through-innerhtml-not-executed-whilst.. 2023. 8. 25. Portswigger - DOM XSS in document.write sink using source location.search solution 검색 기능에 DOM based XSS 취약점이 포함되어 있고 document.write와 location.search함수를 사용하고 있다. document.write는 디버그나 텍스트를 화면에 출력할 때 많이 쓰며 웹브라우저에 입력값을 출력해 준다. location.search는 url의 파라미터를 가져올 때 쓴다. 예를 들어 www.naver.com?search=안녕하세요 의 ?search부분을 가져오는 것이다. 사이트에 들어가 관리자모드로 스크립트문을 확인해 보면 검색창에 입력한 값이 img태그에 들어가고 있다. 보고 딱 생각난 게 sql문제 푸는 것과 비슷하게 img태그를 닫아버리고 script문을 추가하면 될 것 같았다. "> // 를 넣어보니 문제가 풀렸다. 2023. 8. 24. Portswigger - Stored XSS into HTML context with nothing encoded solution 댓글 기능에 저장형 XSS 취약점이 포함되어 있어 alert 함수를 호출하라 한다. 아무 게시물에 들어가 댓글에 를 작성해 주면 게시물에 들어갈 때마다 alert함수가 호출된다. 2023. 8. 24. Portswigger - Reflected XSS into HTML context with nothing encoded solution 간단한 반사형 XSS 취약점을 포함하고 있어 alert함수를 호출하라 한다. 를 입력하면 풀 수 있다. 2023. 8. 24. Portswigger - Basic SSRF against the local server solution 문제에서 재고 확인 url을 변경하여 관리자페이지에서 carlos라는 사용자를 삭제하라 한다. 우선 재고확인 버튼을 누르면 아래 stockApi라는 다른 서버로 재고에 대한 정보 요청을 보내는 게 확인된다. 이를 http://localhost/admin로 바꾼뒤 전송하면 재고 확인 버튼 아래 관리자페이지가 나타나는걸 볼 수 있다. 여기서 carlos옆에 삭제 버튼을 누르면 관리자 인터페이스는 관리자계정으로 로그인되어있거나 루프백에서 요청되어야지만 사용할 수 있다.라는 문구와 함께 삭제되지 않는다. 여기서 루프백이란? 네트워크에서는 127.0.0.1 또는 localhost를 루프백이라 말한다. 우리는 관리자계정을 모르니 루프백으로 요청을 보내야 한다. 삭제 버튼을 누르면 get방식으로 주소를 받는데 이걸 .. 2023. 8. 11. Portswigger - Exploiting XXE using external entities to retrieve files solution 이번 문제는 XXE(XML eXternal Entity) 즉, XML 외부 엔티티를 이용한 공격을 하면 된다. 문제에서는 재고확인 기능이 있는데 이 기능을 이용하여 XML 외부 엔티티를 삽입해 /etc/passwd 파일을 불러오라고 나와있다. XML과 XEE에 관한 내용은 https://jh-hack.tistory.com/78에서 확인 할 수 있다. [개념정리] XXE 란? 대표적이 웹 해킹 기법이라 하면 SQL injection, XSS, CSRF, XXE 등등이 있다. 이중 XXE는 무엇일까? XXE는 XML External Entity의 약자이다. 먼저 XXE를 알아보기전에 XML이 무엇인지 알아야 한다. XML이란? XML이란 jh-hack.tistory.com 우선 홈페이지의 재고확인 버튼을 눌.. 2023. 8. 11. 이전 1 2 3 4 5 6 7 다음 728x90