분류 전체보기
[Lord of SQL Injection] golem 11번 풀이
[Lord of SQL Injection] golem 11번 풀이
2021.10.17[ 문제 접근 ] 1. if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe"); : or,and,substr,= 문자열을 필터링함 2. if($result['id']) echo "Hello {$result[id]}"; : id가 존재하면 Hello를 띄워줌 3. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("golem"); : 질의결과의 pw가 우리가 입력한 pw와 같을 경우 solve 시켜줌 => blindsqlinjection 사용해야 함을 유추 가능 =>방법 : or, and를 우회, 기존에 substr대신에 한글자씩 비교할 수 있는 함수를 사용 => = 대신 다른 방식으로 비교하..
[Lord of SQL Injection] skeleton 10번 풀이
[Lord of SQL Injection] skeleton 10번 풀이
2021.10.17[ 문제 접근 ] 1. 이번 문제는 쿼터나 공백 그리고 특정 문자에 대한 필터링이 없다 2. 기존 문제와의 차이는 뒤에 and 1=0 이 붙어있다. 3. if($result['id'] == 'admin') solve("skeleton"); : 쿼리 질의 결과 id가 admin인 경우 solve 시켜준다. => 방법 : and 1=0 부분이 거슬리지만 이걸 무시하게 만드는 방법을 생각해본다. https://devdori.tistory.com/20 [Lord of SQL Injection] cobolt 2번 풀이 [ 문제접근 ] 1. 쿼리 : id와 pw파라미터가 존재하고 pw를 md5 암호화, 이를 통해 DB를 조회한다 2. $_GET[id], md5('{$_GET[pw]}') : GET방식을 통해서 id..
[Lord of SQL Injection] vampire 9번 풀이
[Lord of SQL Injection] vampire 9번 풀이
2021.10.17[ 문제 접근 ] 1. $_GET[id] = str_replace("admin","",$_GET[id]); : 우리가 입력한 id에 admin이라는 문자열을 지워버리고 있다. 2. if($result['id'] == 'admin') solve("vampire"); : 쿼리질의 결과 id가 admin인 경우 solve 시켜준다 => 방법 : admin이라는 문자열이 지워졌을 때 admin을 만드는 방법을 생각해본다. [ 문제풀이 ] 더보기 : ?id=adadminmin 정답과 같은 방식으로 적어주면 adadminmin 녹색 부분이 사라지게 된다. 따라서 admin이라는 문자열이 완성되게 된다. "VAMPIRE Clear!" 가 나타났다! 정답! 이제 다음 스테이지로 넘어가도록 하자
MIPS와 ARM의 차이점
MIPS와 ARM의 차이점
2021.10.17ARM과 MIPS은 모두 RISC 개념을 사용하는 CPU이긴 하지만 굉장히 큰 차이가 존재한다. ARM과 MIPS에 대한 설명은 이전 글을 참고하길 바란다. https://devdori.tistory.com/29 ARM 아키텍처 (ARM architecture) ARM이란? Advanced RISC Machines의 약자로 세계에서 가장 광범위하게 사용되는 CPU 체계의 한 종류로 RISC라는 명령어 체계를 이용하는 프로세서이고 주로 사물인터넷, 모바일 안드로이드, 랩탑, 인터넷 devdori.tistory.com https://devdori.tistory.com/30 MIPS 아키텍처 (MIPS architecture) MIPS란? Microprocessor without Interlocked Pipe..
MIPS 아키텍처 (MIPS architecture)
MIPS 아키텍처 (MIPS architecture)
2021.10.17MIPS란? Microprocessor without Interlocked Pipeline Stages의 약자로 MIPS Technologies에서 개발하였고, ARM과 같은 RISC 기반의 명령어 집합 체계를 사용한다. 특징으로는 RISC 답게 단순하고 구조화된 명령어 구조를 가지며, 컴파일러의 성능에 의존하는 경향이 있다. MIPS 명령어 체계 MIPS 명령어 체계는 3가지 종류의 명령어로 구성되어 있다. 들어가기에 앞서 opcode라는 개념에 대해서 알아야 할 필요가 있다. opcode는 해당 명령어가 실행할 연산의 종류를 정의한다. R type: c = a + b와 같은 연산을 할 때, 2개의 레지스터 값을 이용하여 연산을 한 다음, 다른 레지스터 하나에 연산한 값을 기록한다. 이 때 연산을 하는..
ARM 아키텍처 (ARM architecture)
ARM 아키텍처 (ARM architecture)
2021.10.17ARM이란? Advanced RISC Machines의 약자로 세계에서 가장 광범위하게 사용되는 CPU 체계의 한 종류로 RISC라는 명령어 체계를 이용하는 프로세서이고 주로 사물인터넷, 모바일 안드로이드, 랩탑, 인터넷 모뎀 디지털카메라, 닌텐도 등 임베디드기기에 많이 사용되고 있다. 용어정리 ARM 아키텍처는 명령어, 레지스터 구조, 메모리 구조 등의 프로세스 기본구조와 동작원리에 대한 정의를 의미하고 ARM 아키텍처에 따라 구현한 processor의 핵심 부분을 ARM core라고 한다 ARM프로세서의 특징 1. 전력소모가 적음 (작은 다이로 설계) 2. 가격에 민감하기 떄문에, 속도가 느린 저자의 메모리 소자를 사용 3. 명령어가 간단 4. 32비트 단위의 명령어 구조 ARM 아키텍처 ARM아키텍..
[ 정보보안 프로젝트 ] CVE 분석 및 1 - Day 취약점 구현
[ 정보보안 프로젝트 ] CVE 분석 및 1 - Day 취약점 구현
2021.10.16IP Camera [ CVE-2020-26762 ] ( IP Camera ) - Stack Buffer Overflow 더보기 □ 개요 취약점 종류 영향 심각도 CVSS 점수 CVE ID Stack buffer overflow 임의 명령 실행 HIGH 9.8 CVE-2020-26762 □ 설명 Edimax IP-Camera IC-3116W(v3.06) 및 IC-3140W(v3.07)에서 GET에 대한 인증 미흡으로 공격자가 조작된 코드삽입이 가능, 이로인해 doGetSysteminfo()에서 stack buffer overflow가 발생 □ 영향을 받는 제품 제품 영향 받는 버전 환경 Edimax IP-Camera IC-3116W v3.07 linux [ CVE-2020-7848 ] ( IP Camera..
[ 정보보안 프로젝트 ] 주제 선정 및 계획
[ 정보보안 프로젝트 ] 주제 선정 및 계획
2021.10.16[ 프로젝트 소개 ] 이 프로젝트는 우리 학교 졸업생 선배와 함께, 정보보안을 주제로 진행하는 프로젝트로 기간은 10/1~11/26까지 총 56일간 진행하며 11/27일 최종 발표회를 통해 그동안의 성과를 발표하는 것으로 마무리되는 프로젝트입니다. [ 주제 선정 ] 프로젝트와 관련된 다양한 주제가 제시되었지만 그중에서 하드웨어와 관련된 취약점을 분석해보고 싶었기에 이번 프로젝트 주제로 " IoT Device 취약점 분석 "을 선정하게 되었습니다. [ 대상 선정 ] IoT Device 취약점 분석이라는 대주제를 잡고 프로젝트를 진행할 대상으로 "IP 카메라와 공유기"를 선정하였습니다. [ 진행 계획 ] 1주 ~ 2주 : WBS 작성 및 해당 프로젝트와 관련된 사례 & 취약점 조사 3주 ~ 4주 : 선정한 ..
[Lord of SQL Injection] troll 8번 풀이
[Lord of SQL Injection] troll 8번 풀이
2021.10.13[ 문제접근 ] 1. if(preg_match("/admin/", $_GET[id])) exit("HeHe"); : 이 부분에서 admin을 필터링 하고 있다. 2. if($result['id'] == 'admin') : 쿼리질의 결과 id가 admin인 경우 solve시켜준다 =>방법 : preg_match에 대해서 잘 생각해본다! [ 문제풀이 ] 더보기 : ?id=ADMIN preg_match() 함수는 해당 문자열에서 전달받은 정규 표현식과 일치하는 패턴을 검색하는 역할을 한다. 정규 표현식 리터럴을 작성할 때 다음과 같은 플래그를 사용하여 기본 검색 설정을 변경할 수 있다. 다시 문제를 보면 preg_match(" /admin/i " ...)가 아닌 preg_match(" /admin/ " .....
[Lord of SQL Injection] orge 7번 풀이
[Lord of SQL Injection] orge 7번 풀이
2021.10.12[ 문제접근 ] if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe"); 1. 이번에도 위의 조건을 통해 문자 and 또는 or라는 문자가 들어갔을때 필터링을 하고 HeHe를 출력 2. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) : 쿼리문 질의결과의 pw와 사용자가 입력한 pw가 같을때 solve 시켜줌, 즉 우리는 pw를 구해야한다 => 방법 : 4번(orc) 문제를 푸는 방식과 6번(darkelf)를 풀때 사용한 방식을 응용 4번 orc : https://devdori.tistory.com/22 [Lord of SQL Injection] orc 4번 풀이 [ 문제접근 ] 1. 쿼리 : id는 admin으로 고정..
[Lord of SQL Injection] darkelf 6번 풀이
[Lord of SQL Injection] darkelf 6번 풀이
2021.10.12[ 문제접근 ] if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe"); 1. 이번 문제에서는 위의 조건을 통해 문자 and 또는 or라는 문자가 들어갔을때 필터링을 하고 HeHe를 출력 2. if($result['id'] == 'admin') solve("darkelf"); : 쿼리문 질의결과의 id가 admin일 경우 solve 시켜줌 => 방법 : and와 or를 대체할 다른 문자를 사용 [ 문제풀이 ] 더보기 : ?pw='||id='admin 이번 문제에서는 단순히 문자 and와 or을 의미하는 기호를 사용해서 우회할 수 있었다. 여기서는 or을 우회하기 위해 || 만 사용했지만, 만약 and를 사용하고 싶다면 아래와 같이 사용하면 된다. or 연산자 : ||..
[Lord of SQL Injection] wolfman 5번 풀이
[Lord of SQL Injection] wolfman 5번 풀이
2021.10.12[ 문제접근 ] if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); 1. 위에 적혀있는 조건문을 분석해보면 whitespace가 입력되면 No whitespace를 띄움 > 화이트스페이스(whitespace)란? :: 공백형태로 된 문자형태(스페이스, 탭, 줄바꿈 등) 2. if($result['id'] == 'admin') : 이 조건문을 통해 쿼리문 질의결과의 id가 admin일 경우 solve("wolfman"); 시켜줌 => 방법 : whitespace를 우회하여 아이디를 admin으로 바꿔준다 [ 문제풀이 ] 더보기 : ?pw='or%0aid='admin 이번 문제에서는 공백을 필터링하고 있기 때문에, 우리는 공백을 대신하여 사용할 수 있..