Fork me on GitHub

Bugku-CTF之web3-flag就在这里快来找找吧

 

 Day6

 

 

web3

30

flag就在这里快来找找吧
http://123.206.87.240:8002/web3/

 

本题要点:NCR 转义序列(Unicode)
 
在Windows中经常需要用到多字符与宽字符的转换方法,多字符(MultiChar)也就是ANSI编码的方式,而宽字符(WideChar)也就是Unicode编码的方式。
ANSI是默认的编码方式。对于英文文件是ASCII编码,对于简体中文文件是GB2312编码(只针对Windows简体中文版,如果是繁体中文版会采用Big5码)。
 
如果是为了跨平台兼容性,只需要知道,在 Windows 记事本的语境中:
  • 所谓的「ANSI」指的是对应当前系统 locale 的遗留(legacy)编码。
  • 所谓的「Unicode」指的是带有 BOM 的小端序 UTF-16。
  • 所谓的「UTF-8」指的是带 BOM 的 UTF-8。
GBK 等遗留编码最麻烦,所以除非你知道自己在干什么否则不要再用了。
UTF-16 理论上其实很好,字节序也标明了,但 UTF-16 毕竟不常用。
UTF-8 本来是兼容性最好的编码但 Windows 偏要加 BOM 于是经常出问题。
 
所以,跨平台兼容性最好的其实就是不用记事本。
建议用 Notepad++ 等正常的专业文本编辑器保存为不带 BOM 的 UTF-8。
 
另外,如果文本中所有字符都在 ASCII 范围内,那么其实,记事本保存的所谓的「ANSI」文件,和 ASCII 或无 BOM 的 UTF-8 是一样的。
 
 
更多关于字符编码问题 详细请看文末的参考资料
 
 
下面我们切入正题!
 
一直点确定,发现一直重复这两个页面...........emmmmm.........不过还是一直点完了...
右键查看源码
 
发现了一串奇怪的字符
 
KEY{J2sa42ahJK-HS11III}为NCR 转义序列(Unicode)
 
 
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
 
 
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。
 
 
 
得到  KEY{J2sa42ahJK-HS11III}
 
完成!
 
 
 
 
 
 
参考资料:

 

posted @ 2019-04-19 20:51  0yst3r  阅读(4278)  评论(24编辑  收藏  举报
返回顶部