PHP Charset Encoder/String Encrypter

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

PHP Charset Encoder/String Encrypter는 “http://yehg.net/encoding”사이트에서 제공하는 웹 형식 인코딩/디코딩 도구이며 인터넷이 되는 환경에서 모두 실행 가능하다.

소개

사용자가 입력한 문자열을 인코딩/디코딩하는 기능을 제공한다. PHP Charset Encoder/String Encrypter의 접속 화면은 [그림 1]과 같다.

[그림 1] PHP_Charset_Encoder/String_Encrypter_접속_화면.png

위 사이트에는 문자열 인코딩/디코딩 외에도 인크립션/해시 기능과 URL 인코딩/디코딩 기능, 문자열을 ascii 코드 값으로 변경하거나 변경한 것을 다시 문자열로 변환하는 기능 등이 있다.

사용법

밑의 [그림 2]에서 input encoding에서는 사용자가 입력한 문자열의 인코딩 방식을 입력하고, output encoding에서는 변환하고자 하는 인코딩 방식을 선택한다. 그 다음 텍스트 박스에 인코딩하고자하는 내용을 넣고 ‘Convert me’ 버튼을 누르면 인코딩이 된다.

[그림 2] HP Charset Encoder/String Encrypter 사용법.png

[그림 3], [그림 4]는 URL 인코딩/디코딩 실행 화면을 캡처한 것이다.

[그림 3] encodeURLComponent 실행 화면.png
[그림 4] decodeURLComponent 실행 화면.png

도구 기능

이 사이트에는 사용자가 쉽게 사용할 수 있도록 버튼들을 제공하고 있다. 다음 [표 1]는 각 버튼에 대한 설명이다.

[표 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]과 같다.

[표 2]Encoder/Decoder 콤보박스 기능
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 콤보박스에서 제공하는 기능을 정리한 것이다.

[표 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 콤보박스가 제공하는 기능을 정리한 것이다.

[표 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]와 같다.

[표 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관련 웹페이지를 분석할 때 용이할 것이다.