EVI$ION
-
[SQL Injection] 필터링 우회 방법 모음EVI$ION/WEB HACKING 2019. 7. 22. 19:06
1. 공백 문자 우회 1) Line Feed (\n) - 커서(캐럿)를 다음 줄(현재 위치에서 바로 아래줄)로 이동시키는 개행 문자 - URL Encoding: %0a - ex) no=1%0aor%0aid='admin' 2) Tab (\t) - 커서를 한 tab만큼 이동시키는 문자 - URL Encoding: %09 - ex) no=1%09or%09id='admin' 3) Carrage Return (\r) - 커서(캐럿)를 줄의 맨 앞(왼쪽)으로 이동시키는 개행 문자 - URL Encoding: %0d - ex) no=1%0dor%0did='admin' 4) 주석 (/**/) - ex) no=1/**/or/**/id='admin' 5) 괄호 () - ex) no=(1)or(id='admin') 6) 더..
-
[pwnable] PLT와 GOTEVI$ION/SYSTEM HACKING 2019. 7. 19. 23:07
소스코드를 컴파일하면 오브젝트 파일이 생성되고, 이를 라이브러리와 연결시키는 링킹(Linking) 작업을 통해 최종적으로 실행 파일이 생성된다. 링킹 방식에는 Static Linking과 Dynamic Linking, 2가지 방식이 존재한다. Static Linking 방식은 실행파일 내에 필요한 라이브러리 내용을 모두 포함하여 파일을 생성한다. 실행파일 내에 모든 코드가 포함되기 때문에 라이브러리를 따로 연동하고 관리할 필요가 없다. 하지만 파일의 용량이 크고, 같은 라이브러리를 사용하더라도 해당 라이브러리를 사용하는 파일들은 라이브러리 내용을 모두 메모리에 매핑시켜야한다는 단점이 있다. 반면 Dynamic Linking 방식은 공유 라이브러리를 사용하기 때문에 Static Linking 방식과 달리 ..
-
[시스템해킹 #5] RET SLED, FEBPEVI$ION/SYSTEM HACKING 2019. 6. 24. 22:45
[RET SLED] ret: 어셈블리어 명령어. POP EIP, JMP EIP RET: 리턴 어드레스 어셈블리어 명령어인 ret과 리턴 어드레스를 의미하는 RET은 철자가 같아 혼동의 여지가 있다. 이 둘의 구분을 위해 어셈블리어 명령어인 ret을 '가젯'이라 부르고, ret의 주소를 '가젯 주소'라 한다. (하지만 보통 가젯과 가젯 주소는 어셈블리어 ret의 주소로 혼용되곤 한다.) 가젯은 코드 영역에 위치하기 때문에 컴파일 시에 결정되고 고정적이다. RET SLED의 목적은 ret(어셈블리어) 명령을 한번 더 실행시킴으로써 shellcode를 실행시키는 것이다. 리턴 어드레스(RET)에 ret 가젯을 삽입함으로써 리턴 어드레스를 뒤로 지연시키기 때문에 SLED라고 하며, 삽입된 ret 가젯을 통해 s..
-
[와이어샤크 #5] 지연 탐지EVI$ION/Wireshark 2019. 6. 24. 11:56
※ 실습 파일: http-openoffice101b.pcapng, http-pcaprnet101.pcapng [Time 열로 지연 문제점 검출하기] 간혹 패킷 전송이 너무 지연되는 문제가 발생하는 경우가 있다. 이를 검출하기 위해서는 Time 열을 확인해야한다. Time 열을 통해서 대기 시간(Latency, 전달 지연)을 알 수 있다. 대기 시간이란, 호스트가 request를 보내고 response를 받을 때까지의 시간 간격을 말한다. Time 열과 Info 열을 같이 확인하면 경로, 클라이언트, 서버 입장에서의 대기 시간을 각각 검출할 수 있다. 1) 경로 전달 지연 : RTT (Round Trip Time, 왕복 시간) 전달 지연 경로 전달 지연이 발생하는 원인은 아래와 같다. ▶ 우선 순위에 따라..
-
[와이어샤크 #4] 프로토콜과 애플리케이션 설정, 프로파일 사용법EVI$ION/Wireshark 2019. 5. 20. 23:46
※ 실습에 사용된 파일: http-pcaprnet101.pcapng [프로토콜과 애플리케이션 설정] 프로토콜 설정은 Edit → Preferences → Protocols로 들어가거나, 우클릭 → Protocol Preferences에서 설정할 수 있다. (이유는 모르겠지만 프로토콜 설정할 때에는 우클릭으로 들어가는게 더 좋다고 한다.) 1. 보조 해석기가 TCP 스트림 재조립을 허용 (Allow subdissector to reassemble TCP streams) 이 설정은 기본적으로 활성화되어 있지만 HTTP 트래픽 분석 시 문제가 발생할 수 있기 때문에 분석할 때에는 설정을 해제해주는 것이 좋다. 해당 설정을 해제하면 HTTP 트래픽의 상세창에서 HTTP 응답 코드를 볼 수 있다. 해당 설정이 켜..
-
[시스템해킹 #4] NOP Sledding, strcpy와 gets, 링크, RTLEVI$ION/SYSTEM HACKING 2019. 5. 13. 00:49
[NOP Sledding] NOP Sled, NOP Slide, NOP Sliding이라고도 한다. NOP(No-OPeration)은 어셈블리어 명령어 중 하나로, 기계어 표현은 운영체제에 따라 다르다. (Linux: \x90, Window: 0x1C0C1C1C) NOP Sledding은 의미 있는 명령어가 나올 때까지 실행 포인터를 이동시키는 기법이다. 즉, 고의적으로 실행 흐름을 늦추는 것으로, 쉘코드의 위치가 불분명할 때 NOP Sledding 기법을 사용한다. (※ 주의: 쉘코드를 삽입할 때 적어도 쉘코드의 앞뒤에는 NOP을 넣어주는 것이 좋다. 쉘코드가 스택의 범위를 넘어서서 쉘코드가 정상적으로 실행되지 않을 수 있기 때문이다.) NOP Sledding은 시스템해킹 뿐만 아니라 웹해킹에서도 사용..
-
[딥러닝 #3] 백터화된 로지스틱 회귀/경사하강법, 인공신경망EVI$ION/DEEP LEARNING 2019. 5. 6. 22:55
[벡터화] 벡터화된 코드를 작성한다는 것은, 내부적인 연산을 병렬적으로 처리한다는 것을 의미한다. 그냥 쉽게 행렬처럼 계산한다고 생각하면 된다. 벡터화된 코드는 짧고 간결하며, 속도가 빠르고, 정규 수학 표현과 비슷하다는 장점이 있다. [학습률] 경사하강법 알고리즘에서 사용되는 초매개변수로, 프로그래머가 머신러닝 알고리즘에서 조정하는 값을 말한다. 즉, w를 얼마나 많이 이동시킬 것인지를 결정하는 것이 학습률이다. 학습률은 모델마다 다르게 설정된다. 예를 들어 기울기가 2.5이고 학습률이 0.01이라면, 경사하강법 알고리즘은 원래 지점에서 0.025(= 2.5*0.01) 떨어진 지점을 다음 지점으로 결정한다. (여기서 기울기(0.5)와 학습률(0.01)을 곱한 결과값을 경사 스탭(0.025)이라 한다.)..
-
[와이어샤크 #3] 와이어샤크 해석기, 각종 설정 및 기능EVI$ION/Wireshark 2019. 5. 6. 12:13
이번 시간에는 와이어샤크의 여러 기능에 대해 배웠다. 실습은 http-disney101.pcapng 파일로 진행했다. [Column에 HTTP 호스트 필드 추가] 와이어샤크에서는 분석 시간 단축을 위해 열의 추가 및 정렬이 중요하게 사용된다. 이 기능은 많은 네트워크 패킷들을 보기 편하게 정렬해준다. HTTP 프로토콜을 사용하는 프레임 15의 패킷 상세 창에서 HTTP의 Host를 선택한 후 우클릭하여 Apply as Column 메뉴를 클릭하면, Host 열이 추가된다. Host 열에는 클라이언트에게 요청을 보낸 모든 호스트, 즉 클라이언트와 통신한 모든 호스트의 정보가 출력된다. [와이어샤크 해석기] 와이어샤크에서는 먼저 수집 엔진을 통해 수집된 패킷이나 Wiretab 라이브러리에 저장된 패킷을 Co..