일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 비동기배열처리방법
- apolloclient
- promise메서드
- 홍대 예술
- 앙버터마카롱
- 운정 소바동
- 홍대 카페 장쌤
- graphql mutation error
- useMutation error
- 비동기배열
- graphql react native
- 화이트 해커를 위한 웹 해킹의 기술
- 지보싶 신촌점
- 홍대 토라비
- 화이트해커를 위한 웹 해킹의 기술
- graphql
- 토라비
- apollo react native
- promise처리
- 도그존
- typescript
- 잠실새내
- graphql 400
- 잠실새내 도그존
- 신촌 소문난집
- graphql with reactnative
- 금별맥주
- 고르드
- graphql with RN
- 예쁜술집 예술
- Today
- Total
목록분류 전체보기 (151)
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
id: level15 pw: guess what 이번에도 hint를 읽으면서 시작해보장 level 14와 굉장히 비슷한 코드가 attackme의 코드로 나왔다. level14와 다른 점이 있다면 check가 포인터 변수라는 것! 그리고 조건문에서 check가 가리키는 값이 0xdeadbeef여야 한다는 점만 다르다! 따라서 check에 0xdeadbeef가 저장되어있는 주소를 넣어주어야한다. 우선 main함수를 디스어셈블 해서 스택 구조를 파악해보자 level14와 거의 똑같기 때문에 어셈블리어를 따로 해석하지는 않을 예정 ( 2020/09/28 - [wargame 풀이/FTZ] - FTZ level14 풀이 요기에 있음) 이를 바탕으로 그려본 스택 구조는 다음과 같다 (얘도 사실 level14와 똑같음..
백도어 코드 import os, socket, sys def usage(): # help print(''' tcp_reverse_backdoor.py ''' ) exit() if len(sys.argv) >'''.encode()) while True: data = s.recv(1024).decode().lower() if "q" == data: # 프로그램 종료 ex..
백도어 (Backdoor) 운영체제나 프로그램 등을 만들 때 정상적인 인증 과정을 거치지 않고, 운영체제나 프로그램 등에 원격 접속을 보장, plaintext에 접근하는 등의 행동을 들키지 않고 행하는 방법 넓은 의미에서 설계자나 관리자에 의해 남겨진 시스템의 보안 허점 (exploit을 뜻하기도 함) 프로그램 개발이나 유지 보수, 유사시 문제 해결등을 위해 일부러 남겨놓기도 함 (액세스 효율 증대를 위해) -설치된 프로그램 -기존 프로그램 or 하드웨어의 변형 백도어의 종류 로컬 백도어 Cronjob 백도어 원격 백도어 라이브러리 백도어 패스워드 크래킹 백도어 커널 백도어 시스템 설정 변경 백도어 파일 시스템 백도어 트로이 목마 형태의 백도어 프로세스 은닉 백도어 거짓 업그레이드 네트워크 트래픽 백도어..
id: level14 pw: what that nigga want? level14에 로그인 하고 hint를 열어보았다. 이번에는 main 함수 안에 쉘을 띄워주는 코드가 있기 때문에 굳이 쉘 코드를 사용할 필요가 없어보인다. int형 변수 crap과 check, 그리고 char 배열 buf가 보인다. fgets로 45바이트를 입력받고 있는데, buf의 크기는 20이다 -> overflow해서 다른 영역에 접근 가능 그런데 쉘을 띄워주는 부분이 조건문 안에 있다. check와 0xdeadbeef가 같으면 level15권한으로 쉘이 띄워지는 듯 하다. check의 위치 파악을 위해 attackme를 tmp에 복사하고 gdb를 실행해보자 main함수를 디스어셈블 했더니 위와 같은 결과를 알 수 있었다. che..
id: level13 pw: have no clue hint를 보았더니 다음과 같은 코드가 나왔다. 이번에도 strcpy를 사용했기 때문에 BOF 취약점이 존재한다. 그런데 (long) i 값이 0x1234567이 아니면 BOF 경고를 띄워주고 프로그램을 강제 종료시킨다. 이를 방지하려면 공격을 할 때 i자리에는 0x1234567을 그대로 넣어주어야한다. 이제 스택 구조를 알아보기 위해 attackme를 tmp에 복사하고 gdb를 실행시켜주자 main함수를 디스어셈블 했더니 위와 같은 정보를 얻었다. 이를 바탕으로 스택 구조를 그려봤다. 이번에도 환경변수를 생성해서 환경변수에 쉘 코드를 넣고 환경변수의 주소를 return address에 넣어줄 것이다. 하지만 i에는 0x1234567을 넣어주어야 하기 ..
Brute Force Attack (무차별 대입 공격) 특정 정보를 알아내기 위해 가능한 모든 값을 대입해 원하는 정보를 알아내는 공격 1. 모든 경우의 수를 입력 -시간이 오래 걸리더라도 언젠가는 찾을 수 있음 -패스워드 길이가 길어지면 사실상 공격이 어려움 2. 사람들이 자주 쓰는 값을 이용 (=딕셔너리 공격) -많은 사람들이 패스워드 같은 값을 생성할 때 기억하기 쉬운 값을 사용하는 것을 역으로 이용 -사용 빈도 수가 높은 값을 모아 입력 값에 대입 -무작위 값을 사용한다면 값이 파일에 포함되어 있지 않아 알아내기 힘듦 (목록이 더 많은 파일 이용, 패스워드 변형 및 조합을 이용해 더 많은 패스워드 검사) Brute Force Attack 실습 -DVWA, kali 리눅스 환경, Burpsuite ..
id: level12 pw: it is like this hint를 확인해보자 level11과 매우 비슷한 코드다! 하지만 level11에서는 strcpy 함수를 사용해서 str에 입력했다면, level12에서는 gets를 이용해서 str에 값을 대입한다. (gets 함수 역시 BOF에 취약한 함수이다. 길이 제한 없이 입력받기 때문!) 일단 attackme 파일을 디스어셈블 해주고 스택 구조를 파악해보자 main+3에서 스택을 264바이트 확보했고, main+9에서는 8바이트 더 확보했다. main+49에서 eax에 ebp-264의 주소를 대입하고 이를 gets함수의 인자로 넣는걸로 보아 ebp-264가 str의 시작 주소임을 알 수 있다. 이 정보들을 가지고 스택 구조를 그려보았다! (사실 level..
old-01번 문제에 들어가니 view source가 있다. view source를 눌러보니 이전 페이지의 코드가 있다. ---------------------
id: level11 pw: what!@#$? 이번에는 attackme 실행파일과 hint 파일이 존재한다. (attackme 파일에는 setuid가 설정되어있다.) hint를 읽어보았더니 attackme의 소스코드를 보여준 것 같다. //hint 내용 attackme 실행파일의 코드인 듯 #include #include int main( int argc, char *argv[] ) { char str[256];//str 문자열 setreuid( 3092, 3092 );//권한을 나타냄, level12 strcpy( str, argv[1] );//입력 값(argv[1])을 str에 복사 //strcpy에는 BOF 취약점이 있다. 입력받는 문자열 크기를 받지 않아 원하는 만큼 입력할 수 있다. printf..
HTTP 기초 -> 2020/09/08 - [웹/웹 기초] - HTTP python을 이용해서 HTTP 요청 메시지를 간단하게 보내보자. 1. GET 요청메시지 import requests host = "http://192.168.56.105" res =requests.get(host) #응답 #응답 태그 읽기 print(res.status_code) #200일때 잘 실행된 것 print(res.raise_for_status()) #오류일 때 오류 확인용 print(res.content) print(res.text) 2. GET 요청 메시지에 파라미터를 같이 전달 import requests host="https://www.naver.com/" my_prams = {'id':'my_id', 'pw':'p..