1.안티패턴(Anti pattern)특정 상황에서 잘못된 해결책이나 비효율적인 방법을 사용하여 문제를 해결하려는 시도실제 많이 사용되는 패턴이지만 비효율적이거나 비생산적인 패턴을 의미한다. 1-1.Code Sprawl특정 코드 영역이 지속적으로 확장되며, 복잡도가 증가하고 유지보수가 어려워지는 상황public class Example { public void function1() { // 초기 기능 코드 } public void function2() { // 추가된 새로운 기능 } public void function3() { // 또 다른 기능 } public void function4() { // 또 다른 ..
전체 글
프로그래밍 공부한거 정리해두는 메모장 블로그1.Blind SQL Injection서버가 SQL 쿼리를 실행한 후, 결과를 클라이언트에게 반환하지 않고 특정 응답 패턴을 통해 공격자가 데이터를 추출할 수 있도록 하는 방식 1-1.Boolean Blind SQL Injection서버가 단순히 "TRUE" 또는 "FALSE" 값을 반환하는 방식으로 동작하는 공격SELECT username FROM users WHERE username = 'admin' AND EXISTS (SELECT * FROM users WHERE username = 'admin') -- 1-2.Error-based Boolean Blind SQL InjectionSQL 오류를 기반으로 True/False 값을 결정하는 기법으로, 특정 SQL 구문을 사용하여 오류 메시지를 얻..
1.MongoDB 공격1-1.쿼리 형식 변환의 기본 규칙field가 필드 이름이고 [$operator] 부분이 MongoDB의 특수 연산자로 변환되고 value가 필드에 비교될 값이다.field[operator]=valueuid=asa->{ "uid": "asa" }uid[$ne]=a&upw[$ne]=b->{ "$ne": "a" }, "upw": { "$ne": "b" } } 2.Mango 문제데이터베이스에 저장된 admin 계정의 비밀번호를 얻어야하는 문제다. 2-1.필터우선 로그인엔드포인트의 쿼리로 다음과같은 BAN 단어들이 필터링 당하고있다.const BAN = ['admin', 'dh', 'admi'];filter = function(data){ const dump = JSON.stri..
1.Redis(Remote Dictionary Server)고성능의 오픈소스 인메모리 데이터 저장소다.NoSQL 데이터베이스이다.키-값(key-value) 데이터 구조를 사용하며, 데이터를 메모리에 저장하기 때문에 매우 빠른 읽기 및 쓰기 속도를 제공한다.
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtqMaf%2FbtsLVz8TiC1%2FMIH5N6Zjaqx2KyhNjhRWQ1%2Fimg.gif)
0.설치MongoDB 공식 홈페이지에서 설치한다.설치도중 보이는 MongoDB Compass는 GUI 툴이니까 필요에 따라 설치하자https://www.mongodb.com/try/download/community Try MongoDB Community EditionTry MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project!www.mongodb.com .1.MongoDB 연산자$는 특정 연산을 수행하는 키워드 앞에 붙는다.1-1.비교$eq 값이 같은 경우{ age: { $eq: 25 }..
1.SQL Injection웹 애플리케이션이 사용자 입력값을 SQL 쿼리에 통합할 때 발생하는 보안 취약점 1-1.기본적인 공격 쿼리조건식이 항상 TRUE로 평가되므로, 모든 데이터를 반환하게됨#입력' OR '1' = '1 query = f"SELECT * FROM users WHERE username = '{user_input}'"# 최종되는 쿼리# 사용자가 입력한 값이 비어있거나, '1'과 '1'이 같으면 항상 TRUE가 되므로 모든 데이터가 반환됨.query = f"SELECT * FROM users WHERE username = '' OR '1' = '1'" 1-2.UNION 사용사용자의 입력값을 통해 전체 사용자 이름과 비밀번호가 반환됨#입력' UNION SELECT username, pas..
1.Cross Site Request Forgery (CSRF)CSRF는 사용자가 인증된 상태에서 공격자가 사용자의 의도와 상관없이 서버에 요청을 보내도록 만드는 웹 보안 취약점이다.예를들어 사용자가 로그인되있을때 OO에게 100만원을 송금하는 엔드포인트를 실행하도록 유도해서 공격하는 방법이다. XSS의 경우 JavaScript 코드를 통해 쿠키를 얻거나 하는 목적이지만CSRF는 인증된 사용자가 그저 엔드포인트에 접근하게 하는것이 목적이다.CSRF에서 다음과같이 src에만 넣어도 사용자는 이미 인증된 쿠키정보로 돈을 보내는 요청을 서버에 보내기때문에 서버에서 요청을 검증하지 않고 바로 처리된다.크기가 0인 이미지박스를 넣어서 공격할수있다. 2.CSRF-12-1.XSS 문제와 차이이번문제는 XS..