buuctf URL解密 摩丝

URL编码/解码详解
当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符。

安全字符,指的是没有特殊用途或者特殊意义的字符。

URL基本组成
URL 是由一些简单的组件构成,比如协议、域名、端口号、路径和查询字符串等,示例如下:

http://www.ccc.net/index?param=10
1
路径和查询字符串之间使用问号隔开。上述示例的域名为 www.ccc.net,路径为 index,查询字符串为 param=1。

URL 中规定了一些具有特殊意义的字符,常被用来分隔两个不同的 URL 组件,这些字符被称为保留字符。例如:

冒号:用于分隔协议和主机组件,斜杠用于分隔主机和路径

:用于分隔路径和查询参数等。

=用于表示查询参数中的键值对。

&符号用于分隔查询多个键值对。

其余常用的保留字符有:/ . … # @ $ + ; %

哪些字符需要编码
URL 之所以需要编码,是因为 URL 中的某些字符会引起歧义,比如 URL 查询参数中包含了”&”或者”%”就会造成服务器解析错误;再比如,URL 的编码格式采用的是 ASCII 码而非 Unicode 格式,这表明 URL 中不允许包含任何非 ASCII 字符(比如中文),否则就会造成 URL 解析错误。

URL 编码协议规定(RFC3986 协议):URL 中只允许使用 ASCII 字符集可以显示的字符,比如英文字母、数字、和- _ . ~ ! *这 6 个特殊字符。当在 URL 中使用不属于 ASCII 字符集的字符时,就要使用特殊的符号对该字符进行编码,比如空格需要用%20来表示。

除了无法显示的字符需要编码外,还需要对 URL 中的部分保留字符和不安全字符进行编码。下面列举了部分不安全字符:

[ ] < > " " { } | ^ * · ‘ ’ 等

 

摩尔斯电码是一种早期的数码化通信形式, 它依靠一系列的 点和划 来传递编码信息 ,它的代码包括五种:

  1. 点( · ):1 (读 “滴” dit ,时间占据1t )
  2. 划(—):111 (读 “嗒” dah ,时间占据3t )
  3. 字符内部的停顿(在点和划之间):0 (时间占据1t )
  4. 字符间停顿:000 ( 时间占据3t )
  5. 单词间的停顿:0000000 ( 时间占据7t )

点的长度(也就是上面的时间长度t)决定了发报的速度

举个例子

我们现在要发送 “M O R S E(空格) C O D E” (morse code)这单词,通过查表可知,它应该是这样 —— ——— ·—· ··· · / —·—· ——— —·· ·

以上题看出是哪种加密后,都可以用一些在线解密工具解密,或直接扔进随波逐流的一键解密里面

posted @ 2023-01-01 15:25  zdytom  阅读(230)  评论(0)    收藏  举报