본문 바로가기

728x90

전체 글

(372)
[Method] Status가 301인 건에 대해.. "fuzzing 툴을 보다가 우연찮게 응답 값이 301인 녀석들이 보였다. 이게 뭘까?" 301 Permanently Moved fuzzing 툴을 사용하다 보니 응답 값이 200인 녀석들도 있고 301인 녀석들도 보였다. 결과로서 나온 거다 보니 써먹을 한 정보겠지만 응답 값 301인 녀석들이 어째서 써먹을 만한 정보들인지 한 번 구글링 해봤다. http 200은 요청이 성공했음을 나타내는 응답 값이다. 그럼 301은 뭐라고 정의할까? 찾아본 결과 페이지가 로딩이 되면서, header에서 forward처리 될 때, 나타나는 HTTP State 코드라고 한다. 즉 다음과 같지 않을까? "해당 URL이 새로운 URL로 변경되었음을 나타낸다" 그런데 뭔가 부족하다 301은 Permanently Move라고 ..
[Git] 저장소 초기화와 압축 "그동안 커밋 & 푸시로만 저장소에 히스토리를 쌓다 보니 어느 순간에. git의 폴더가 100mb가 넘어버려 push를 하는 과정이 길기도 하고 push에 실패했다." History History 내역 즉 커밋 내역은 살려두고 용량을 압축하거나 줄이는 방법은 없을까 하고 열심히 구글링을 시작하여 다음과 같은 방법을 찾았다. git-scm.com/book/ko/v2/Appendix-C%3A-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EA%B4%80%EB%A6%AC Git - 관리 git filter-branch 명령은 커밋 뭉치를 수정하는 데 사용한다. 전체 히스토리에서 파일을 삭제하거나 디렉토리 구조를 변경하는 데 사용한다. git-scm.com 링크를 건 사이트에서는 여러 가지 내용이 ..
[pwn][pwnable.kr] : 파일 디스크립터 유닉스, 리눅스 시스템은 파일이다. 시스템에서 프로세스가 이 파일들을 접근할 때에 파일 디스크립터라는 개념을 이용한다. 파일 디스크립터는 0이 아닌 정수이며 0, 1, 2, 가 있으며 각각 표준 입력, 표준 출력, 표준 에러이다. 관련 문제로는 pwnable.kr의 fd이고 이 문제가 파일 디스크립터라는 개념을 이용하며 소스 코드는 다음과 같다. read 함수는 fd는 파일 디스크립터 ( 0,1,2) , buf는 파일을 읽어들일 버퍼, 32는 버퍼의 크기이다. 즉 fd가 0이 되게 만들어주면 표준 입력을 할 수 있다. atoi(argv [1]) - 0x1234를 보아 프로그램을 실행할 때 인자로 4660 (10진수 4660은 16진수 1234)를 입력하면 0이 된다. 인자로 4660을 입력하자 입력을 할..
[gdb] : Break Point 브레이크 포인트를 걸 때 위와 같이 브레이크 포인트가 걸렸을 때는 아직 화살표가 가리키는 라인은 실행되지 않는 상태 화살표가 가리키는 라인은 eip가 가리키고 있는 곳, eip는 "다음에 실행 될 위치"를 가리키고 있는 레지스터이기 때문 정리하자면, 105번 까지 실행이 된 상태이고 108번이 실행되기 전이므로 eax 값을 변경하게 되면 cmp 구문이 원래 의도된 것과 다르게 실행될 수 있음 레지스터 값을 변경할 때 그래서 예시로 108번 offset에 브레이크 포인트를 걸고 위와 같이 레지스터의 값을 변경하면 된다, (c는 continue 계속 실행) # change register value # break point with gdb 제 블로그의 내용이 도움이 되셨나요? 여러분의 공감과 댓글이 큰 힘이..
[N00bCTF][MISC] Welcome N00b World~! 문제어 주어지는 디스코드 채널과 연결한 뒤 채널의 상단에 보니 플래그가 숨겨져 있었음 Very Easy Crypto problem.txt 라는 암호화된 텍스트가 담겨진 파일을 제시하는데 해당 내용은 base85로 디코딩하면 복호화 됨 The Middle Age Crypto 문제에서 힌트를 '중세시대'라고 주고 있었으므로 구글링한 뒤 문제에서 제시하는 png 파일을 기반으로 복호화 해주는 사이트를 찾은 뒤 png 파일에서 제시하는 것에 매칭되는 그림을 입력값을 넣으면 플래그가 나옴 플래그 형식이 N00bCTF{result_value}라고 되있고 문제에서도 줄바꿈이 되있길래 '_'를 넣어서 풀어야하는 줄 알았지만 그냥 이어서 쓰면 정답 Compare php의 느슨한 비교..
[ctfLearn][Review] : Inj3ction Time 설명을 읽어보자면 UNION SQL Injection을 이용해 풀어야 하는 것을 힌트로 주고 있습니다. 링크로 들어가 봅시다. 입력을 받을 수 있는 폼 하나와 그 밑으로 어떤 데이터가 나와있습니다 입력 폼에 2를 입력해봅시다. 2를 입력하고 보니 GET 방식으로 전송이 요청되었고 밑의 데이터가 변경된 걸 확인할 수 있습니다. 앞서 언급했듯 UNION SQL Injection을 이용해야 하는 문제이므로 UNION SQL Injection을 시도하기 전 UNION SQL Injection을 어떻게 해야 되는지 정리해봅시다. # Summary ## UNION SQL INJECTION : 2개 이상의 쿼리를 요청하여 결과를 얻는 UNION 연산자를 이용하여 : 요청에 추가 쿼리를 삽입하여 정보를 얻어내는 공격 ..
[weCTF2020] : Build Up WeCTF Build up ctftime.org의 캘린더를 보다 weCTF라는 일정이 눈에 띄어서 들어가봤더니 Jeopardy 처럼 나오는 형식은 아니고github 링크로 연결되었습니다. README.md 를 읽다보니 docker-compose로 직접 빌드해서 쓰면 된다 나와있었기 이용해봤습니다. wectf repository : github.com/wectf/2020p wectf/2020p WeCTF 2020+ Source Code & Organizer's Writeup. Contribute to wectf/2020p development by creating an account on GitHub. github.com 위 링크에 들어가 Run Challenges Locally 항목을 보면 다음과 같이 ..
React && DJango 파일 업로드 "이 포스팅은 React와 django를 이용해 파일 업로드를 성공한 내용을 기록하는 것이고 django에서 파일 업로드를 하는 전체적인 설정 같은 세부 내용은 다루지 않습니다." Django Setting django의 기본 개념을 설명하는 글은 아니므로 짧게짧게 기술하도록 하겠습니다. # 파일 업로드를 위한 모델 생성 [models.py] from django.db import models class UploadFileModel(models.Model): description = models.CharField(max_length=255) files = models.FileField(upload_to="documents", null=True) upload_at = models.DateTimeField(..

728x90
반응형