简介
编码(encode)和解码(decode)是相当广泛的话题,设计计算机对信息处理的方式,常见于加解密中,当然学习WEB也要了解一些常见的编码,可在攻击中使用编码绕过。
ASCII编码
ASCII (American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。
到目前为止共定义了128个字符:
ASCII码表
常见ASCII码的大小规则:0~9
1)数字比字母要小。如 “7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
3)字母A比字母Z要小,并按A到Z顺序递增,如“A”<“Z” ;同理,字母a比字母z要小,“a”<“z”;
4)同个字母的大写字母比小写字母要小32。如“A”<“a” ;
几个常见字母的ASCII码大小: “0”为 48“、A”为65、“a”为97
当然,不在ASCII码表上的也可以转为ASCII码,例如,汉字,一般汉字是由两个ASCII码表示的,例如,下图的“好”,对应的ASCII码表的十六进制为"0x597d"。
ASCII与中文互转
使用网站:Jsons.cn
URL与URL编码
URL详解
URL(Uniform Resource Locator,统一资源定位器、定位地址,俗称网页地址,简称网址),是因特网上标准的资源地址,如同在网络上的门牌。
完整格式如下:
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
博主翻译为:
[协议类型]://[用户名[:密码]]@[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
协议类型:常见的有http、https,还有ftp、file、mailto、data等。
用户名、密码:这没什么好解释的,就是字面意思。
服务器地址:有的时候你在URL上看到的是域名,其实会通过DNS转为IP地址,所以还是服务器IP地址。
端口号:常见80、443、21、22等。
资源层级文件路径:大部分会隐藏,就是服务器的目录路径,使用"/"区别每一层。
文件名:如访问网页,可能是xxx.htm、xxx.html、xxx.php等,例如,index.html。
查询:使用"&"连接
片段ID:有的时候被称为“锚点”,一般是指CSS中的id,就是使用浏览器调试时看到的id属性,有时也可通过这个进行XSS或sql注入。
其中[用户名[:密码]]、[端口号]、[查询]、[片段ID]都属于选填项。
举例,百度搜索“URL”
https:协议类型
www.baidu.com:域名,会转为ip。
ping百度
更换为a.shifen.com
本质上都是转为IP,我们修改为前面的110.242.68.3。
转为ip访问
s:文件名
wd=URL&...:查询,使用key=value形式。可以直接修改URL为LadyKiller9,再访问。可以看到值传过去了。
URL直接改为LadyKiller9
端口的话,在IP后面加 :443 即可,但是访问后会隐藏掉。
片段ID可自己添加一个:
找到一个id
访问上方URL
可以看到右侧滑块在最下方,浏览器直接显示到后面。CSDN的目录也是这个原理,鼠标放在文章的目录上,会显示文章的URL#tx,x从0开始编号。
URL编码
任何URL编码的字符都以%作为前缀,有时也称URL编码为百分号编码。
URL编码表
URL编码表
一些常见的编码在上表加粗,红色显示,%20是空格。对于汉字也可以进行编码。
对”你好“进行URL编码,得到“%E4%BD%A0%E5%A5%BD”,汉字一般是三个百分号编码,将上访url中的“你好”换为“%E4%BD%A0%E5%A5%BD”会得到同样的页面。在进行攻击,比如sql注入时,可能会过滤and、select等sql关键字,有时可通过URL编码绕过。
URL编码
使用网站:Jsons.cn