ctf题库--这是什么鬼东西

<题目>
what a fuck!这是什么鬼东西?
解题链接: http://ctf5.shiyanbar.com/DUTCTF/1.html
<过程>

  1. 打开链接,弹出的是一堆符号,没有任何提示信息,看起来似乎毫无头绪。
    在这里插入图片描述
  2. 这些看起来像是乱码的东西仔细看似乎又像是一种复杂的算术运算亦或是逻辑运算。那么说这一堆“公式”一定会有一个值的。
  3. 复制了其中一段文字到搜索引擎,搜到的信息不多,但偶然看到了可能是一种js代码,于是决定测试一下。
  4. f12启动chrome开发者窗口,将代码复制到控制台运行一下,出乎意料的竟然弹出了一句话。
    在这里插入图片描述
  5. 将文字复制到答题框里,通过了题目。

ps:虽然成功解决了问题但还是存有一些疑问,例如这些“纯标点符号”是怎么算出这个值的?为什么这些标点符号可以执行?之类的。

于是抱着这个疑问又深入地搜索了更多信息,最后终于知道了其中的原理。

这种“奇葩”的写法在网络上被称作JSFuck,这时才意识到原来题目的那句英文不只是单纯的发泄,还是一个重要的提示呀。不过若对此方面没有了解确实根本想不到,甚至许多曾使用过js编程的朋友都不曾听说过这种事情。

JSFuck的原理是利用了逻辑运算、算术运算以及js灵活而强大的类型转换;例如’true’可以表示为[!![]]+[],是因为[!![]]将其变为bool型true,又+[]将bool型true转换为了字符串‘true’。

个人感觉JS在编码方面真的是搞出了新花样,对这种写法感觉很新奇也非常地感兴趣。具体可以去www.jsfuck.com做更加深入的了解。

猜你喜欢

转载自blog.csdn.net/miko2018/article/details/84666525