dolephine homepage

security

    • CTF
    • 시스템
      • Bandit
      • Dreamhack-리버싱
    • 웹
      • Dreamhack
      • PortSwigger
    • 웹 취약점
      • File Upload 취약점
      • XSS
  • Lab: Exploiting NoSQL operator injection to bypass authentication

    https://portswigger.net/web-security/nosql-injection/lab-nosql-injection-bypass-authentication NoSQL Injection으로 “administrator”로 로그인하는 문제다. 우선 로그인 화면으로 이동한다. 기본적으로 주어진 크리덴셜인 wiener/peter를 입력하고 전송하면 아래와 같이 전송된다. administrator로 접속하기 위해 아래와 같이 패킷을 수정해서 전송했다. 그런데 로그인에 실패했다. 아무래도 문제에서 요구한 “administrator”가 계정명이 아니라, 관리자로 로그인하라는 의미였던 것 같다. 그러므로, username은 정규표현식을 사용해서 관리자 계정으로 로그인을 시도한다.

  • Lab: Detecting NoSQL injection

    https://portswigger.net/web-security/nosql-injection/lab-nosql-injection-detection NoSQL 랩의 첫 번째 문제다. 해당 문제는 NoSQL Injection 수행 시, 미출시 제품도 표시되도록 해야 한다. 그러므로, SQLi가 일어날 곳을 찾아야 한다. 카테고리를 클릭하면 URL에 쿼리스트링으로 ?category={ }가 추가된다. 품목도 Gifts 카테고리만 출력된다. 해당 값을 항상 참이 되게 설정하면 모든 상품을 볼 수 있다. OR를 사용해서 항상 참이 되도록 할 수 있다. ?category=Gifts’||1||’ 을…

  • LEVEL 2: safe input

    https://dreamhack.io/wargame/challenges/1671?writeup_page=4 매우 정직한 문제다. /test.html 페이지에서 ?text로 입력한 값을 {{test|safe}}로 화면에 출력한다. safe를 사용했기 때문에 자바스크립트 코드를 사용할 수 있다. http://host8.dreamhack.games:21728/test?text=dolephine 이렇게 입력을 하게 되면 아래의 소스 코드처럼 “dolephine” 문자가 들어가게 된다. “dolephine” 대신, 자바스크립트를 삽입하면 문제를 해결할 수 있다. 아래의 예시를 보여준다. http://host8.dreamhack.games:21728/test?text=a;</script><script>alert(1)</script><script>b alert(1)이 아주 깔끔하게 들어갔다. 이를 조금 수정하여 /report 페이지에서 페이로드를 전송하면…

  • LEVEL 2: DOM XSS

    https://dreamhack.io/wargame/challenges/438?writeup_page=6 DOM XSS를 이용해 관리자의 쿠키 값을 탈취해야 한다. vuln.html의 소스 코드를 살펴보면, param으로 받은 값을 템플릿을 통해 html 화면에 출력하고, “name” 아이디의 객체에 innerHTML을 사용해서 해시(#)에 들어온 값을 삽입하고 있다. 이 부분에서 취약점이 발생한다. 글만 봐서는 이해가 잘 안 갈테니 그림과 함께 설명한다. param으로 입력 받은 값은 {{ param | safe }}으로 들어가고, 해시태그(#)…

  • Beginner: rev-basic-0

    리버싱의 첫 문제다. 주어진 PE 파일을 실행하면 문자열을 입력 받는다. 입력받은 문자열을 내부에 저장된 문자열과 비교하여 true이면 “Correct”를, false이면 “Wrong”를 출력한다. 그리고 내부에 저장된 문자열이 이번 문제의 플래그가 되겠다. IDA로 해당 PE 파일을 뜯어보면 AMD64 체계의 PE 파일인 것을 알 수 있다. View → Open subviews → Strings 로 문자열을 확인해보면 PE 파일 실행 시…

  • LEVEL 2: Relative Path Overwrite

    이번 RPO 취약점은 파일을 절대 경로가 아닌 상대 경로로 설정했을 때 발생할 수 있는 취약점이다. 경로를 사용자가 임의로 수정이 가능하여 파일을 의도하지 않은 곳으로 탈출시킬 수가 있다. 이번 문제의 핵심 코드를 보면 XSS에 대한 필터 역할을 하는 자바스크립트 파일이 상대 경로로 로드하게 되어 있다. 그래서 경로를 조작하여 요청할 경우, 원래는 “script” 문자열이 존재하면 param 파라미터에…

  • LEVEL 3: CSS Injection

    CSS로 요소를 지정하여 해당 value에 내가 쿼리한 값과 일치한다면 지정한 URL로 GET 요청을 보내어 한 글자 씩 추출해내어 해결했다. 아래의 사진들은 이번 문제를 해결하기 위한 핵심 코드다. color에 입력받은 값으로 style을 변경할 수가 있는데, 이때 입력받은 값을 사용자가 GET 메서드로 직접 입력이 가능하고, 해당 기능은 모든 페이지의 헤더에 해당하므로 어느 페이지에서든 style에 코드를 삽입할 수…

  • Intel x86-64 Assembly

    https://learn.dreamhack.io/37#4 명령어 기능 명령어 데이터 이동(Data Transfer) mov, lea 산술 연산(Arithmetic) inc, dec, add, sub 논리 연산(Logical) and, or, xor, not 비교(Comparison) cmp, test 분기(Branch) jmp, je, jg 스택(Stack) push, pop 프로시져(Procedure) call, ret, leave 시스템 콜(System call) syscall 피연산자 메모리 피연산자는 “[ ]”으로 둘러싸여 표현하며, 앞에 크기 지정자(Size Directive)인 TYPE PTR이 올 수 있다.…

  • 레지스터

    https://learn.dreamhack.io/43#6 범용 레지스터 레지스터 이름 의미 주용도 rax Accumulator Register 함수의 반환 값 rbx Base Register x64에서는 주된 용도 없음 rcx Counter Register 반복문의 반복 횟수, 각종 연산의 시행 횟수 rdx Data Register x64에서는 주된 용도 없음 rsi Source Index 데이터를 옮길 때 원본을 가리키는 포인터 rdi Destination Index 데이터를 옮길 때 목적지를 가리키는 포인터…

  • bandit 30 → 31

    https://overthewire.org/wargames/bandit/bandit31.html 모든 풀이 과정이 bandit 29 → 30 동일하다. 이번 README에는 별다른 내용이 없으므로 다른 방법으로 정보 수집을 해야 한다. 그런데 이번 패스워드도 bandit 29 → 30과 동일하게 packed-refs에 저장되어 있었다. 크리덴셜 획득

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

dolephine homepage

WordPress.com 제공.

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