预备知识补充(不想看的话直接看下面解题步骤):

1.

escape采用ISO Latin字符集对指定的字符串进行编码。

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

使用escape、unescape

<script>

var str="Need tips? Visit RUNOOB!";

var str_esc=escape(str);

document.write(str_esc + "<br>")

document.write(unescape(str_esc))

</script>

会出现:

Need%20tips%3F%20Visit%20RUNOOB%21

Need tips? Visit RUNOOB!

下面的补充一个解释,东西在:https://www.yuque.com/xiaomo-r8dpk/skbi22/kr0fre?language=zh-cn


一,简单加密解密

escape()和unescape()

二:转义字符"\"的妙用

     "\"后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"\141"或"\x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"\u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:

1,八进制转义字符串如下

<script LANGUAGE="JavaScript"> 

eval("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73") 

</script>

2,十六进制转义字符串如下:

<SCRIPT LANGUAGE="JavaScript"> 

eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B") 

</SCRIPT>

这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:

<SCRIPT LANGUAGE="JavaScript"> 

alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B") 

</SCRIPT>

 

意思是unescape()可转"\141""\x61""\u9ED1"

 

2.

一般x数字  x数字 表示16进制

 

3.

JavaScript fromCharCode() 方法

 

 BugKuCTF 一段base64 各步骤详解 适合初学者

4.

Html对于Puny Code的编码方式如下,以"繁"字举例,

繁  —> &#32321;

 主要格式是 "&#" + 一个十进制数 + ";",而这个十进制数正是汉字"繁"的中文内码。"32321"转换为十六进制是"7E41",通过查Unicode表可知,"7E41"正对应着汉字"繁"

 

 


解题步骤:

1.base64 to text

 

BugKuCTF 一段base64 各步骤详解 适合初学者

结果是一堆8进制ascii码,

隔几个就有一对\134\170就是\x

结合第二部图片可以看出来

八进制

ascii

\134

\

\170

x

\65

5

\143

c

八进制

ascii

\134

\

\170

x

\67

7

\65

5

2.unescape

若8转10进制,结果没有分割符了,不知道下面该怎么办

BugKuCTF 一段base64 各步骤详解 适合初学者

 

照大家的方法unescape

unescape()可转"\141""\x61""\u9ED1"三类型

 

 BugKuCTF 一段base64 各步骤详解 适合初学者

3.明显的十六进制hex to text

 

 BugKuCTF 一段base64 各步骤详解 适合初学者

4.unescape

unescape()可转"\141""\x61""\u9ED1"三类型

BugKuCTF 一段base64 各步骤详解 适合初学者

 

5.dec to text

看起来是127以内十进制ascii

String.fromCharCode是js中的函数,括号中是参数

复制输出到输入,只保留参数部分

BugKuCTF 一段base64 各步骤详解 适合初学者

 

6.decode html

在这部分:

形如

&name;

&#dddd;即&#数字

&#xhhhh;即&#x数字

的一串字符是 HTML、XML 等 SGML 类语言的转义序列(escape sequence)。它们不是「编码」。以 HTML 为例,这三种转义序列都称作 character reference:第一种是 character entity reference,后接预先定义的 entity(实体) 名称,而 entity 声明了自身指代的字符。

后两种是 numeric character reference(NCR),数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,以「&#x」开头的后接十六进制数字。

BugKuCTF 一段base64 各步骤详解 适合初学者

 

7.decode html

BugKuCTF 一段base64 各步骤详解 适合初学者

 

8.unescape

 

BugKuCTF 一段base64 各步骤详解 适合初学者

获得flag

相关文章:

  • 2021-09-07
  • 2022-12-23
  • 2021-12-08
  • 2021-10-26
  • 2022-12-23
  • 2021-04-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-07
  • 2021-11-30
  • 2022-12-23
  • 2021-09-20
  • 2021-07-09
  • 2022-01-15
  • 2022-12-23
相关资源
相似解决方案