배경 지식 위 문제는 Flask 프레임워크로 구현됨 XSS를 통해 다른 이용자의 쿠키를 탈취하는 문제로 해당 방문 시나리오가 있습니다 이런 기능은 셀레늄을 통해 구현되었습니다. 셀레늄(Selenium)은 웹 App 테스팅에 사용되는 파이썬 모듈로, API를 통해 우베 드라이브(크롬 등)를 사용하며, 요청과 응답만 처리하는 libc와는 다릅니다. 이는 응답에 포함된 Js, Css와 같은 웹 리소스를 웹 드라이버를 통해 해석 실행하기에 방문과 같은 역할함 문제 목표 및 요약 위와 같은 사실은 해당 Wargame에서 제공하는 app.py을 들어가서 확인해보시면 나와요 엔드포인트 분석 엔드포인트란? 알려진 위협 및 알려지지 않은 위협으로부터 기업의 경계로 간주되는 요소 보통의 경우엔 HW의 관점에서 많이 사용됨..
XSS(Cross Site Scripting)이란? XSS란 웹 페이지의 이용자를 대상으로 공격할 수 있는 취약점! 해당 종류의 취약점을 통해 이용자를 식별할 세션 및 쿠키 정보 탈취, 해당 계정에 임의 기능 수행함 Cross Site Scripting의 약어가 XSS인 이유 Cross Site Scripting의 약어는 CSS가 옳지만, 스타일시트를 정의하는 언어 CSS와의 중복과 혼동으로 XSS로 명명되었습니다 ㅠ XSS XSS는 클라이언트 사이드 취약점의 대표적인 취약점입니다. 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에 해당 스크립트 실행할 수 있지요 공격자는 해당 취약점을 통해 세션 정보 탈취 해당 계정으로 임의의 기능을 수행합니다. 예로 위와 같은 이미지가 있습니다. 오..
Mitigation: Same Origin Policy SOP에 대하여 이전까지의 쿠키와 세션에 관한 내용은 기본적이라서 저의 정리보단 직접 배우면서 하는게 좋아보여서.. 사실 귀찮아서가 제일 큰데 ㅋㅋ 웹의 이해와 HTTP 💡해당 내용은 pentestqym의 내용을 다시 한 번 정리한 내용이며, 모든 저작권은 해당 사이트에게 있습니다. 웹(Web)이란? 웹은 World Wide Web의 약자로, 인터넷, 하이퍼링크 등을 통해 정보를 공유하고 dystopia050119.tistory.com 쿠키와 세션 💡해당 내용은 pentestqym의 내용을 다시 한 번 정리한 내용이며, 모든 저작권은 해당 사이트에게 있습니다. 쿠키(Cookie)란? 쿠키는 웹 서버가 생성하여 웹 브라우저로 전송하는 작은 정보 파일입..
Funjs 문제풀이 문제를 받으면 저런 flag 넣으세요 하는게 정신없이 날라다니는데.. 보시면 상황이 저렇게 되어있죠 솔직히 flag 찾는데 저 움직이는거 무시하셔도 상관없고, 내부 코드를 보시면 debugger? 그 코드 덕분에 어짜피 정지되기도 하고.. 그래도 그거 지우고 없애고 싶으면.. 아래 코드만 주석이나 지워버려도 될거예요 움직이는 코드(존재 여부 상관없긴 함) 근데 전 딱히 저거 신경 안 쓰고 했어요.. 아 참고로 저 debugger도 지웠는데 저랑 완전히 똑같히 하고 싶으면 지우시고 저거 남겨두고 하셔도 지장 없어요. 자 그럼 본격적으로 코드에 대하여 분석해봅시다..(약간 웹 리버싱 느낌??) 핵심 코드(flag를 직접대면서 확인함) 핵심 코드는 위에 저 두게의 조건식입니다. 보시면 te..
Return To Library NX로 인해 공격자가 버퍼에 주입한 셸 코드를 실행하기는 어려워졌지만, 어전히 BOF는 가능! 그래서 공격자들은 실행 권한이 남아있는 코드 영역으로 반환 주소를 덮는 공격 기법을 고안했죠 프로세스에 실행 권한이 있는 메모리 영역은 일반적으로 바이너리의 코드 영역 & 참조 lib의 코드 영역 특히 공격자들이 주목한 것은 다양한 함수가 구현된 라이브러리입니다. 몇몇 lib는 공격에 유용한 함수들이 구현되어 있습니다 예로 리눅스에 C로 작성된 프로그램 참조한 libc에 system/execve 등 프로세스 실행 관련 함수들이 구현됨 Return To Libc(Return To Library) libc의 함수들로 libc의 함수들 NX를 우회하고 셸을 획득하는 공격 기법을 개발 ..
Network 문제 스토리 💡Jensen 사건을 맡게 된 Jack과 그의 팀은 Jensen의 회사와 가정에 네트워크 탭과 무선 캡처 장비를 설치했다. 모니터링을 하는 동안 Jack과 그의 팀은 흥미로운 용의자인 Betty를 발견했다. 이 사람은 Jensen 부인이 남편과 바람을 피우고 있다고 걱정하는 여자일 수도 있다. Jack은 포렌식 전문가인 당신에게 캡처 정보를 자세히 보여준다. 그리고 회의가 진행된다. Round 1 패킷을 사용해서 사건에 대해 자세히 알아보고 다음의 질문에 답하시오. 회의가 예정된 요일은 언제인가? 그럼 Kali linux에 있는 Wireshark를 실행해봅시다. 보면 해당 사이트로 들어가서 서로 대화를 한 모습으로 추측이 되는데 해당 스토리를 읽어보면 회의 예정 요일이니까 해당..
라이브러리 📚 여러 컴파일 언어들은 자주 사용되는 함수들의 정의를 묶어서 하나의 lib 파일로 생성 이를 여러 프로그램이 공유해서 사용할 수 있도록 지원합니다. 라이브러리를 사용하면 같은 함수들 반복적 정의 필요 X 즉, 코드 개발의 효율성이 향상되는 장점!! 또한 각 언어에 범용적 사용되는 함수들은 표준 lib가 제작되어 개발자들이 편리하게 사용하죠 대표적인 C의 표준 라이브러리인 libc는 우분투에 기본 탑재된 lib입니다. 실습환경에선 /lib/x86_64-linux-gun/libc-2.27.so 가 있죠 그리고 기타 함수들의 사용에 있어서 정의 없이 사용할 수 있는 이유도 이 이유 때문입니다. 링크🖇️ 링크(Link)는 많은 프로그래밍 언어에 컴파일의 마지막 단계로써.. 프로그램에서 어떤 lib의..
시스템 보안은 지난 수년간 발전해온 공격 기법과 보호 기법의 발전 양상을 보시면.. 어떤 보호 기법이 등장하면 우회 기술도 등장합니다.. 이렇게 어떤 공격이 올지 모르기에 시스템 개발자들은 여러 겺의 보호 기법을 적용해 시스템이 공격당할 수 있는 표현 자체↓ 이전에 글을 보시면 r2s를 통한 공격이 가능했기에 더 어렵게 하기 위해선 공격자가 메모리에 임의 버퍼 주소 알기 힘들게, 메모리 영역에 불필요한 실행 권한 제거 Exploit Tech: Return to Shellcode dystopia050119.tistory.com 이와 관련된 보호기법으로 우리는 ASLR과 NX를 배워볼께요 ASLR Address Space Layout Randomization의 약어 바이너리가 실행될 때마다 스택/힙/공유 l..