해킹 116

[46] IT 비전공자 [dreamhack]rev-basic-4문제 풀기

벌써 10월도 끝나간다..시간이 정말 빠르다는걸 느낀다. 오늘도 후회없이 살아보자!                디컴파일러해보자!     주어진 C/C++ 코드의 main 함수는 사용자의 입력을 받고, 그 입력을 특정 함수로 검증하여 "Correct" 또는 "Wrong"을 출력하는 구조입니다. 각 부분을 자세히 분석하겠습니다.코드 분석1. 함수 서명 int __fastcall main(int argc, const char **argv, const char **envp)int: 함수가 정수를 반환함을 나타냅니다. 일반적으로 프로그램의 종료 상태를 나타냅니다.__fastcall: 호출 규약으로, 일부 인자를 레지스터를 통해 전달하여 성능을 향상시킵니다.argc: 명령줄 인자의 개수입니다.argv: 각 인자를 ..

[45] IT 비전공자 [dreamhack]Return Address Overwrite문제 풀기

소스코드다// Name: rao.c// Compile: gcc -o rao rao.c -fno-stack-protector -no-pie#include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL);}int main() { char buf[0x28]; init(); printf("Input: "); scanf("%s", buf); return 0;}  주어진 C 코드 rao.c는 간단한 프로그램으로, 입력을 받아서 쉘을 실행하는 기능을 ..

[44] IT 비전공자 [dreamhack]rev-basic-2 문제 풀기

엇 ㅋㅋ 생각해보니 풀이자 많은 순으로 문제를 풀다보니까 거꾸로 순서가 될 때도 있네이게 더 재밌다!  꿀팁 하나 찾았다..https://hyemzzzy.tistory.com/110 [x32dbg/x64dbg] 레지스터 창 없어져서 30분 동안 바보같이 찾았는데 어이없게 찾은 1초 해결방법x32dbg / x64dbg 레지스터 창 없어졌을 때 찾는 방법 / 창 숨기기 서론 갑자기 리버싱 공부하려고 x32dbg 동적 디버깅 툴 사용하던 리버싱 초짜는 갑자기 레지스터창이 없어져서 당황하게 된다.... 30분hyemzzzy.tistory.com          gpt: 이 코드는 C/C++에서 작성된 프로그램의 main 함수로 보이며, 다음과 같은 기능을 수행합니다. 각 부분을 자세히 설명해 드리겠습니다.코드 ..

[43] IT 비전공자 [dreamhack]basic_exploitation_001 문제 풀기

https://jhyuxxk.tistory.com/22 DreamHack 1단계 basic_exploitation_001DreamHack 1단계 basic_exploitation_001 문제를 풀어보겠다. 위 그림에서 NX 보호 기법이 활성화 되어있음에 따라 쉘 코드가 실행되지 않다는 것을 알 수 있다. main 함수 : buf 에 0x80만큼 사이즈가 할당되는jhyuxxk.tistory.comhttps://velog.io/@silvergun8291/Dreamhack-basicexploitation001 [Dreamhack] basic_exploitation_001문제 소스코드를 출력해보면gets() 함수로 크기에 제한 없이 입력을 받고 있기 때문에 버퍼 오버플로우 공격이 가능합니다.read_flag()..

[42] IT 비전공자 [dreamhack]rev-basic-3 문제 풀기

하하하 42번째 문제 가보기전에   dreamhack Reverse Engineering Fundamental Roadmap 수강했다.처음 문제 풀때는 뭔말인지 하나도 몰라서 포기하고 문제 풀었는데그래도 이번에 한번 다시보면 이해되지않을까 수강했다. 그래도 60%는 이해된다!!(뿌듯) 아래에는 내가 혼자 공부하다가 필요한거랑 gpt한테 물어본거 정리했다 아 혹시나 드림핵 수업 정보를 여기다가 정리하면 저작권 문제되는지는 정확히 모르겠다문제가 있다면 내리겠습니다!  범용 레지스터 🧺범용 레지스터는 주용도는 있으나, 그 외 임의의 용도로도 사용될 수 있는 레지스터입니다. x86-64에서 각각의 범용 레지스터는 8바이트를 저장할 수 있으며, 부호 없는 정수를 기준으로 2^64 - 1까지 나타낼 수 있습니다...

