본문 바로가기

전체 글308

[abex' crackme] #4 문제 풀이 파일을 실행하면 Serial을 입력하라는 입력 창이 뜬다. 입력은 되지만 Registered 버튼이 활성화되지 않는다. 이뮤니티 디버거로 열어서 주석을 봤을 때, 이 부분이 올바른 시리얼 값을 입력했을 때에 출력된 문자들로 추측된다. 여러 함수 중 vbaStrCmp 함수가 있는 것을 확인했다. 정해진 시리얼 값과 비교하는 함수라고 추측해서 해당 부분에 BP를 설정했다. F9로 해당 주소로 이동했더니 시리얼 입력 창이 떴다. 아무거나 입력했더니 레지스터 값들이 변경됐다. 특히 ECX 레지스터를 보면 유니코드 값이 보인다. 이 값을 시리얼 값이라고 추측해서 입력해봤더니 Registered 버튼이 활성화되어 문제를 풀 수 있었다. 2024. 3. 29.
[Dreamhack] Reversing Basic Challenge #1 https://dreamhack.io/wargame/challenges/15 rev-basic-1Reversing Basic Challenge #1 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io  프로그램을 분석해서 correct를 출력하는 입력 값을 알아내는 문제이다.  문제 파일로는 exe 파일이 하나 있다.   해당 파일을 Text editor로 열어 보면 43 6F 6D 70 61 72 33 5F 74 68 65 5F 73 74 72 31 6E 67Compar3_the_str1ng 이라는 값이 있는 것을 확인할 수 있다. 이 값이 플래그라고.. 2024. 3. 23.
[윈도우즈 보안과 악성코드 기초] 문자열 패치 실습 1.hexdump 영역에서 www.reversecore.com → www.swu.com 수정 이뮤니티 디버거에서 메시지 창 제목의 문자열이 보이는 곳으로 이동한다.   해당 주소를 실행 전에 더블 클릭하여 주소를 복사한다.  덤프 창에서 [Ctrl+G] 후, 복사한 주소를 붙여넣기 하고 OK 버튼을 클릭한다.  해당 문자열이 보이는 곳으로 이동했음을 확인할 수 있다.  바꾸려는 문자열 부분을 드래그 후 [Ctrl+E]를 하고, 유니코드를 SWU.COM으로 수정한다.  www.swu.com으로 바뀐 것을 확인할 수 있다.  메시지 박스까지 실행하면 메시지 창의 제목이 SWU.COM으로 수정된 것을 확실히 확인할 수 있다. 2. 어셈블리 코드 번지수 수정 덤프 창에서 [Ctrl+G]를 클릭해서 메시지 창 제.. 2024. 3. 23.
[윈도우즈 보안과 악성코드 기초] 리버싱 이론 (리틀 엔디안 표기법, Register 이해, assembly 언어) 리틀 엔디안 표기법 바이트 오더링 - 컴퓨터에서메모리에데이터를저장하는방식 - Big Endian(순서대로 표기), Little Endian(역순으로 저장) - Intelx86 CPU(Windows 계열) : 리틀 엔디언 방식 사용 예제코드 Register 이해 CPU, Register, RAM CPU: 80x86 (32bit CPU 레지스터) 범용 레지스터 - 4btye(32bit) 전체 사용시 : EAX - 2byte(16bit) 사용시 : EAX의 하위16bit 부분인 AX - AX : 상위 1byte(8bit)AH + 하위 AL 플래그 레지스터 Zero Flag(ZF): 연산 명령 후에 결과 값이 0인 경우에 1로 설정 Overflow Flag(OF) 부호 있는 수(Signed integer)의 오.. 2024. 3. 23.
[Dreamhack] CSRF Advanced https://dreamhack.io/wargame/challenges/442 CSRF AdvancedDescription Exercise: CSRF Advanced에서 실습하는 문제입니다. 문제 수정 내역 2023.08.08 Dockerfile 제공dreamhack.io CSRF 취약점을 이용하는 문제이다.  가상머신에 접속하면 네 종류의 페이지가 있다.please login을 보면 로그인을 하라는 건가 싶다.  문제 코드를 살펴보면guest로 로그인할 수 있고, admin으로 로그인하면 플래그를 얻을 수 있는 것 같다.  우선 guest 계정으로 로그인 했다.  login()에서 로그인이 성공했을  때, 세션과 csrf 토큰을 얻을 수 잇는 것을 알 수 있다.usernaem+addr의 값을 md5 연.. 2023. 11. 22.
[Dreamhack] csrf-1 https://dreamhack.io/wargame/challenges/26 csrf-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referen dreamhack.io CSRF 취약점을 이용해서 플래그를 획득해야 되는 문제이다. CSRF(Cross Site Request Forgery) 취약점이란 임의의 사용자 권한으로 임의의 주소에 HTTP 요청을 하는 취약점을 의미한다. 가상머신에 접속해보면 네 종류의 페이지가 있다. 코드를 보면 usrerid가 admin인 상태로 127.0.0.1에 접속하게 하면 플래그를 얻을 수 있을.. 2023. 11. 22.
[Azure] CORS 설정하기 보호되어 있는 글 입니다. 2023. 11. 20.
[Dreamhack] set-int https://dreamhack.io/wargame/challenges/958 set-int Description 주어진 바이너리와 소스 코드를 분석하고 알맞은 입력값을 찾아 쉘을 획득하세요! 플래그는 flag 파일에 있습니다. 플래그의 형식은 DH{...} 입니다. dreamhack.io 바이너리와 소스코드를 분석해서 입력 값을 찾아 쉘을 획득해야 되는 문제이다. 우분투에서 가상머신에 접속했다. //Name: chall.c //Compile: gcc chall.c -o chall -no-pie -fno-stack-protector #include #include #include #include #include // 시간 초과 시 호출되는 함수 void alarm_handler() { puts("TIME.. 2023. 11. 15.
[Dreamhack] csrf-2 https://dreamhack.io/wargame/challenges/269 csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referen dreamhack.io CSRF 취약점을 이용하여 플래그를 획득해야 되는 문제이다. 가상머신 접속 화면은 이와 같다. 코드를 보면 pw에 내가 원하는 비밀번호를 넣어서 바꿔주면 로그인이 가능할 것 같다. 이를 위해 flag에 를 넣어줬다. admin/admin으로 로그인하면 플래그가 출력된다! 참고 https://ascrim9.tistory.com/20 2023. 11. 15.
[AZ-900] 덤프 문제 풀이 1-15 Question #1 DRAG DROP - Your company intends to subscribe to an Azure support plan. The support plan must allow for new support requests to be opened. Which of the following are support plans that will allow this? Answer by dragging the correct option from the list to the answer area. Select and Place: DRAG DROP - 귀사에서 Azure 지원 플랜을 구독하려고 합니다. 지원 계획은 새 지원 요청을 열 수 있도록 허용해야 합니다. 다음 중 이를 허용하는 지원 계획은.. 2023. 11. 15.
[SWLUG CTF] Cattheflag 보호되어 있는 글 입니다. 2023. 11. 15.
[Node.js] MongoDB로 CRUD 구현하기 보호되어 있는 글 입니다. 2023. 11. 15.
[Azure] 캐싱 작동 방식 1. 캐싱 종류 - 데이터를 향후 요청 시 빠르게 액세스 할 수 있도록 하는 임시 저장소 - 절대적인 요청 횟수를 줄임으로써 속도와 성능 향상 - 일반적으로 자주 바뀌지 않는 데이터에 적용 - 종류 웹 서버 : 공유 캐시(여러 사용자용) 사용 CDN : 공유 캐시(여러 사용자용) 사용 ISP : 공유 캐시(여러 사용자용) 사용 웹 브라우저 : 프라이빗 캐시(단일 사용자용) 사용 2. 리소스 최신 여부 - 캐싱된 데이터가 최신 데이터인지 확인하는 절차 - 캐싱된 데이터의 캐싱 시간을 지정하여 만료 시 Origin 확인 - 다음 헤더 값을 이용하여 최신 여부 판단 Cache-Control Expires 둘 다 존재할 경우 Cache-Control을 우선 - 다음 헤더 값을 이용하여 유효성 검사 Etag La.. 2023. 11. 12.
[Dreamhack] ROT128 https://dreamhack.io/wargame/challenges/852 ROT128 Description rot128.py는 flag.png 파일을 암호화하여 encfile로 저장하는 프로그램의 소스 코드입니다. (풀이자가 프로그램을 직접 실행할 수는 없습니다.) 주어진 encfile을 복호화하여 flag 파일 내용을 알 dreamhack.io encfile을 복호화하여 flag 파일 내용을 알아낸 뒤, flag.png에서 플래그를 알아내는 문제이다. encfile을 복호화하기 위해서 rot128.py를 확인했다. rot128.py는 flag.file을 암호화하여 encfile로 저장하는 파일이다. #!/usr/bin/env python3 # 0부터 255까지의 숫자를 16진수로 변환하여 리스트에.. 2023. 11. 8.
[Dreamhack] sql injection bypass WAF Advanced https://dreamhack.io/wargame/challenges/416 sql injection bypass WAF Advanced Description Exercise: SQL Injection Bypass WAF의 패치된 문제입니다. 문제 수정 내역 2023.07.24 Dockerfile 제공 dreamhack.io SQL Injection Bypass WAF에 의해 패치된 문제이다. 가상머신 접속 화면은 이와 같다. 문제 파일로 제공된 app.py를 확인해보면 키워드를 필터링한다. 입력 받은 data를 소문자로 변환한 후에 (lower함수) 필터링하기 때문에 대문자로도 우회할 수 없다. 필터링에 해당하는 키워드를 입력하면 이런 화면이 출력된다. admin 문자열을 이용해서 블라인드 인젝션을 .. 2023. 11. 8.