본문 바로가기

반응형

전체 글

(73)
[Dream Hack - Web] error based sql injection Error Based SQL Injection공격자가 웹 애플리케이션에서 발생하는 에러 메시지를 이용해 데이터베이스의 구조나 내부 정보를 획득하는 공격기법이다. 공격자는 SQL 쿼리의 취약점을 이용하여 에러를 유도하고, 그 에러를 분석하여 정보를 추출한다. EXTRACTVALUE( {XML 형식의 값}, {XPath 조건식} )특정한 XPath 조건식을 기반으로 XML 문서에서 값을 추출하는 데 사용된다.- BOOK_XML 어린 왕자 앙투안 드 생택쥐페리 9,800  - 예시 쿼리SELECT EXTRACTVALUE(BOOK_XML, '/STORE/BOOK/TITLE') FROM BOOK_LIST; - 실행 결과어린왕자 풀이 방법 flag 길이 구하기' or extractvalue(1, c..
[Dream Hack - Web] csrf-2 문제 해석/ 페이지@app.route("/")def index(): session_id = request.cookies.get('sessionid', None) try: username = session_storage[session_id] except KeyError: return render_template('index.html', text='please login') return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if username == "admin" else "you are not an admin"}')쿠키에서 session id를 확인하고 그 값에 따라..
[Dream Hack - Web] csrf-1 CSRF란?CSRF란, Cross Site Request Forgery의 약자로, 사이트간 요청 위조를 뜻합니다. CSRF는 사용자가 자신의 의자와는 무관하게 공격자가 의도한 행위(데이터 수정, 삭제, 등록 등)을 특정 웹사이트에 요청하는 공격입니다.예를 들어, 피해자의 전자 메일 주소를 변경하거나 암호를 변경하거나 자금이체를 하는 등의 동작을 수행하게 할 수 있습니다. 또, 특성에 따라 공격자는 사용자의 계정에 대한 완전한 제어권을 얻을 수도 있습니다.서버는 로그인 시 인증된 사용자의 정보를 세션(session)에 저장하고 이에 매칭되는 세션 아이디(session ID)을 만든다.서버는 저장된 세션 정보를 클라이언트(브라우저)가 사용할 수 있도록 세션 아이디를 Set-Cookie 헤더에 담아서 전달한다..
[Dream Hack - Web] xss-2 문제 해석/vuln 페이지xss-1에서와 다르게 script 코드가 동작하지 않는다. /vuln 라우터를 살펴보니 vuln.html 페이지를 렌더링하고 있다.@app.route("/vuln")def vuln(): return render_template("vuln.html"){% block content %} {% endblock %}코드를 살펴보면,location.search ⇒ URL 쿼리 문자열 부분을 반환한다. 예를 들어, http://example.com?page=1¶m=test인 경우 location.search는 ?page=1&param=test 가 된다.new URLSearchParams(location.search) 는 이 쿼리 문자열을 URLSearchParams 객체..
[Dream Hack - Web] xss-1 문제 해석/vuln 페이지/vuln 라우터는 파라미터 값을 그대로 html에 랜더링 해주기 때문에 XSS 취약점을 보유하고 있다.@app.route("/vuln")def vuln(): param = request.args.get("param", "") return param그래서 http://127.0.0.1:8000?param= 을 넘겼을 때, 아래와 다음과 같이 코드가 실행되는 것을 볼 수 있다./memo 페이지파라미터로 넘긴 memo 값에 대해 계속 이어붙여 나가는 것을 확인할 수 있다.@app.route("/memo")def memo(): global memo_text text = request.args.get("memo", "") memo_text += text + "..
[랜섬웨어] 가상 머신에서 악성코드를 실행하는 것은 안전한가? 가상 머신에서 악성코드를 실행하는 것은 안전한가?가상 머신은 하나의 컴퓨터에서 여러 운영 체제를 동시에 실행할 수 있게 해주기 때문에 생산성을 높이는 방법 중 하나입니다. 가상 머신은 별도의 운영 체제로 취급되기 때문에, 가상 머신에서 실행하는 악성코드는 호스트 컴퓨터에 영향을 미치지 않을 것이라 예상합니다. 가상 머신을 호스트 컴퓨터에서 격리시킨다면, 일반적으로 호스트 컴퓨터는 악성코드로 부터 안전합니다.하지만 절대적으로 안전하다고 말할 수 없습니다. 가상 머신은 호스트 컴퓨터의 하드웨어를 사용하며, 동일한 네트워크에 연결되어 있기 때문에 이에 따른 위협들이 존재할 수 있습니다. https://www.youtube.com/watch?v=gzwt73_3ZqA&t=28s 아래의 영상에서는 가상 머신에서 실..
[랜섬웨어] CPU 벤더를 통한 가상머신 실행 여부 확인 가상머신(Virtual Machine)이란?가상 머신은 하나의 물리적 컴퓨터 시스템 안에서 소프트웨어를 사용하여 여러 개의 독립적인 가상 컴퓨터 환경을 생성하는 기술입니다. 이 가상 머신들은 각각 독립적인 운영체제 및 애플리케이션을 실행할 수 있습니다. 가상 머신은 하이퍼바이저(Hypervisor)라는 소프트웨어 계층을 통해 호스트 시스템의 하드웨어 자원을 분할하고 각 가상 머신에 할당하여 실행합니다. CPU 벤더란?CPU 벤더는 CPU(중앙 처리 장치)를 제조하는 회사를 의미합니다. 각 벤더는 고유의 벤더 ID를 가지고 있으며, 이를 통해 CPU가 어느회사에서 제조되었는지를 식별할 수 있습니다.가상 환경에서는 가상 머신의 하이퍼바이저(ex: VMware, VirtualBox 등)가 실제 물리적 CPU를..
[Dream Hack - Crypto] Double DES Double Encryption암호키 전수조사가 가능하다면? 암호키 크기를 늘이면 된다!암호 알고리즘 Cipher1 = Enc(Plan, key1)강화된 알고리즘 : Cipher2 = Enc(Cipher1, key2)블록 크기는 그대로, 암호키 크기는 2배로 강화하였다. 과연 두배의 안정성을 가질까?Cipher1 = Enc(Plan, key1) → 키 크기 2^n 일 때, Cipher2 = Enc(Cipher1, key2) → 키 크기 2^2n을 기대하지만 MITM attack 을 이용하면 2^(n+1)로 공격이 가능하다.MITM (Meet In The Middle) 이란?주어진 (평문(P), 암호문(C)) 쌍에 대하여, 암호키 key1, key2를 찾는 공격평문 P 를 가능한 모든 key1으로 암호화 ..

반응형