[41] IT 비전공자 [dreamhack]image-storage문제 풀기

후후 41번째 문제..과연 무슨 문제가..?     php PHP는 웹사이트에 회원가입을 할 때 아이디 검사, 주소 검색, 비밀번호 유효성 검사 등의 행위를 실행하도록 만들어주는 역할을 합니다. 조금 더 자세히 설명드리자면 동적인 웹페이지를 만들기 위해 설계가 된 언어입니다.         흠 파일 업로드 취약점을 이용해 flag를 획득해라는건...하나도 모르겠다 (먼산) 이럴땐 우리 gpt를 불러보자 나: php로 작성된 파일 저장 서비스에서 파일 업로드 취약점이 뭐가 있어? gpt: PHP로 작성된 파일 저장 서비스에서 발생할 수 있는 파일 업로드 취약점은 여러 가지가 있으며, 이들 취약점은 보안에 심각한 위협을 줄 수 있습니다. 주요 취약점은 다음과 같습니다:1. 파일 확장자 검증 실패서버가 사용자..

[40] IT 비전공자 [dreamhack]csrf-2문제 풀기

하아아아앗 csrf-2 40번째 문제 가봅시다!!!              하지만 guest 로그인 후 flag 페이지에서 스크립트를 입력해도 good 창만 뜨고 입력 받은거에 뭐 뜨는 페이지가 없다memo...memo 페이지 어디갔어...  뭔가 여기까지 시도 후 생각한건  1. memo페이지가 아마 admin으로 로그인하면 생기지않을까 2. 그래서 flag페이지에서 입력 후 그게 화면으로 출력되서 보이지않을까 라는 가설.  소스코드 보러가자! #!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_forfrom selenium import webdriverfrom selenium.w..

[39] IT 비전공자 [dreamhack]csrf-1문제 풀기

39번째 문제 가보자  forgery=위조 **CSRF (Cross-Site Request Forgery)**는 웹 보안 취약점 중 하나로, 악의적인 웹사이트가 사용자의 브라우저를 이용해 사용자가 의도하지 않은 행동을 하도록 유도하는 공격입니다. 사용자가 로그인된 상태의 웹사이트에서 악성 요청이 발생하게 하여 중요한 데이터에 접근하거나 조작하게 만드는 방식입니다.CSRF의 작동 원리사용자 인증: 사용자가 특정 웹사이트(예: 은행 웹사이트)에 로그인하여 인증된 상태입니다. 이때, 브라우저는 세션 쿠키를 저장하여 사용자의 인증 정보를 유지합니다.악성 웹사이트 방문: 사용자가 다른 악성 웹사이트를 방문하게 됩니다. 이 웹사이트에는 CSRF 공격을 위한 악성 스크립트나 링크가 포함되어 있습니다.악성 요청 생성:..

[38] IT 비전공자 [dreamhack]xss-2문제 풀기

38번째 문제 가보자구 WEB 문제다 https://imaginefuture-1.tistory.com/38 [36] IT 비전공자 [dreamhack]xss-1문제 풀기36번째 문제 가보자고!  XSS(교차 사이트 스크립팅, Cross-Site Scripting) 취약점은 공격자가 악성 스크립트를 웹 페이지에 삽입하여 다른 사용자의 브라우저에서 실행되도록 하는 공격 imaginefuture-1.tistory.comxxs-1에 이은 xxs-2 문제다   홈페이지는 외관상 똑같다.     소스코드나 보자...#!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.we..

씹어먹는 C언어 혼자 실습 (1)

https://modoocode.com/231 씹어먹는 C 언어 시작하기모두의 코드 씹어먹는 C 언어 시작하기 작성일 : 2009-04-15 이 글은 526306 번 읽혔습니다. 안녕하세요 여러분. 씹어먹는 C 언어를 연재하고 있는 Psi 입니다. 제 강좌는 제가 참고했던 무수히 많은 책,modoocode.com 혼자 실습 기록용//#include ////int main() {// // int a;// // a = 100000000000;// // printf("a 의 값은 : %d \n", a);// // return 0;////}//////int main() {//// int a = 10;//// a = 127;//// printf("a의 값은 %d 진수로 %o입니다. \n", 8, a);//// p..

Study/C Language 2024.10.16