목록# 나/pentest (WEB) (95)
의미없는 블로그
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xdCLW/btqxLdmZinG/fQ7vnMHZGUV6OZ675asOTk/img.png)
VM 에서 테스트 환경 구축하고 포트포워딩 해서 다른 PC 에서 접속하기~ Docker 에서 IP(192.168.19.138)랑 포트(32768) 확인하고 https://192.168.19.138:32768 로 접속하면 잘 들가진다 로컬 CMD 에서 아래 명령 입력 [netsh interface portproxy add v4tov4 listenport=로컬에서 접속할 포트 listenaddress=로컬 아이피 connectport=VM 포트 connectaddress=VM 아이피] 저것만 하면 안되고 방화벽에서 열어줘야 한다 인바운드 - 새 규칙 클릭하고 아래와 같이 규칙 만든다 이제 로컬 IP 로 접속 테스트 해본다~ 로컬 IP 확인하고 https://150.24.95.134:32768 로 접속하면 잘..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjlje9/btqxLc8MtNF/MY7MLxT94K0P42UPvF9tgK/img.png)
코드 작성 아래 포인터에 대한 설명을 보면 알 수 있듯이.. int (*fp) () 는 그냥 fp 라는 포인터이다 스택에는 아래처럼 쌓이는 거고 fp = 0 으로 선언되어 있는데 if(fp) 일때 fp(); 로 포인터 값을 부르니까 fp 가 0 이 아니도록 덮어씌워주면 된다 buffer[64] --------------- *fp --------------- 문제는 win() 함수가 호출되어져서 code flow successfully changed 가 출력되어야 하는데 win() 함수를 호출하려면 fp 포인터가 win() 함수를 가리키고 있는 상태에서 fp() 가 호출되어지면 된다 그러므로 fp 포인터를 덮어씌우되 win() 함수를 가리키는 주소값으로 덮어씌워야 한다 컴파일을 하고.. (gets 함수에 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VuYVR/btqxEh40b6P/HbQCL789Y1QNvxHyfsqRK0/img.png)
코드 작성~ modified 가 0x0d0a0d0a 일때 풀린다 마찬가지로 buffer 로 덮어씌워서 0x0d0a0d0a 로 만들어 주면 되고 strcpy(buffer, variable) 을 보면 buffer 값은 variable 에서 가져오는데 variable 는 getenv("GREENIE") 에서 가져옴~ (getenv 는 환경변수 값 불러오는 거라고 함 GREENIE 라는 환경변수에서 값을 불러온다는 뜻) gcc 로 컴파일 하고 실행(./stack2) 해보면 GREENIE 환경변수 세팅하라고 뜬다 [export GREENIE='AAAAAA'] 로 환경변수 세팅해 주면된다 다시 실행해보면 아까처럼 메세지는 안뜨고 이제 문제 풀면 됨~ 저번꺼 처럼 직접 거리 계산해서 푸는 방법으로 하면.. [cmp ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2Tcrq/btqxDTO6SdU/36SjdCiE9sUrTrjEDuT9dk/img.png)
칼리에서 코드 작성한다~ 지난번과 같이 스택 구조는 아래와 같고 char buffer[64] ------------------ int modified → 0 ------------------ modified = 0 인 상태고 modified 가 0x61626364 일 때 풀린다 buffer[64] 에 글자 많이 집어넣어서 덮어쓴담에 modified 위치에서는 0x61626364 로 덮어쓰면 된다~ 마찬가지로 gcc 에 옵션써서 컴파일 하고 실행해 본다 소스코드에 if(argc == 1) 로 인자가 1개면 에러내고 있어서 다음 인자를 넣어줘야 돌아간다 argv[0] = ./stack1 argv[1] = 1234 소스코드에 strcpy(buffer, argv[1]); 을 보면 strcpy 함수로 인자값 받아..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUwP2k/btqxxKMCRdy/PRsKLXYlqlFCs8fTrUKvck/img.png)
Burp Helper 가 좋은점은 가끔 프록시 사용 못하게 탐지하는 사이트 있으면 Cooxie 는 우회 안되는데 Burp Helper 로 프록시 켜면 그냥 되는 경우 있다.. 1. https://github.com/NELpos/burphelper 에서 파일 다운로드 2. Extender - Options - Python Environment - Select file 에서 jython-standalone-2.7.0.jar 파일 선택 3. Extender - Extensions - Burp Extensions - Add 하여 BurpHelper_v1.22.py 파일 추가 4. 정상적으로 추가되면 자동으로 BurpHelper 탭 생성된다 5. 프록시 서버 등록 6. 이제 브라우저 옵션에서 프록시 설정 안..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bYzToP/btqxBPZZMV4/3mvaD9Sq6G74w7dk6WaVok/img.png)
1. certmgr.msc 에서 Burp 인증서(PortSwigger CA) 깔려있나 보고 있으면 다시 설치하기 위해 일단 삭제~ 2. 브라우저에서 프록시 서버 On 상태로 설정 3. http://burp 접속 → CA Certificate 클릭 → cacert.der 다운로드 4. 관리자권한으로 CMD 실행 → 인증서 설치 명령 입력 [certutil -addstore -f -enterprise -user root cacert.der] 5. 인터넷 옵션 → 내용 → 인증서 에서 Burp 인증서(PortSwigger CA) 설치 확인할 수 있다~ 6. HTTPS 캡쳐 가능 7. 종책임님이 JDK13 은 인증서 오류 해결 불가라고 JDK12 로 쓰라고 한다 요망한 버프
[scan_1.6.py] 칼리에 Nmap, Dirb 둘다 설치되어 있어서 칼리에서 돌린다.. Dirb 는 샘플 페이지 스캔 도구라서 샘플 페이지 리스트가 필요하다 [python scan_1.6.py list.txt sample.txt] list.txt : 스캔할 URL 리스트 sample.txt : 샘플 페이지 리스트 결과물 scan_Nmap.txt : Nmap 스캔 결과 scan_DefaultPage.txt : 샘플 페이지 스캔 결과 scan_Trace.txt : Trace 메소드 스캔 결과