일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- requests
- ftz
- BOF
- Hackerschool
- 뉴스클리핑
- Next.js
- RITSEC
- 리버싱
- Nop Slide
- Linux
- NewsClipping
- x64dbg
- termux
- 리눅스
- 어셈블리어
- 버퍼오버플로우
- 웹해킹
- PWN
- webhacking
- writeup
- 보안뉴스
- reversing
- RITSEC CTF 2019
- Shadow 동아리
- HackCTF
- CodeEngn
- SQL Injection
- ctf
- buffer over flow
- Python
- Today
- Total
목록전체 글 (113)
Jaeseo's Information Security Story
SQL Injection의 정의 데이터 베이스 관리 언어 SQL을 통해 데이터베이스에 접근 시 비정상적인 구문을 삽입하여 공격하는 기법이다. 주로 클라이언트에서 서버로 전송하는 입력 값을 조작하여 행하여 진다. 이는 개발자가 입력 받은 값이 정상적인지 필터링 하지 못하여 발생하는 취약점이다. SQL Injection의 위험성 데이터베이스 내의 정보를 무단으로 유출 및 변조 데이터베이스 기반의 인증 우회 (계정 인증 우회) 등.. 매우 오래된 공격 기법 이지만 DB에 접근 할수 있다는 점 아직도 많은 웹사이트가 취약하여 OWASP에서 발표한 웹 주요 취약점 TOP 10에서도 1위를 차지하고 있는 공격 기법이다. OWASP TOP 10 2017 1 인젝션 2 취약한 인증 3 민감한 데이터 노출 4 XML 외..
SQLMAP - github Link sqlmap은 SQL 인젝션 결함 탐지 및 활용, 데이터베이스 서버 장악 프로세스를 자동화 하는 오픈소스 침투 테스팅 도구이다. 대표적 옵션 -h, --help 도움말 출력 -u URL, --url=URL 타켓 URL (e.g. "

평범한 SQL Injection과 달리 Blind SQL Injection은 한번에 바로 결과가 나오는 것이 아닌 서버의 True 일때의 반응과 False의 반응이 비교가 된다면 이것을 가지고 DB의 정보를 알아내는 기술이다. 문자를 하나씩 비교를 해서 True인지 False인지 비교를 해야 해서 보통 자동화된 툴을 이용해 Blind SQL Injection 공격을 시도한다. 기본 원리 점검문자열을 통해 알아낸다. 1) 'and 1=1 -- (참) 2) 'and 1=2 -- (거짓) 3) 'and 'a' = substring('admin',1,1) -- (참) 4) 'and 'd' = substring('admin',2,1) -- (참) 사용자 테이블 이름 질의 1) information_schema.t..
PUSH, POP 스택에 값을 넣는 것이 PUSH 스택에 있는 값을 가져오는 것이 POP PUSHAD , POPAD 모든 레지스터를 PUSH 하고 POP 하라는 명령어 ex) PUSHAD == PUSH EAX, PUSH EBX, PUSH ECX... MOV 값을 넣어주는 역할 ex) MOV eax,1 == eax에 1를 넣는 명령어 LEA LEA는 주소를 가져온다. MOV는 값을 가져온다. ex) esp+8 : 0x123456 , *esp+8 : 1234 LEA eax,esp+8 -> eax == 0x123456 MOV eax,esp+8 -> eax == 1234 ADD source 에서 destnation으로 더해라 ex) ADD source,destnation SUB source 에서 destnati..
RAX(64bit) -> EAX(32bit) -> AX(16bit) -> AH(8bit - high) - AL(8bit - low) Accumulator for operands and results data 주로 곱셈, 나눗셈에 사용되며, 함수의 반환값을 저장(리턴값) RBX(64bit) -> EBX(32bit) -> BX(16bit) -> BH(8bit - high) - BL(8bit - low) Pointer to data in the DS segment ESI, EDI 와 결합해 인덱스에 사용됨. RCX(64bit) -> ECX(32bit) -> CX(16bit) -> CH(8bit - high) - CL(8bit - low) Counter for string and loop operations 반..

05.exe - 이 프로그램의 등록키는 무엇인가 프로그램을 실행하면 등록키를 입력하는 inputbox와 name을 입력하는 inputbox가 있고 이것을 이용하여 등록을 진행 하는 프로그램으로 보인다. 이제 프로그램 분석을 시작 한다. 맨 처음 PE분석을 통해 패킹이 되어있는지 확인을 해보는 과정을 진행 해본다. PEview와 Exeinfo PE 툴을 통해 이프로그램은 UPX로 패킹이 되어있는걸 확인 할수 있다. UPX를 사용하여 언패킹을 진행해본다. ExeinfoPE를 통해 Unpack이 된 것을 볼수 있다. 이제 X32DBG로 분석을 해본다. String references 검색으로 통해 등록키로 의심이 되는 값 또는 인증관련 메시지와 관련된 값을 찾는다. 잘못된 입력 값을 입력 했을 때 뜨는 키워드..

04.exe - 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 프로그램을 실행을 해본다. 일정 시간동안 딜레이를 가지고 정상적으로 동작 하는지에 대해 체크 하는 모습을 볼수 있다. X32DBG에서 실행해본다. 디버깅 환경에서는 “디버깅 당함”이라는 문자를 계속 출력하는 모습을 볼수 있다. 이제 프로그램을 분석 해본다. 계속 반복적으로 작동을 하면서 디버거 프로그램을 탐지하는 기능을 담당 하는 함수를 호출하는 것으로 예상된다. 이때 인터럽트를 검색해본다. 디버그를 가르키는 키워드 dbg,debug 등을 검색한다. 그결과 이와 같은 함수들을 발견하게 되는데 디버그를 탐지하는 함수로 의심이 되는 “IsDebuggerPresent”에 들어가 살펴본다. 그리..

03.exe - 비주얼베이직에서 스트링 비교함수 이름은? 프로그램을 시작하면 이러한 알림창이 뜨게 되고 이러한 화면을 통해 Regcode에 비밀번호를 입력하여 문제에서 요구하는 “비주얼베이직에서 스트링 비교함수”를 이용하여 비밀번호가 맞는지 체크를 하여 작동하는 형식이다. 이때 X32DBG를 이용하여서 비밀번호를 입력시 발생하는 인터럽트를 체크 하여 확인 하면 된다. 아무 키값을 입력한다음 Regisrieren 버튼을 눌러 “비주얼베이직에서 스트링 비교함수”를 실행하여 인터럽트를 발생 시킨다. 위와 같은 화면이 뜨게 되고 STRING 비교를 하게 된 것을 확인 할수 있다. 이때 X32DBG에서 인터럽트를 검색을 하여 어떤 호출이 발생했는지 검색을 한다. 다양한 인터럽트가 검색이 되어진다. 이때 Strin..