前端登录
- 打开网站,发现有一个flag输入框,此时查看网页源代码什么都没有
- 先随便输点东西试一试,发现有”长度错误回显”,
点击确定后查看网页源代码.发现输入框的长度应该为38位,并对下面的一串代码进行审计, 这段代码是一个JavaScript函数,函数名为check,它接受一个参数flag。函数首先判断flag的长度是否为38,如果不是,则弹出一个提示框显示"长度错误!"。如果flag的长度为38,则会执行else语句中的代码。
在else语句中,函数定义了一个数组array,包含了38个数字。然后使用一个for循环遍历flag的每一个字符,将字符转换成ASCII码值,并与88进行异或运算,然后与array数组中对应位置的数字进行比较。如果不相等,则弹出一个提示框显示"Failed!",并结束函数的执行。如果所有的字符都符合条件,则弹出一个提示框显示"Success!"。
所以可知,需要进行异或处理
- 打开异或文件,进行异或处理
- 将PHP代码数组带入变量aaa可得flag