预备知识补充(不想看的话直接看下面解题步骤):
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() 方法
4.
Html对于Puny Code的编码方式如下,以"繁"字举例,
繁 —> 繁
主要格式是 "&#" + 一个十进制数 + ";",而这个十进制数正是汉字"繁"的中文内码。"32321"转换为十六进制是"7E41",通过查Unicode表可知,"7E41"正对应着汉字"繁"
解题步骤:
1.base64 to text
结果是一堆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进制,结果没有分割符了,不知道下面该怎么办
照大家的方法unescape
unescape()可转"\141""\x61""\u9ED1"三类型
3.明显的十六进制hex to text
4.unescape
unescape()可转"\141""\x61""\u9ED1"三类型
5.dec to text
看起来是127以内十进制ascii
String.fromCharCode是js中的函数,括号中是参数
复制输出到输入,只保留参数部分
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」开头的后接十六进制数字。
7.decode html
8.unescape
获得flag