전체 글324 [VUE JS] source map 파일을 통한 Frontend 소스 코드 획득 일반적으로 vue.js 애플리케이션을 빌드하면, 코드가 압축되어 사용자에게 제공됩니다. 이때 원래 코드의 흐름과 파일 구조가 왜곡될 수 있어, 브라우저에서 발생한 오류를 추적하기가 어려울 수 있습니다. 이러한 상황에서 디버깅을 쉽게 하기 위해 source map 파일을 제공하고 있는데, 해당 파일을 이용하여 압축된 코드를 원래의 코드로 디코딩할 수 있습니다. 그런데 만약, 실제 운영 환경에서 source map 파일이 존재할 경우 Frontend의 소스 코드를 획득할 수 있는 등의 취약점이 발생할 수 있습니다. Source Map 파일 찾기 개발자 도구 > "SourceMappingURL" 검색 > app.*.js 파일 찾기 app.*.js 경로에 .map을 붙여서 접속 시도 (app.*.js.map) .. 2023. 2. 21. [Kotlin] Use-Site Target이 존재하지 않을 경우 검증 우회 가능 Data Class의 경우 NotBlank와 같은 검증 Annotation을 Use-Site Target과 같이 사용하지 않을 경우, 생성자 구문에 검증 코드가 작성되는 문제가 있음 // 생성자에 NotEmpty와 NotBlank가 적용되는 잘못된 코드 data class UserInfoDto ( @NotEmpty(message="값이 비어있으면 안됩니다.") @NotBlank @Email(message="이메일 주소를 입력해주세요.") var email : String?, var password : String?, ) 반드시 Use-Site Target을 명시하여 필드 변수에 대한 검증을 수행하도록 해야 함 // 변수에 NotEmpty와 NotBlank가 적용되는 올바른 코드 data class Use.. 2023. 2. 21. Ren'Py를 통한 게임 개발 시작 최근 들어 Ren'Py를 통한 게임이 많이 보이는 것 같습니다. 그래서 바로 프로젝트를 시작하게 되었는데요. 이번 프로젝트는 "Ren'Py 파헤쳐보기" 입니다. 프로젝트 목표는 3가지로 나눠서 볼 수 있을 것 같습니다. 1. Ren'Py로 게임 개발 2. 게임 핵 개발 3. 게임 핵 탐지 및 차단 설치 방법 1. Ren'Py 사이트에서 개발 도구를 다운로드 받습니다. Ren'Py 8.0.3 Android and iOS Support When building Android packages, iOS packages, or web distributions, Ren'Py will prompt you to download RAPT (Ren'Py Android Packaging Tool), Renios (Ren'P.. 2023. 2. 19. Avalanche(AVAX) RPC 사용 방법 ※ 1초에 5회 이상 Request 전송 시 Rate Limit 있음 기본 구문 import requests import json class AvalancheAPI: def __init__(self, rpc_url): self.rpc_url = rpc_url def get_response(self, method, params): response = requests.post( self.rpc_url, data=json.dumps({ "jsonrpc": "2.0", "id": 1, "method": method, "params": params, }), headers={'content-type': 'application/json'} ).json() return response if __name__ == '__.. 2023. 2. 19. MySQL Server 꿀팁 Query 특정 Database 내 OPTIMIZE TABLE 구문 생성 SELECT CONCAT('OPTIMIZE TABLE ', table_schema, '.', table_name, ';') FROM information_schema.TABLES WHERE table_schema = "database_name"; 특정 Database 내 Table Size 확인 SELECT table_schema "Data Base Name", table_name "Table Name", round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" FROM information_schema.TABLES WHERE table_schema = 'database_name.. 2023. 2. 14. Click Jacking이란? Click Jacking이란 무엇인가? Click Jacking은 사용자가 의도하지 않은 클릭 행위를 유도하는 공격 기법입니다. Click Jacking 공격은 웹사이트 상의 버튼, 링크 등을 통해 사용자를 다른 웹 페이지로 유도하여, 사용자가 악성 페이지에서 의도하지 않은 동작을 수행하게 만듭니다. Click Jacking은 "UI Redress Attack" 또는 "User Interface Redress Attack"으로도 알려져 있습니다. Click Jacking 공격 원리 Click Jacking 공격은 웹 페이지 내에 들어 있는 iframe 요소를 이용하여 수행됩니다. iframe 요소는 다른 웹 페이지를 포함하고 있는 HTML 태그로, 다른 웹 페이지를 포함하면서도 현재 웹 페이지의 내용을 .. 2023. 2. 12. Type Confusion이란? Type Confusion Type Confusion은 프로그래밍 언어에서 발생할 수 있는 취약점 중 하나로, 데이터 타입이 불일치하는 상황에서 발생할 수 있습니다. 예를 들어, 어떤 프로그램에서 문자열을 입력받아 처리하는 기능이 있다고 가정해보겠습니다. 이때, 사용자가 문자열 대신 정수형 데이터를 입력할 경우, 프로그램은 예상치 못한 방식으로 작동할 수 있습니다. ※ 주로 변수나 객체를 선언 또는 초기하였을 때와는 다른 타입으로 사용할 때 발생 이처럼 프로그램에서는 예상치 못한 데이터 타입 변환이 일어나는 상황에서 Type Confusion 취약점이 발생할 수 있습니다. 참고로 Type Confusion은 메모리 손상 등의 심각한 보안 문제를 야기할 수 있으며, 악의적인 공격자가 해당 취약점을 이용해 .. 2023. 2. 12. MYSQL-SERVER Query 결과, File로 저장하기 SQL Query (my-sql) SELECT * FROM atable INTO OUTFILE '/tmp/test.txt' 만약 mysql-server가 --secure-file-priv 옵션으로 실행될 경우 출력할 수 있는 디렉터리가 제한되나, 이런 상황에서는 secure_file_priv로 설정된 디렉터리 내에 파일을 저장함으로써 해결할 수 있음 secure_file_priv 경로 확인 SHOW VARIABLES LIKE "secure_file_priv"; secure_file_prive 경로 변경 $sudo vi /etc/mysql/my.cnf [mysqld] secure-file-priv="" $sudo systemctl restart mysql 2023. 2. 10. AWS Volume 용량 증설 후 File System 확장 방법 AWS 서버를 이용하여 정보 수집 프로그램을 실행하고 있었는데, 디스크 용량이 점점 부족해졌습니다. 이때 AWS에서 Volume의 크기를 증가시킨 뒤, 아래의 명령어를 통하여 서버의 용량을 증설된 용량만큼 확장시킬 수 있습니다. 1. Linux 서버 용량 확인 명령어 $ sudo lsblk 2. 파티션 확장 명령어 $ sudo growpart /dev/xvdf1 1 $ sudo lsblk 3. File System 크기 재설정 $ sudo resize2fs /dev/xvdf1 $ df -h 2023. 1. 4. 이전 1 ··· 4 5 6 7 8 9 10 ··· 36 다음