2 3 4 5 6 7 8 9 10 11 12

simple_js xctf 攻防世界 web新手练习区

题目描述

点击进入题目场景后,看见一个可以输入的网页,由题目描述可以知道,不管输入什么密码都是错误的,都会返回

可以看见提示,faux password(假密码),所以这时查看一下网页源代码,此时发现在调试器那里有一个Js源码,根据题目提示,简单的Js,说明了这题主要是考查我们对JS代码的审计能力。

  • split() 方法用于把一个字符串分割成字符串数组。
  • fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
  • prompt()方法用于显示可提示用户进行输入的对话框。

这一部分代码分为两个循环,但是仔细观察的话,第一个循环是将前五个Unicode 值,然后返回一个字符串,写一个简单的python脚本验证下

a=[70,65,85,88,32]
for i in a:
    print(chr(i),end='')
# end=''(需要在Python3的版本上才有用,我也不太确定,反正我用Python2.7的格式一直报错,用Python3的就可以)

前一个for循环(前五个Unicode 值)

后一个for循环(把后面的Unicode 值,返回成字符串)

即不管我们输入什么,最终显示都是这个,所以这个是假的密码,那么真正的密码应该就是底下 String["fromCharCode"] (dechiffre(……))中的值,将其拿去转化

转换为字符串后,再拿去通过ascii将其解码得到字符串,其字符串就是flag

posted @ 2021-11-16 17:22  MrDevil  阅读(208)  评论(0)    收藏  举报