bandit 풀이 level 0~6
·
동아리_I.Sly()
level 0로그인 후 패스워드에 bandit0 입력level 0 → 1cat:level 1 → 2파일 목록(숨겨진 것까지) 찾는다. -의 이름을 가진 파일이 있고 권한은 bandit2가 가지고 있다. 그냥 cat으로는 대기 상태가 되고 출력은 되지 않는다.옵션을 의미하는 기호가 아니라 파일명으로 인식하게 하려면 경로명을 포함해서 cat 하면 된다. cat ./-level 2 → 3spaces in this filename의 이름을 가진 문서가 있다. cat 해보니 각각 따로 따로 검색이 되어서 합칠 수 있는 방법을 찾아보았다.띄어쓰기 앞에 \ 백슬래시를 넣으면 띄어쓰기가 가능함을 알게 되었다level 3 → 4inhere가 디렉토리임을 알아서 해당 디렉토리로 이동했다숨겨진 파일까지 찾아보니 한 파일에 ..
w3 요약
·
동아리_I.Sly()
자료구조여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 것 → 데이터의 효율적인 관리 및 사용을 위해 자료구조가 필요함데이터: 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값종류단순구조자료값 사용을 위해 T/F, 정수, 실수, 문자 및 문자열 같이 컴퓨터가 기본적으로 제공하는 자료형선형구조자료를 구성하는 데이터를 순차적으로 나열시킨 형태로 자료들간의 관계가 1:1인 자료비선형구조하나의 자료 뒤에 여러 개의 자료가 존재할 수 있는 것으로 계층 구조나 망 구조로 이루어짐파일구조보조기억 장치에 데이터가 실제로 기록되는 형태로 메모리에 한 번에 올릴 수 없는 대용량을 다룸서로 관련있는 필드로 구성된 레코드 집합인 파일에 대한 자료구조스택 LIFO데이터 삽입과 추출이 한쪽 방향만 가능..
[dreamhack] simple sqli
·
W3B H4CK1NG
상단 바에 Home, About, Contact가 있지만 실제 페이지는 Login만 존재  데이터베이스 파일명을 database.db로 설정userid, userpassword가 각각 guest, guest인데 admin의 경우에는 {binascii.hexlify(os.urandom(16)).decode(“utf8”)}: 랜덤 16바이트 문자열을 16진수로 표현하도록 되어있다.  POST 메소드 요청 전달한 경우, users 테이블에서 입력한 userid와 userpassword가 일치하는 정보를 불러온다. 존재하면 로그인할 계정을 해당 쿼리 결과에서 불러와 사용하고 존재하지 않으면 wrong 메시지 출력로그인하는 계정이 관리자 계정이면 flag 출력, 아니면 hello 출력 해결 방법 - SQL inj..
[dreamhack] csrf-2
·
W3B H4CK1NG
가장 먼저 볼 수 있는 화면. vuln, flag, login 페이지가 있다.read_url 함수: Python Selenium을 사용해 지정된 URL에 접속하고 쿠키를 설정한 후, 페이지를 로드하는 함수cookie={“name”: “name”, “value”: :value”}: 이름과 값을 가지는 쿠키를 설정하는 딕셔너리name = name, value=value로 설정되어 있음 / (메인) 페이지 → 세션 기반 인증session_id = request.cookies.get('sessionid', None): 쿠키에서 세션 아이디 가져오기. 없으면 none이 기본값username = session_storage[session_id]: 가져온 session_id를 사용해 storage라는 세션 정보 저장..
범용 레지스터, 플래그 레지스터, 스택 프레임
·
reversing
general register 범용 레지스터reg size: 4 byte종류: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP, EIPEAX, EBX, ECX, EDX → 산술 명령어에서 상수나 변수값이 저장되는 용도EAX는 결과값을 저장하거나 오퍼랜드(피연산자)를 축적ECX는 while, for 반복문을 사용할 때 ECX loop count -1 감소ESI, EDI, EBP, ESP은 메모리 주소를 저장하는 포인터로 사용EBP는 ESP 값을 저장ESP는 스택 메모리 주소를 저장EIP는 CPU가 처리할 명령어 주소EAX: 4byteAX: 2byteAH(high): 1byteAL(low): 1byteflag register 플래그 레지스터명령어의 실행 여부를 결정함명령 수행에 따라 t..
리버싱 개념, 크랙과 패치, 바이트 오더링
·
reversing
리버싱컴퓨터 용어 X, 역공학Reverse Engineering == Reverse Code Engineering리버싱 분석 방법정적 분석정적 파일의 겉모습을 분석IDA(정적/동적)파일을 실행하지 않고 분석동적 분석동적 파일 깊이 들어가서 분석하고 관찰Cheat Engine, Olly dbg, x64dbg 파일을 실행하고 분석하는 방법코드소스코드ex) printf(”hello world”);Hex codeassembly codeex) moc eax, ebx패치와 크랙패치: 프로세스의 메모리를 변경하는 것크랙: 패치와 비슷하지만 비도덕적인 메모리 변경프로그램 빌드 과정: 전처리 → 컴파일 → 어셈블 → 링크실습) 디버깅의 목표Hello World 실행파일을 디버깅하여 어셈블리 언어로 변환하고 main함수를..