Computer Science

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) 데이터 구조를 사용하며, 데이터를 메모리에 저장하기 때문에 매우 빠른 읽기 및 쓰기 속도를 제공한다.
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..
1.이전문제와의 차이기존 취약하던 vuln 엔드포인트가 다음과같이 vuln.html을 렌더링하는방법으로 바꿔서 더이상 해당엔드포인트에 {% endblock %}      2.해결법 태그의 src와 onerror를 이용하여 공격한다. 태그의 src 요소가 유효하지않으면 onerror 이벤트 핸들러를 실행하게 되는것을 이용할수있다.HTML 태그나 속성을 포함한 모든 사용자 입력에 대해 검증을 수행하지않으면 이걸로 쿠키가 뜯길수있다.
1.xss-1 문제/flag에서 URL 을 전달하여 다른 사용자가 접속하게 만들어서/memo 엔드포인트에 쿠키값을 남기게 하는게 목표이다.  1-1.vuln 엔드포인트사용자가 입력한 param 값을 그대로 반환하는 엔드포인트취약점을 제공하는 부분이다.@app.route("/vuln")def vuln(): param = request.args.get("param", "") return param     1-1.memo 엔드포인트memo 엔드포인트는 쿼리 파라미터로 memo값을 받은 뒤에 이거를 렌더링할때 보내서 작성시켜준다.@app.route("/memo")def memo(): global memo_text text = request.args.get("memo", "") memo..
1.쿠키 위변조(Cookie Tampering)사용자가 웹 브라우저에 저장된 쿠키 값을 변경하거나 악의적으로 수정하는 공격이다.세션 ID나 인증 토큰을 바꾸거나, 사용자 데이터에 임의 값을 삽입하는 식으로 조작할 수 있다.    개발자 도구로 username 토큰을 admin으로 설정하는 위변조   이런식으로 XSS로 쿠키를 탈취해갈수도있다..  2.세션 위변조(Session Tampering)사용자가 웹 애플리케이션의 세션 데이터를 조작하여, 사용자의 인증 정보나 상태를 악의적으로 변경하는 공격  세션아이디가 탈취당하면 사용자의 계정이 그대로 탈취당할수있다..
아사_
'Computer Science' 카테고리의 글 목록 (2 Page)