분류 전체보기 155

[빡공팟 5기] W7 : XS-Search Write-up

[ 문제 풀이 ] - 초기화면이며 2개의 메뉴가 있습니다. - 순서대로 살펴보겠습니다. - search 검색하는 페이지와 URL 을 넣어 리포트 하는 페이지입니다. - dream 을 넣어 검색해보고 URL 을 넣어 Report 해봤는데 URL 부분은 good 이라는 팝업창만 뜨고 아무일도 일어나지 않았습니다. - 이제 소스코드를 살펴보겠습니다. - 2개를 동시에 살펴보면 search 페이지에서 요청자에게 'query' 값을 받아옵니다. - query 의 값이 None 이라면 search.html 을 렌더링합니다. - notes 안에 있는 내용을 기반으로 note, private 으로 for 문을 돌립니다. - private == True 라면 요청 패킷의 헤더 HOST 가 로컬 서버가 아니라면 conti..

TeamH4C 2022.11.06

[빡공팟 5기] W7 : Relative Path Overwrite Write-up

[ 문제 풀이 ] - 초기 화면입니다. - 총 3개의 메뉴가 있고 순서대로 들어가보겠습니다. - vuln page 페이지이며 파라미터에 dreamhack 입력값이 주어져있습니다. - 파라미터의 값을 변경시켜보았고 태그를 삽입해보았습니다. nope !! 이라고 뜬 걸 보니 필터링 기능이 있는 듯 합니다. - 역시나 확인해보니 filter.js 가 존재하는 것을 볼 수 있습니다. - 여기서 주목해야 할 코드는 바로 아래와 같습니다. var param_elem = document.getElementById("param"); var url = new URL(window.location.href); var param = url.searchParams.get("param"); if (typeof filter !==..

TeamH4C 2022.11.06

[빡공팟 5기] W7 : CSP Bypass Write-up

[ 문제 풀이 ] - 3개의 메뉴가 존재하는 초기 화면입니다. - 한번 3개의 메뉴를 다 눌러서 확인해보겠습니다. - 파라미터로 이미지 태그가 삽입된 것을 볼 수 있습니다. - 한번 이미지 태그를 이용하여 onerror 속성의 이벤트가 발생하는지 확인해보았습니다. - onerror 속성의 이벤트가 발생하지 않음을 볼 수 있습니다. - memo 페이지에서 memo=의 파라미터 값이 그대로 텍스트로 출력되는 것을 볼 수 있습니다. - 태그를 입력해도 그대로 텍스트로 출력됩니다. - flag 페이지에 들어간 모습입니다. - 입력폼에 적절한 태그를 삽입한 공격 URL 을 삽입하여 제출하면 POST 메소드로 서버에 param 이라는 이름으로 전송됩니다. - 이제 소스 코드를 분석해보겠습니다. - "Content-..

TeamH4C 2022.11.06

[빡공팟 5기] W7 : XSS Filtering Bypass Write-up

[ 문제 풀이 ] - 총 3개의 메뉴를 가지고 있는 초기 화면입니다. - vuln(xss) page 에 들어가보니 이미지가 있습니다. - URL 을 확인해보니 img 태그가 있습니다. - img 태그와 onerror 속성을 작성해보았더니 onerror 가 동작하지 않음을 볼 수 있습니다. 아마, onerror 가 필터링되지 않았을까 예상해봅니다. - memo= 의 파라미터가 그대로 텍스트로 출력되는 것을 볼 수 있습니다. - 태그를 대입해도 그대로 출력됩니다. - flag 페이지에 들어간 모습입니다. - 여기에 적절한 태그를 삽입한 URL 을 작성하여 임의의 사용자가 누르면 XSS 가 발동할 것입니다. - 이제 소스 코드 분석을 해보겠습니다. - xss_filter() 함수에 text 를 인자로 넣습니다..

TeamH4C 2022.11.06

[빡공팟 5기] W6 : DVWA 실습 - 라이트업 링크 모음

1. Brute-Forece 2. Command Injection 3. CSRF 4. File Inclusion 5. File Upload 6. Insecure CAPTCHA 7. SQL Injection 8. SQL Injection (Blind) 9. Weak Session IDs 10. XSS (DOM) 11. XSS (Reflected) 12. XSS (Stored) 13. CSP Bypass 14. JavaScript [ 6주차 후기 ] 6주차는 DVWA medium 단계 올클리어였다. Low 단계 할 때 엄청 검색하고 분석하고 하다보니까 medium 단계는 조금 수월했던 것 같다. 그리고 low 에서 medium 으로 넘어갈 때 보안적으로 어떻게 신경썼는지 차이를 느끼는 게 재밌었다. 하지만 ..

TeamH4C 2022.10.30

[빡공팟 5기] W6 : DVWA 실습 - JavaScript (medium)

[ 실습 목표 ] Simply submit the phrase "success" to win the level. Obviously, it isn't quite that easy, each level implements different protection mechanisms, the JavaScript included in the pages has to be analysed and then manipulated to bypass the protections. success 라는 문구를 제출하면 성공이다! [ 실습 화면 ] - 한번 success 문구를 입력해보았다. - Invalid token 이라는 문구가 출력된다. - 소스 코드를 분석해보자. - setTimeout은 300ms 마다 do_elseso..

TeamH4C 2022.10.30

[빡공팟 5기] W6 : DVWA 실습 - Content Security Policy (CSP) Bypass (medium)

[ 실습 목표 ] Bypass Content Security Policy (CSP) and execute JavaScript in the page. CSP 를 우회하여 자바 스크립트를 실행시키는 것이 이번 실습의 목표다! [ 실습 화면 ] - 여기에 입력한 내용이 페이지에 바로 입력되므로 알림 상자가 나타날 수 있는지 확인하라는 메시지와 함께 입력 폼이 존재한다. - 소스 코드를 보면 self, unsafe-inline, nonce-TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA= 는 허용한다는 내용인 것 같다. - 시험 삼아 스크립트 태그를 입력했고 아무런 일도 발생하지 않았다. - 스크립트 태그가 삽입된 것을 볼 수 있다. - 분명 인라인으로 삽입된 자바스크립트는 실행이 되어야하는데 ..

TeamH4C 2022.10.30

[빡공팟 5기] W6 : DVWA 실습 - Stored Cross Site Scripting (medium)

[ 실습 목표 ] Redirect everyone to a web page of your choosing. 내가 선택한 웹 페이지로 모든 사람들을 리다이렉트 시키는 것이 실습 목표이다. [ 실습 화면 ] - 게시글을 올리는 폼이다. - 폼의 길이를 늘리고 스크립트 태그를 이용해서 필자의 서버에 리다이렉트 시켜보았다. - 아마 안될 것이다. low 레벨에서 이런 식으로 리다이렉트 시켰기 때문이다. - 스크립트 태그만 사라져서 업로드 된 것을 볼 수 있다. - 스크립트 태그가 필터링 된 것 같은데 소스 코드를 확인해보자. - 스크립트 태그가 빈 문자열로 치환되는 것을 알 수 있다. - 이것도 앞선 공격처럼 코드를 작성해보자!

TeamH4C 2022.10.30

[빡공팟 5기] W6 : DVWA 실습 - Reflected Cross Site Scripting (medium)

[ 실습 목표 ] One way or another, steal the cookie of a logged in user. 로그인 한 유저의 쿠키를 탈취하는 것이 이번 실습의 목표다! [ 실습 화면 ] - 이름을 입력해보자. - 입력값에 대해 Hello 을 붙였다. - 소스코드를 살펴보니 script 태그는 그냥 빈 문자열로 치환했다. - 앞선 공격과 비슷한 패턴으로 문자열 삭제를 이용하여 우회를 할 수 있지 않을까?

TeamH4C 2022.10.30

[빡공팟 5기] W6 : DVWA 실습 - DOM based Cross-Site-Scripting (medium)

[ 실습 목표 ] Run your own JavaScript in another user's browser, use this to steal the cookie of a logged in user. 자바스크립트를 실행하여 로그인 한 유저의 브라우저를 통해서 해당 유저의 쿠키를 탈취하는 것이 실습의 목표이다! [ 실습 화면 ] - 언어를 선택하는 초기화면이다. - 언어를 선택하고 Select 버튼을 눌러보았다. - 페이지의 URL 의 파라미터가 변경되는 것을 볼 수 있다. - 해당 URL 에 스크립트 태그를 삽입해보았다. - 아무 일도 일어나지 않았다. 당연하다 이게 발생하면 Low 레벨과 다를 것이 없다. - 소스 코드를 한번 살펴보자! - 문자열 비교를 통해서 스크립트 태그를 필터링하는 것을 볼 수 있..

TeamH4C 2022.10.30