목록분류 전체보기 (289)
촉촉한초코칩
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bf6NbE/btsHIXfZ9nM/Krqqwanckbo70uLLWdDF2K/img.png)
https://docs.ctfd.io/tutorials/api/using-ctfd-api cURL을 사용하여 API 요청 생성 및 보내기액세스액세스 토큰 필요 ctfd에 관리자로 로그인해서 토큰 생성 Request Header: Authorization: Token , Content-type : application/jsonRequest Payload : JSON 형식 API 엔드포인트 선택 사용자 생성하는 엔드포인트 선택 > post_user_list에 기록하기 적절한 페이로드 보내기 POST 요청을 보낼 때는 새 사용자의 세부 정보가 포함된 JSON 페이로드 필요개발자 도구(네트워크 탭 - Persist Logs)에서 ctfd 요청 검사 > 개발자 도구 열어둔 상태에서 ctfd 새 사용자 생성 > ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/xHv7M/btsHHMzKxeT/nXQNBGeFOJgzy3N7xAVtM0/img.png)
Docker 설치/실행https://doongdangdoongdangdong.tistory.com/137 docker 설치 → docker_composer 설치/ctf git clone → docker_composer.yml 수정 → docker_composer 실행이 일반적인 것 같은데 안 돼서 다른 방법 시도https://itguny04.tistory.com/12 docker만 설치 후 docker ctfd 컨테이너 설치+실행 → localhost/setup 접속 문제점 : 우분투 다시 실행하면 컨테이너는 존재하는데 localhost/setup으로 접속이 안 됨 … → 컨테이너 삭제 후 다시 생성하면 되긴 하지만 매번 이럴 수 없으니까 다른 방법을 찾아봐야 할 것 같음 구축 환경virtual box..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/byNYzO/btsHFJov1Op/6mjlN6tK3sLbHWFNMDpn41/img.png)
https://developers.google.com/machine-learning/crash-course?hl=ko 로지스틱 회귀 확률 계산예제) 한밤중에 개가 짖는 확률 예측 확률 : p(bark | night)로지스터 회귀 모델이 p(bark | night) = 0.05를 예측하면 강아지는 1년 이상 약 18번 깨어있다.startled = p(bark | night) * nights = 0.05 * 365 = 18 대부분 로지스터 회귀 출력을 이진 분류 문제에 해결책으로 매핑한다.이 경우 목표는 가능한 두 라벨 중 하나(스팸/스팸아닌)이며 모듈은 여기에 중점을 둔다. 1. 시그모이드 함수로지스틱 회귀 모델이 항상 0과 1 사이의 값을 보장하는 방법 : 시그모이드 함수가 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lkZug/btsHD8ofeM5/J6KKQvokgWG7tu5fGbj0ik/img.png)
https://developers.google.com/machine-learning/crash-course?hl=ko 검증 세트 검증세트 : 다른 파티션1. 가능한 워크플로학습 데이터 : 모델 학습테스트 데이터 : 테스트 후 측정 항목 관찰 > 속성 추가/제거를 통해 모델 정확성 개선 모델 조정 : 학습률 변경, 특성 추가 또는 삭제, 완전히 새로운 모델 설계 등 모델의 모든 요소를 조정하는 것 > 워크플로의 끝에서 테스트 세트를 기준으로 가장 우수한 모델 선택 문제점 : 테스트 데이터만의 특성에 과적합한 모델이 나온다면?해결 방법 : 모집단에서 3번째 데이터 만들기 > 테스트 데이터는 사용 X > 좋은 결과가 나올 때까지 계속 반복 2. 데이터 세트 하나를 3개의 하위 집합으로 슬라이싱 검증 세트를..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bMDJn8/btsHBAlYZ06/kadk4Ni0Ifx5lk9FKmdz4K/img.png)
ROP(Return Oriented Programming) 라이브러리 함수의 실행다수의 리턴 가젯 연결하여 사용ASLR이 걸린 환경에서 system 함수를 사용하기 위해 프로세스에서 libc가 매핑된 주소를 찾고, 그 주소로부터 system 함수의 오프셋을 이용한 함수의 주소를 계산한다. 공격문제에 맞게 return to library, return to dl-resolve, GOT overwrite 등의 페이로드 구성 ROP 페이로드리턴 가젯으로 구성ret 단위로 여러 코드가 연쇄적으로 실행된다. ROP 실습 코드 // Name: rop.c// Compile: gcc -o rop rop.c -fno-PIE -no-pie#include #include int main() { char buf[0x3..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c4XtUt/btsHDBpUsfT/MWdgYKhqV4Etfpsqd9XwIK/img.png)
C코드// Name: rtl.c// Compile: gcc -o rtl rtl.c -fno-PIE -no-pie#include #include const char* binsh = "/bin/sh";int main() { char buf[0x30]; setvbuf(stdin, 0, _IONBF, 0); setvbuf(stdout, 0, _IONBF, 0); // Add system function to plt's entry system("echo 'system@plt"); // Leak canary printf("[1] Leak Canary\n"); printf("Buf: "); read(0, buf, 0x100); printf("Buf: %s\n", buf); // Overwrite ..