今天在看web類型的ctf練習題講解時,遇到了一個alert()方法,題目是這樣的
隨便輸入一串數字,提示密碼錯誤,查看源文件,發現一段奇怪的代碼,如下
輸入key值是a的時候,返回true,否則提示密碼錯誤。那我們就需要找到a的值,視頻中老師將代碼粘貼到控制檯中,寫成這樣:
var a,b,c,d,e,f,g;
a = 3.14;
b = a * 2;
c = a + b;
d = c / b + a;
e = c - d * b + a;
f = e + d / c - b * a;
a = g * g;
a = Math.floor(a);
alter(a);
於是頁面返回一個對話框:
這就返回了a的值,也就是a=424178;輸入a值,就獲得了key值。
那麼,這個題中,出現了一個math.floor(),這個函數,我之前沒有見到過,於是去百度搜索,math.floor()函數意思很簡單,就是求最接近這個數的整數,也就是math.floor(a)就是求最接近a的一個整數,a一般是一個浮點數。
那alert(a)呢?又是啥意思?
繼續百度,alert(a)貌似全稱是HTML DOM alert方法;
怪不得,視頻中老師alert(a)後直接在網頁上彈出了提示框,返回了a值。