본문 바로가기
  • Tried. Failed. Logged.
728x90

분류 전체보기720

OWASP Juice Shop - Database Schema Exfiltrate the entire DB schema definition via SQL Injection. 직역하면 SQL Injection을 통하여 DB 스키마의 정의어를 가져오라는 의미이다. SQLi를 시도해 볼 수 있는 공격 벡터는 크게 로그인과 상품 검색 두 가지 었지만 로그인 부분은 일단 SQLi를 통해 원하는 결과를 가져오지 못하므로 일단 패스하였다. (그리고 이런 문제 유형의 공격 벡터는 주로 검색 페이지인 경우가 많았었다.) 주제와는 상관 없지만 계정 페이지에는 ERROR BASED를 이용하는 블라인드 SQLi 가능성은 있었다. jim@juice-sh.op' AND CASE WHEN (select 1 from Users where email='jim@juice-sh.op') THEN 1.. 2023. 9. 29.
OWASP Juice Shop - Login Admin (Injection) 만일 로그인 쿼리문이 아래와 같다. SELECT * FROM Users WHERE email = '${req.body.email || ''}' AND password = '${security.hash(req.body.password || '')}' AND deletedAt IS NULL "admin@juice-sh.op' or '1'='1'--"를 입력한다면 SELECT * FROM Users WHERE email = 'admin@juice-sh.op' or '1'='1'--' AND password = '${security.hash(req.body.password || '')}' AND deletedAt IS NULL 쿼리문의 결과가 참이 되면서 로그인이 성공한다. 2023. 9. 27.
OWASP Juice Shop - 100kB보다 큰 파일을 올리세요. (Improper Input Validation) 다음과 같이 크기 별로 다른 파일이 있다. 가장 큰 파일은 120KB (122,880 바이트) 가장 작은 파일은 1바이트 (1 바이트) 중간은 97.6KB (100,000 바이트) 파일 업로드는 최대 100 KB까지 가능하므로 가장 큰 파일을 올리면 위와 같은 오류가 뜬다. 개발자 도구에 Console 탭을 확인하면 fileSize에 관련된 오류가 뜨게 된다. 크기가 큰 파일을 올리면 저 오류 문구가 뜨지만 그렇지 않으면 뜨지 않는다. 오류 원인 파일인 vendor.js를 확인하면 파일의 최대 사이즈를 비교하는 것 같은 필터 함수 부분이 보인다. 이걸 보았을 때는 최대 크기 사이즈인지 검증을 클라이언트 측에서 하는 것으로 보인다. 그럼 저 부분을 수정하면 100 KB가 넘는 파일도 올려 볼 수 있지 않을.. 2023. 9. 27.
OWASP Juice Shop - 상품 리뷰 조작 (Broken Access Control) 다음은 특정 제품에 상품평을 작성하는 화면이다. 임의로 상품평 내용을 적고 확인을 누르면 등록이 되는 구조이다. 페이로드를 확인하면 author, message를 입력받는 것을 볼 수 있다. 버프스위트를 실행해 Interrupt를 걸어 아래의 페이로드 중 author를 "admin@juice-sh.op"로 조작한다. 리뷰를 확인하면 실제 관리자(admin@juice-sh.op)가 리뷰를 단 것처럼 모방할 수 있다. OWASP TOP 10에 등재된 취약한 접근 제어(Broken Access Control)의 한 예시 문제다. 2023. 9. 27.
OWASP Juice Shop - 문의하기 Captcha Bypass (Broken Anti Automation) 문의하기 페이지(/contact) 구성도 사용자로부터 평점과 댓글을 입력받는데 하단에 CAPTCHA 인증이 필요하다. 캡챠 요청 REST API 구조 (/rest/captcha/) 서버에서 미리 캡챠를 생성하는 SSR 방식이 아닌 클라이언트가 페이지에 들어오면 캡챠를 요청하는 CSR 방식임을 알 수 있다. 따라서 클라이언트가 "http://localhost:3000/rest/captcha/"로 GET을 요청하면 다음과 같은 응답이 온다. {"captchaId":38,"captcha":"8*8-5","answer":"59"} 보다시피 캡챠 아이디, 문제, 정답이 그대로 전달이 된다. 캡챠 검증 REST API 구조 (/api/Feedbacks/) 사용자가 캡챠를 풀고 서버로부터 요청을 할 때는 "http:.. 2023. 9. 27.
Jekyll - Github Pages에 jekyll theme deploy하기 1. 원하는 테마를 포크 한다. 2. 레포지토리 이름을 {내 깃허브아이디}.github.io로 지정한다. 3. 포크된 레포지토리의 Settings로 간다. 4. Pages에서 "Build and deployment" 항목의 Source를 "GitHub Actions"로 바꾼다. 5. 설정 파일을 만드는 선택이 나오므로 눌러서 jekyll.yml 설정 파일을 만든다. 6. 레포지토리의 Actions로 가서 Deploying 진행 과정을 기다린다. 7. 생성이 완료되었다면 {내 깃허브아이디}.github.io로 접속한다. 참고: https://www.youtube.com/shorts/Kq28yBigDYw 2023. 9. 25.
디지털 포렌식 - FTK Imager 삭제된 파일 복구하기 및 파일 소거하기 실습 환경 운영체제: Windows 10(가상머신) 복구 파일 대상: owasp-top-10.pdf 사용 도구: FTK Imager 아래와 같이 잘 열리게 되는 pdf 파일이 있다. 우선 이것을 쓰레기통에 버린다. 그다음 파일이 복구가 안되게 휴지통을 비워준다. 이제 FTK Imager를 실행시켜 "Add All Attached Devices"를 눌러 현재 컴퓨터에 연결된 모든 장치들을 불러와준다. 연결된 장치들 중 C:\를 선택하고 "C:\NONAME [NTFS]\root\$Recycle.Bin\" 경로로 이동해서 찾고자 하는 pdf 파일을 탐색한다. 파일을 제거하면 메타 데이터 정보가 삭제되므로 기존의 이름(owasp-top-10.pdf)은 지워졌지만 데이터 부분은 아직 남아 있게 된다. 복구를 위해.. 2023. 9. 24.
CTF - PHP 버전별 테스트 사이트(onlinephp.io) https://onlinephp.io/ PHP Sandbox - Execute PHP code online through your browser onlinephp.io 타입 저글링에 취약한 7 이하 버전부터 최신 버전 8까지 온라인으로 바로바로 테스트가 가능하다. 2023. 9. 24.
CTF - 윈도우 스택 버퍼 오버플로우 예제(bof.c) bof.c #include #include #include void shell_code(){ printf("WELCOME SHELLCODE!"); system("cmd"); } int main(int argc, char **argv){ char buffer[12]; memset(buffer, 0x00, sizeof(buffer)); if(argc != 2){ printf("Usage : ./bof.exe data\n"); exit(-1); } strcpy(buffer, argv[1]); printf("sizeof %d \n", sizeof(argv[1])); printf("strlen %d \n", strlen(argv[1])); return 0; } compile gcc -m32 bof.c -o bof.. 2023. 9. 18.
디자인 - 디자인 캔버스 플랫폼(미리캔버스) https://www.miricanvas.com/design 미리캔버스 디자인 페이지 디자인 전문가가 아니어도 무료 템플릿으로 손쉽게 원하는 디자인을 할 수 있어요 www.miricanvas.com 2023. 9. 17.
웹 보안 - CSP 확인 사이트(CSP Evaluator) https://csp-evaluator.withgoogle.com/ CSP Evaluator csp-evaluator.withgoogle.com 2023. 9. 11.
DreamHack - [wargame.kr] strcmp 풀이 fetch("http://host3.dreamhack.games:20758/", { "headers": { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-language": "ko-KR,ko;q=0.8", "cache-control": "max-age=0", "content-type": "application/x-www-form-urlencoded", "sec-gpc": "1", "upgrade-insecure-requests": "1" }, "referrer": "http://host3.dreamhack.games:20758/", "refe.. 2023. 9. 11.
728x90