일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- GIT
- 써니나타스
- 뷰
- Express
- materialize
- 포렌식
- MongoDB
- 그래프
- 이진탐색트리
- gitbash
- nodeJS
- 워게임
- 자바
- 자바문제풀이
- 워게임추천
- node
- 자바기초
- NavBar
- mongoose
- 웹해킹
- bootstrap
- 웹기초
- 웹해킹기초
- wargame.kr
- 이진트리
- 포렌식워게임
- CTF
- 자료구조
- 웹개발
- node.js
- Today
- Total
목록전체 글 (108)
보안 전공생의 공부
첨부된 mandu.png 파일을 다운받아 열어보려고하면 열리지 않는다. 이를 해결하면 풀리는 문제인 것 같다. WindHex 프로그램으로 파일을 헥스단위로 쪼개보았다. PNG 파일의 시그니처가 틀렸음을 찾아볼 수 있다. (PNG 파일의 시그니처는 89 50 4E 47 0D 0A 1A 0A이다.) 시그니처대로 수정하고나서 File-Save as 를 눌러 원래 mandu.png에 덮어씌운다. 덮어씌운 mandu.png를 다시 눌러보면 우왕 성공~!! 쉬워서 급 자신감 뿜뿜하게 만들어주는 기특한 문제...
◆ 파일 시그니처(파일 형식) 2장에서 관련된 내용에서 포렌식은 파일확장자가 아니라 파일의 헤도로 파일을 식별한다고 하였다. 각 파일 형식마다 가지고 있는 고유한 특징을 파일 시그니처라고 한다. 손상된 파일을 복구하거나 숨겨진 내용을 파악하는 포렌식의 특성상 이를 자주 활용한다. 시그니처는 헥사코드(16진수)로 구성되어 있고 이는 HxD 프로그램으로 확인할 수 있다. 헤더 시그니처와 푸터 시그니처으로 파일의 형식을 구분지을 수 있다. 어떤 파일의 헤더는 PNG인데 푸터부분이 이상하거나 다른형식(JPG)이면 해당 파일은 조작된 파일임을 예상할 수 있다. (출처 : https://wogh8732.tistory.com/61) File Type Header Signature Footer Sig..
출처 http://book.naver.com/bookdb/book_detail.nhn?bid=7007687 ◆ 할당된 공간, 할당되지 않은 공간 파일시스템 → 하드드라이브에 있는 공간을 할당된 공간, 할당되지 않은 공간으로 분류 ( 예외존재 → 호스트 보호 영역 ) - 호스트 보호 영역(HPA)과 디바이스 설정 오버레이(DCO) : 하드드라이브의 숨겨진 영역, 탐지 어렵 최종 사용자가 특정 오픈소스나 무료 툴을 사용해 접근, 수정 및 쓰기가 가능하며 이러한 영역에 데이터가 저장, 숨겨질 수 있또록 해줌 운영체제에게 있어 할당되지 않은 공간에 있는 파일 = 전혀 볼 수 없는 것 but "사용되고 있지 않는" != "빈 공간" · 데이터의 영속성 : 데이터는 하드 드라이브에 남아있따. 데이터를 완..
출처 http://book.naver.com/bookdb/book_detail.nhn?bid=7007687 1장. 소개 ◆ 디지털 포렌식 - 정의 : "정식 수색 기관, 연계보관성, 수학을 통한 검증, 검증된 툴의 사용, 반복가능성, 보고 그리고 가능하다면 전문가의 설명을 통해 디지털 증거와 관련하여 컴퓨터 공학과 수사절차를 법적인 목적에 적용하는 것" (ken zaryko) - 범위 : 휴대기기, 네트워크, 클라우드시스템, 사진, 비디오 및 음성분석 - 사용 · 범죄수사 디지털 세계에서 전자적 증거는 거의 모든 범죄 수사 과정에서 찾아볼 수 있다. ex) 데니스 레이더 사건(BTK 연쇄살인 사건) : 플로피 디스크의 rtf파일을 디지털 포렌식으로 분석하여 연쇄살인범인 데니스 레이더가 교회의 집회장이라는..
플래그를 획득해야한다. 링크에 들어가 문제를 확인해보았다. GET방식으로 guess 값을 입력해 URL에 넘겨준다. 만약 변수 guess가 존재한다면, secret.txt를 file_get_contents함수를 통해 문자열로 읽어주어 이를 변수 secretcode로 정의한다. (trim은 문자열의 앞뒤에 생기는 불필요한 공백을 없애주는 함수이다) === 는 처음보는 연산자여서 검색을 해보았더니, 두 변수의 값뿐만 아니라 그 유형까지도 일치하는지 판단하는 것이였다. (출처 : https://velog.io/@filoscoder/-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4-oak1091tes ) 변수 guess와 secrecode(secret.txt를 문자열로 변..
◆ Blind SQL Injection 서버에서 내부 오류 메시지를 외부에 공개되지 않도록 구성한 경우 Type 변환 오류 메시지를 사용한 Database구조 파악이 불가능 → substring(문자열, 시작위치, 길이) 문자열의 특정 문자열을 한 글자씩 찾아가는 Blind SQL Injection 공격 시도 Query 결과에 따른 서버의 참/거짓 반응을 통해 공격을 수행한다. (Target 사이트에서 참/거짓을 구분지을 수 있는 페이지가 존재해야함) 이를 통해 db명, 테이블명, 컬럼명 ID, PW 등을 알아낼 수 있다. (출처 : https://peemangit.tistory.com/151 ) 우선 눈에 보이는 것은 pw를 입력할 때 or이나 and를 사용하지 말라는 것이다. ||,%7..
이전 문제에서 봤던 preg_match 함수가 있다 ! 이번에는 pw에 or이나 and를 쓰지 말라고 한다 ! pw값은 입력받아야하지만 pw값과 무관하게 id가 admin이면 문제가 풀린다 주소 뒤에 ?pw=' or id='admin 이나 ?pw='||id='admin 을 입력하면 되는데 pw에 or을 사용하면 안되므로 후자를 입력하면 된다. 완전 스무스하게 풀리는 편안함 .. 안 풀리면 내가 너무 한심하고, 풀리면 문제가 너무 쉬운 거 같고 ..ㅋㅋ
preg_match라는 함수가 낯설다. preg_match('/대조할 문자/', '입력한 문자', $matches); 구조이며 - 대조할 문자 : 찾거나 필터링하고 싶은 문자열 ( 특수문자일때는 앞에 \ 붙이기) - 입력한 문자 : 사용자가 어떤방식이든 입력 받아 담은 특정 변수 - $matches : 대조할 문자 == 입력한 문자 일때 그 문자는 배열형태로 $matches에 저장 ( 출처 : https://flash-ctf.tistory.com/43 ) 이를 활용해 해석해보면 pw에 공백이 존재하면 안된다. (이때 / 뒤에 붙은 i는 대소문자를 구분하지 않는다는 의미이다.) 그리고 마지막에 있는 if문을 보면 pw와 무관하게 id가 admin 일 때 문제가 풀리는 것을 확인..