분류 전체보기
[ 정보보안 프로젝트 ] 펌웨어 추출하는 방법 (포트미러링)
[ 정보보안 프로젝트 ] 펌웨어 추출하는 방법 (포트미러링)
2021.12.18이번 글에서는 이전 글에서 말했듯이 펌웨어를 추출하는 과정을 설명하도록 하겠습니다. 펌웨어를 추출하는 방법으로는 여러 가지가 존재합니다. 이 글에서는 비교적 쉽게 펌웨어를 추출할 수 있는 포트미러링을 활용하여 펌웨어를 추출해보도록 하겠습니다. 포트미러링이란? 포트미러링이란 공유기 또는 스위치에서 특정 포트를 설정하여 지정된 포트로 다른 포트에서 발생한 모든 네트워크 패킷 혹은 전체 패킷들을 복제하여 전송하는 방식을 포트미러링이라고 합니다. 펌웨어 추출 포트미러링을 활용하기 위해서는 포트미러링을 지원하는 공유기 또는 스위치를 이용해야 하고 또한 펌웨어 업데이트 패킷을 미러링 하여 설치 주소를 받아오기 때문에 펌웨어 업데이트가 존재해야 합니다. 저는 IpTIME의 N604S 공유기를 활용하여 TP-LINK ..
[ 정보보안 프로젝트 ] Tapo C200 IP camera - 콘솔 접속
[ 정보보안 프로젝트 ] Tapo C200 IP camera - 콘솔 접속
2021.11.27본 과정은 " Tapo C200 IP camera - 하드웨어 분석 " 이후 진행되는 내용입니다. [ 정보보안 프로젝트 | Day - 2 ] Tapo C200 IP camera - 하드웨어 분석 [ 동작 모습 ] 더보기 [ 하드웨어 분해 ] 더보기 Tapo C200 카메라는 다른 카메라에 비해 비교적 쉽게 외부 케이스를 분리할 수 있었다. 상단의 케이스와 하단의 케이스는 나사를 풀지 않고 카메라를 devdori.tistory.com 콘솔에 접속하려면 위와 같이 생긴 USB to UART 모듈을 사용해야 합니다. USB to UART 모듈을 사용하기 위해서는 하드웨어 기판에 존재하는 UART포트와 모듈을 연결해주어야 합니다. 저희는 저번 시간에 UART 포트의 위치를 확인했습니다. 다음 사진이 저번에 확인..
[ 정보보안 프로젝트 ] 공유기 펌웨어 환경 구축
[ 정보보안 프로젝트 ] 공유기 펌웨어 환경 구축
2021.11.16이번 글에서는 정보보안 프로젝트를 진행하는 과정에서 공유기에 존재하는 원데이 취약점을 분석하고 구현하기 위해 펌웨어의 환경을 구축하고 CGI 환경을 구현해보도록 하겠습니다. [ 이 글은 Ubuntu 18.04 LTS를 기준으로 작성되었습니다 ] 이번 실습에서는 iptime t24000 공유기의 펌웨어 사용되었습니다. 펌웨어 종류에 따라서 환경 구축 방법이 달라질 수 있습니다. 이점 참고 바랍니다! 기본 환경 구성 $ sudo apt-get update 환경 구축 과정에서 설치해야 하는 파일이 존재하므로 따로 폴더를 만들어서 진행하시는 것을 추전 드립니다. $ mkdir iptime_t24000 $ cd iptime_t24000 iptime 펌웨어는 지금 보이는 url에서 설치하실 수 있습니다. 이 글에서..
Javascript Prototype Pollution
Javascript Prototype Pollution
2021.11.13프로토타입(prototype) 개념 더보기 여기서는 프로토타입을 자세하게 설명하기보다는 Prototype Pollution을 이해하기 위한 간단한 지식만을 설명하겠습니다. 자세하게 알고 싶은 분은 하단의 링크를 참고하세요! 프로토타입(prototype) 이란? 일반적인 의미로 프로토타입이란 시제품, 견본 등과 같은 의미로 원래의 형태 또는 표준이라는 의미를 가집니다. 즉, 자바스크립트에서 프로토타입은 자신을 만들어낸 객체의 원형을 프로토타입이라고 하고 Java나 php에서 말하는 class가 바로 자바스크립트의 프로토타입과 동일한 의미일 것입니다. 프로토타입(prototype) 이해를 돕기 위해 게임에서 사용하는 다음과 같은 world 함수가 있다고 가정하겠습니다. function world(name,j..
[ 정보보안 프로젝트 ] Tapo C200 IP camera - 하드웨어 분석
[ 정보보안 프로젝트 ] Tapo C200 IP camera - 하드웨어 분석
2021.11.07[ 동작 모습 ] 더보기 [ 하드웨어 분해 ] 더보기 Tapo C200 카메라는 다른 카메라에 비해 비교적 쉽게 외부 케이스를 분리할 수 있었다. 상단의 케이스와 하단의 케이스는 나사를 풀지 않고 카메라를 들어 올리기만 하면 내부 기판에 접근할 수 있었다. 상부를 완전히 분리하기 위해 연결된 포트들을 분리하고 3개의 나사를 풀어야 한다. 포트3개와 나가3개를 분리하면 다음과 같이 상부를 분리할 수 있고, 추가로 상부에 존재하는 나사를 분리해주면 기판을 분리할 수 있다. 위 과정을 거치고 기판을 당기면 다음과 같은 기판을 얻을 수 있다! [ 하드웨어 세부분석 ] 더보기 [ 프로세서 ] CPU: 500MHz :rx5281 prid=0xdc02 [ WIFI 칩셋 ] [ UART Pads ] [ Storage ..
[ 블록체인을 활용한 NFT 개발 | Day - 1 ] 개발에 필요한 필수 개념정리
[ 블록체인을 활용한 NFT 개발 | Day - 1 ] 개발에 필요한 필수 개념정리
2021.11.03NFT(non-fungible token) : '대체불가토큰’ 혹은 ‘대체불가능토큰’이라고 불리며 블록체인 기술을 바탕으로 만들어진 가상자산이라는 점에서는 비트코인과 비슷하지만, 비트코인이 현실의 화폐처럼 누구나 통용할 수 있게 만들어진 것과 달리 NFT는 각각의 디지털 자산이 고유한 인식값을 담고 있다.
[Lord of SQL Injection] assassin 15번 풀이
[Lord of SQL Injection] assassin 15번 풀이
2021.10.17[ 문제 접근 ] 1. get방식으로 pw를 입력받고 입력받은 pw를 쿼리의 like 구문안에 넣고 있다. 2. 싱글쿼터를 필터링하고 있다, 즉 like 절을 거짓으로 만든 후 새로운 쿼리를 만드는게 불가능하다. => like를 통해서 비교를 하고 있다, like는 와일드카드를 통해 패턴을 만들 수 있다. 1. %abc : abc로 끝나는 문자열 2. %abc% : abc라는 문자가 어딘가에 존재 3. abc% : abc로 시작하는 문자열 4. _abc : abc 앞에 특정한 한글자가 존재함 5.. a_bc : a와 b사이에 어떤 한글자가 존재함 [ % 는 여러개의 문자를 대체 , _ 는 단일 문자를 대체 ] [ 문제풀이 ] 더보기 : ?pw=902EFD10 우선 _ 를 사용해 문자열의 길이를 먼저 파악..
[Lord of SQL Injection] giant 14번 풀이
[Lord of SQL Injection] giant 14번 풀이
2021.10.17[ 문제 접근 ] 1. if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) : shit에 존재하는 \n \r \t를 필터링한다 2. shit을 get방식으로 입력을 받는데 질의문이 서로 붙어있고 가운데 우리가 입력한 shit가 들어간다. =>방법 : shit에 1번 이외의 공백을 넣어주어 질의문 형식을 맞춰준다. https://devdori.tistory.com/39 [SQL Injection] 공백 우회방법 (WHITE SPACE) SQL Injection 공격시 공백 문자 필터링시 우회 방법 줄바꿈 (Line Feed) [ \n ]: %0a 탭 (Tab) [ \t ]: %09 수직탭 (vertical tab) [ \v ] : %0b 폼피드 (form feed) [ \f ]..
[SQL Injection] 공백 우회방법 (WHITE SPACE)
[SQL Injection] 공백 우회방법 (WHITE SPACE)
2021.10.17SQL Injection 공격시 공백 문자 필터링 우회 방법 줄바꿈 (Line Feed) [ \n ]: %0a 탭 (Tab) [ \t ]: %09 수직탭 (vertical tab) [ \v ] : %0b 폼피드 (form feed) [ \f ] : %0c 캐리지 리턴 (Carriage Return) [ \r ] : %0d 주석 : /**/ 괄호 : ( ) 더하기 : +
[Lord of SQL Injection] bugbear 13번 풀이
[Lord of SQL Injection] bugbear 13번 풀이
2021.10.17[ 문제 접근 ] 1. if(preg_match('/\'|substr|ascii|=|or|and| |like|0x/i', $_GET[no])) exit("HeHe"); 1번에서 substr, ascii, or, and ,like,= 문자열 그리고 공백을 모두 필터링하고 있다 2. 2. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) 쿼리질의 결과 admin의 pw와 사용자가 입력한 pw가 같을 경우 solve시켜줌, 이쯤이면 다들 blindsqlinjection인거 유추하실 수 있을꺼라고 생각합니다. =>방법 : 기존에 작성한 코드를 응용하고 기존에는 like를 사용했지만 like를 필터링 하고 있으므로 like를 대체할 또 다른 방법을 찾아서 적용하면 풀..
[Lord of SQL Injection] darkknight 12번 풀이
[Lord of SQL Injection] darkknight 12번 풀이
2021.10.17[ 문제 접근 ] 1. if(preg_match('/\'/i', $_GET[pw])) exit("HeHe"); , if(preg_match('/\'|substr|ascii|=/i', $_GET[no])) exit("HeHe"); 1번에 2구문을 통해서 싱글쿼터, substr,ascii, = 을 모두 필터링하고 있다 2. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) 쿼리질의 결과 admin의 pw와 사용자가 입력한 pw가 같을 경우 solve시켜줌, 즉 blind sqlinjection 사용을 유추 =>방법 : 단순하게 1번에서 필터링하는 모든 것을 우회해서 기존과 같이 blind sqlinjection을 하면 구할 수 있다! *힌트 : ord, like..
[MySQL]문자열 자르기 함수 (LEFT, MID, RIGHT, SUBSTR, SUBSTRING)
[MySQL]문자열 자르기 함수 (LEFT, MID, RIGHT, SUBSTR, SUBSTRING)
2021.10.17설명 MySQL에서 문자열의 일부분을 가져오는 방식으로 3가지가 존재한다. 1. LEFT : 문자열의 왼쪽을 기준으로 지정한 갯수 만큼 문자열을 가져오는 함수 2. MID, RIGHT, SUBSTR : 문자열의 시작지점을 지정하고 지정한 갯수만큼의 문자를 가져오는 함수 3. RIGTH : 문자열의 오른쪽을 기준으로 지정한 갯수 만큼 문자열을 가져오는 함수 사용방법 LEFT 함수 LEFT(문자열, 가져올 길이 값); #============================= > select LEFT("HELLO WORLD",7); +-----------------------+ | LEFT("HELLO WORLD",7) | +-----------------------+ | HELLO W | +----------..