CTF常见的编码

jother编码

jother编码是由[]()+!这些符号组成的,是一种js的编码。我们通常在控制台中运行此编码便可以解析内容。

jother编码的形式:

CTF常见的编码_第1张图片

 

js中的escap的编码

 

编码形式:

所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)

在js里有escap(string)函数表示将一个字符串编码,返回编码后的字符。可以使用unescape(string)进行解码,返回解码后的字符。

比如源码为:“321dassda。?sh新231”  编码后为:321dassda%u3002%uFF1Fsh%u65B0231   因此不会对ascii的字符进行编码。

 

url编码:

URL编码遵循下列规则: 每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用解码软件户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c。那么汉字的url编码呢?很简单,看例子:"胡"的ascii码是-17670,十六进制是BAFA,url编码是"%BA%FA"。

因此url编码当是ascii时有两种表示方法,一是直接用ascii表示,二是用%加上ascii的十六进制值表示。

当我们在浏览器中提交表单时,会对表单里的数据进行url编码,但是当我们提交的是%加十六进制时浏览器会默认已经进行过url编码,但是在返回服务器时会对这个没有进行url编码的数据进行解码。

 

 

 

 

 

 

 

你可能感兴趣的:(CTF)