js程式碼漏洞
low級別
檢視原始碼,注意是index的原始碼不是low原始碼!low原始碼這麼亂誰看得懂啊
str_rot13() 函式對字串執行 ROT13 編碼。
ROT13 編碼把每一個字母在字母表中向前移動 13 個字母。數字和非字母字元保持不變。
可以看到只要token等於md5加密success全體移動13個字母后的字母,就能透過。
首先檢視字母表,將success每個字母往前移13個字母,自己可以數
我找了個指令碼
str = ‘success’
changed_str = ‘’
lis = list(range(65,91))+list(range(97,123)) #[a-z,A-Z]的列表
for s in str:
str_asc = ord(s)
str_changed_asc = str_asc + 13
if str_changed_asc not in lis:
str_changed_asc -= 26
str_changed = chr(str_changed_asc)
changed_str += str_changed
else:
str_changed = chr(str_changed_asc)
changed_str += str_changed
print(changed_str)
執行結果fhpprff
使用線上md工具進行加密,得到結果38581812b435834ebf84ebcc2c6424d6
使用bp修改token的值
成功
medium級別
strrev()反轉字串,將success反轉輸入到token中即可
high級別
將“XX” 。 strrev(“success”)) 進行sha256hash
將ZZ加到hash值後面再進行一次hash
拿著最終結果填入token
impossible級別