dolephine homepage

security

    • CTF
    • 시스템
      • Bandit
      • Dreamhack-리버싱
    • 웹
      • Dreamhack
      • PortSwigger
    • 웹 취약점
      • File Upload 취약점
      • XSS
  • bandit 29 → 30

    https://overthewire.org/wargames/bandit/bandit30.html git을 clone하고 조사하여 패스워드를 획득하는 것이 목표다. 이번에도 git clone 과정을 수행한다. git의 log와 show를 수행한다. 이전과는 달리 얻을 수 있는 정보는 없었다. .git 안에서 정보를 찾아본다. packed-refs 파일은 최적화를 위해 깃의 참조 정보가 저장된다고 한다. 즉, 브랜치, 태그, 원격 브랜치들을 가리키는 커밋 해시 값의 매핑을 담고 있다고 한다(Chat GPT 피셜). packed-refs 파일을 읽고…

  • LEVEL 2: CSP Bypass

    https://dreamhack.io/wargame/challenges/435 소스 코드 분석 /flag 페이지에서 삽입한 페이로드를 check_xss 함수에서 취약한 페이지로 연결된 url을 read_url 함수로 생성한 웹 봇이 방문한다. /flag 페이지에서 삽입한 페이로드를 취약한 페이지인 /vuln 페이지에 삽입하고 해당 url을 웹 봇에게 방문시킨다. CSP로 보안 설정을 한다. 이 문제를 풀기 위해 눈여겨볼 함수다. 다른 페이지들은 여태 풀어본 XSS와 아주 유사하다. 차이점은 CSP로 설정한 nonce가…

  • bandit 22 → 23

    https://overthewire.org/wargames/bandit/bandit23.html 이번엔 /etc/cron.d를 살펴보라고 한다. bandit22의 크리덴셜을 구할 때와 아주 유사한 문제다. 크론 디렉터리에서 bandit23에 대한 크론 파일을 확인해보니 쉘 스크립트를 실행하는 스케줄러였다. 해당 쉘 스크립트를 확인해서 어떤 동작을 하는지 본다. myname 변수에 “bandit23″이 할당된다. 그 이유는 크론에서 bandit23이 해당 쉘 스크립트를 실행하게 되어있고, whoami 명령어는 자신의 계정을 출력하기 때문이다. 그러면 bandit23은 whoami로 “bandit23″을 출력하는데…

  • bandit 23 → 24

    https://overthewire.org/wargames/bandit/bandit24.html 이번 문제는 크론 디렉터리에서 파일들을 보라고 한다. 이전 문제들처럼 크론 파일의 내용을 보면 매 분마다 bandit24가 쉘 스크립트를 실행한다. 어떤 쉘 스크립트인지 확인해보니 /var/spool/bandit24/foo 디렉터리에서 소유자가 bandit23인 파일이 있다면 해당 파일을 실행 후 삭제하는 스크립트이다. 그러므로 해당 디렉터리에 쉘 스크립트 파일을 생성하면 bandit24가 실행해 줄 것이다. 해당 디렉터리에 파일을 write 해야 하므로 권한을 확인한다.…

  • bandit 24 → 25

    https://overthewire.org/wargames/bandit/bandit25.html 30002번 포트에 bandit24의 패스워드와 4자리의 숫자를 전송해서 맞춘다면 bandit25의 패스워드를 알려준다고 한다. 최대 10000번의 시도를 해야 하는데 4자리 숫자에 대한 힌트는 없으므로 브루트포싱으로 맞혀야 한다. 경우의 수 0000~9999를 워드리스트 파일로 만들어서 nc 명령어로 전송하여 패스워드를 획득할 수 있다. 우선 워드리스트 파일을 만들어야 하니 임시 디렉터리를 생성하고 이동한다. 0000~9999를 다 입력할 수는 있지만 시간이 많이…

  • LEVEL 3: XSS Filtering Bypass Advanced

    https://dreamhack.io/wargame/challenges/434 소스 코드 분석 필터링을 제외한 나머지는 위 링크의 환경과 같으므로 생략한다. 이번 필터링은 script, on, javascript, window, self, this, document, location, (, ), &# 문자가 나오면 “filtered!!!” 문자열을 리턴한다. 풀이 페이로드에 필터 문자열이 하나라도 포함된다면 “filtered!!!” 문자열을 반환하여 공격을 성공시킬 수 없다. 그런데 필터 문자열 중 자바스크립트를 실행한다고 선언하는 문자열들이 포함되어 있으므로 자바스크립트를 실행시킬…

  • bandit 17 → 18

    https://overthewire.org/wargames/bandit/bandit18.html 이번 문제는 passwords.old와 passwords.new 두 파일을 비교하여 passwords.new 파일의 유일한 라인을 획득하면 된다. diff 명령어로 두 파일을 지정하면 유일한 라인을 구할 수 있다. 출력된 각 파일의 유일한 라인은 순서대로 passwords.old 파일이 윗줄(C6…Z0Y), passwords.new 파일이 아랫줄(x2…GlO)가 되므로 아랫줄이 이번 문제의 목표가 된다. 크리덴셜 획득

  • bandit 18 → 19

    https://overthewire.org/wargames/bandit/bandit19.html 이번 문제는 홈 디렉터리의 readme 파일을 읽어야 한다. 그러나 .bashrc가 수정되어 로그인하면 바로 로그아웃이 된다고 한다. 로그인을 해도 바로 로그아웃이 되니 당황스러울 것이다. 그래도 이런 상황에서 명령어를 실행시킬 방법이 있다. ssh 명령어를 지금까지 ssh [옵션] [연결주소] 이런 형식으로 사용해왔는데 연결 주소 뒤에 커맨드를 삽입해서 보낼 수 있다. 이를 이용해 우선 ls로 readme의 존재를 확인한다.…

  • bandit 19 → 20

    https://overthewire.org/wargames/bandit/bandit20.html 홈 디렉터리의 setuid가 설정된 파일로 bandit20의 크리덴셜을 획득해야 한다. setuid는 소유자의 권한으로 실행된다. 아래의 사진과 같이 소유자가 bandit20이고 권한은 rws라 되어있는데 setuid가 설정되어 있어 실행 권한 부분이 x가 아닌 s로 표시되는 것이다. 해당 파일을 실행하여 사용법을 확인한다. 다른 사용자로 커맨드를 실행한다고 한다. 다른 사용자는 bandit20을 얘기한다. 사용법은 id 부분에 커맨드를 입력하면 될 것이다. 계정의…

  • bandit 20 → 21

    https://overthewire.org/wargames/bandit/bandit21.html 이번엔 홈 디렉터리의 setuid 파일로 localhost에 연결하고, bandit20의 패스워드와 비교하고 bandit21의 패스워드를 전송한다. 쉽게 풀어쓰면 setuid 파일로 localhost 서버와 연결한다. 그리고 텍스트 한 줄을 bandit20의 패스워드와 비교하고, 읽은 텍스트와 같다면 bandit21의 패스워드를 전송한다. 데이터를 서로 주고 받기 때문에 두 개의 세션이 필요하다. 세션을 추가로 여는 방법은 많으니 편한 방법대로 하면 된다. 한쪽 세션에서는 nc의…

←이전 페이지
1 … 3 4 5 6 7 8
다음 페이지→

dolephine homepage

WordPress.com 제공.

  • 구독 구독함
    • dolephine homepage
    • 이미 WordPress.com 계정을 가지고 계신가요? 바로 로그인하세요.
    • dolephine homepage
    • 구독 구독함
    • 가입
    • 로그인
    • 이 콘텐츠 신고하기
    • 리더에서 사이트 보기
    • 구독 관리
    • 이 표시줄 접기