PHP Charset Encoder/String Encrypter
PHP Charset Encoder/String Encrypter는 “http://yehg.net/encoding”사이트에서 제공하는 웹 형식 인코딩/디코딩 도구이며 인터넷이 되는 환경에서 모두 실행 가능하다.
소개[편집]
사용자가 입력한 문자열을 인코딩/디코딩하는 기능을 제공한다. PHP Charset Encoder/String Encrypter의 접속 화면은 [그림 1]과 같다.
위 사이트에는 문자열 인코딩/디코딩 외에도 인크립션/해시 기능과 URL 인코딩/디코딩 기능, 문자열을 ascii 코드 값으로 변경하거나 변경한 것을 다시 문자열로 변환하는 기능 등이 있다.
사용법[편집]
밑의 [그림 2]에서 input encoding에서는 사용자가 입력한 문자열의 인코딩 방식을 입력하고, output encoding에서는 변환하고자 하는 인코딩 방식을 선택한다. 그 다음 텍스트 박스에 인코딩하고자하는 내용을 넣고 ‘Convert me’ 버튼을 누르면 인코딩이 된다.
[그림 3], [그림 4]는 URL 인코딩/디코딩 실행 화면을 캡처한 것이다.
도구 기능[편집]
이 사이트에는 사용자가 쉽게 사용할 수 있도록 버튼들을 제공하고 있다. 다음 [표 1]는 각 버튼에 대한 설명이다.
버튼 기능 | 설명 |
toCharCode | Character 값을 10진수로 변환 |
fromCharCode | 10진수를 Character로 변환 |
encodeURLComponent | URL 값으로 인코딩 |
decodeURLComponent | URL 값을 디코딩 |
Escape | 문자열에 Escape 값 넣기 |
UnEscape | 문자열에서 Escape 값 제거 |
Last Command | 최근 실행한 명령/변경 |
fromCharCodeX | String.fromCharCode([입력한 문자열]) |
Convert me! | input encoding값과 output decoding값 변경 |
Send to HackVertor API | HackVerter API로 입력 값 전송 |
Send to CAL9000 | CAL9000으로 입력 값 전송 |
Clear All | 텍스트 박스의 값을 |
Select | 텍스트 박스안의 문자열을 모두 선택 |
또한, XSS/XML/SQL/Traversal콤보박스는 사용자들이 많이 사용하고 있는 XSS/XML/SQL/Traversal 소스를 제공하고 있다. 콤보박스 중 한 개를 선택하게 되면, text box에 소스가 출력된다. Encoder/Decoder 콤보박스는 Encoder/Decoder할 수 있는 목록을 나타낸다. 이는 [표 2]과 같다.
Encoder/Decoder 종류 | 기능 | |
Encode | XSS | to decimal entities |
to HEX entities (&#xNN;) | ||
to HEX entities (\xNN) | ||
to HEX entities (\NN) | ||
to HEX entities (%NN) | ||
to octal JS entities | ||
to Packer | ||
htmlEncode (& -> &) | ||
SQL Injection | to MsSQL HEX() | |
to MySQL Char(x),Char(y) | ||
to MySQL Char(x,y) | ||
to Oracle/Db2 Chr(x)| |Chr(y) | ||
to MSSQL HEX() | ||
CMD Injection | to PHP char(x).char(y) | |
to VBscript Char(x) & Char(y) | ||
Misc | to Base64 | |
Decode | XSS | from decimal entities |
from HEX entities (&#xNN;) | ||
from HEX entities (\xNN) | ||
from HEX entities (\NN) | ||
from HEX entities (%NN) | ||
from octal JS entities | ||
from Packer | ||
htmlEncode (& -> &) | ||
SQL Injection | from MsSQL HEX() | |
from MySQL Char(x),Char(y) | ||
from MySQL Char(x,y) | ||
from Oracle/Db2 Chr(x)| |Chr(y) | ||
from MSSQL HEX() | ||
CMD Injection | from PHP char(x).char(y) | |
from VBscript Char(x) & Char(y) | ||
Misc | from Base64 |
Encrypt 콤보박스는 Hash, Crypt, Decrypt 기능을 한다. [표 3]는 Encrypt 콤보박스에서 제공하는 기능을 정리한 것이다.
Encrypt 종류 | 기능 |
Hash | MD5, SHA1, SHA256, SHA512, ripemd320, haval256, CRC32, crypt() |
Crypt | AES, RC4, Rabbit, Rijndael, Char--, Blowfish, rot13, Reverse, Char++, |
Decrypt | AES, RC4, Rabbit, Rijndael, Blowfish, MD5Crack |
TextFX 콤보박스는 개행문자나 따옴표 등을 다른 문자열로 변경하는 기능을 제공한다. [표 4]은 TextFX 콤보박스가 제공하는 기능을 정리한 것이다.
TextFX 종류 | 기능 |
Escape | Escape ' to \' |
Escape ' to \' | |
Escape ' to \' | |
Escape ' to \' | |
Escape \ to \ | |
Escape \ to \\ | |
Escape \ to \/ | |
UnEscape | UnEscape \' to ' |
UnEscape \' to ' | |
UnEscape \' to ' | |
UnEscape \' to ' | |
UnEscape \\to \ | |
UnEscape \/to / | |
ConvertDecrypt | from \NN to &#NN; |
from &#NN; to \NN | |
from % to \ | |
from \n to %0D%0A | |
from %0A to %0D%0A | |
from \ to / | |
Quote | Change ' to ' |
Change ' to ' | |
Remove quotes ' ' | |
Remove single quote | |
Remove double quote |
문자열 인코딩/디코딩을 할 수 있는 문자 집합(Character set)은 73가지가 있다. 73가지는 [표 5]와 같다.
지원 문자 집합 |
7bit, 8bit, ArmSCII-8, ASCII, auto, BASE64, BIG-5, byte2be, byte2le, byte4be, byte4le, CP50220, CP50220raw, CP50221, CP50222, CP51932, CP850, CP866, CP932, CP936, EUC-CN, EUC-JP, eucJP-win, EUC-KR, EUC-TW, HTML-ENTITIES, HZ, ISO-2022-JP, ISO-2022-JP-MS, ISO-2022-KR, ISO-8859-1, ISO-8859-10, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, JIS, JIS-ms, KOI8-R, KOI8-U, PUNYCODE, Quoted-Printable, SJIS, SJIS-win, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UHC, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, UTF7-IMAP, UTF-8, UUENCODE, wchar, Windows-1251, Windows-1252, Windows-1254 |
마지막으로 PHP Charset Encoder/String Encrypter는 encoding/encryption/hashing functions 자바스크립트, PHP 함수 등 텍스트 박스의 값을 생성 일정한 포맷을 출력해준다.
제한사항[편집]
웹으로 서비스를 사용하기 때문에, 인터넷이 안 되는 환경에서는 사용할 수 없다. 다양한 문자열을 제공하지만 해당 웹페이지는 정상적인 서비스가 이루어져 있는 것 같지 않다.
수사 활용 방안[편집]
인코딩된 문자열을 디코딩할 때 필요한 도구로써 다양한 문자 집합을 제공하고 있으므로 용일할 것 같다. 인코딩/디코딩뿐만 아니라 php 함수기능을 제공하고 있어 php관련 웹페이지를 분석할 때 용이할 것이다.