DVWA之JavaScript

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

DVWA之JavaScript

使用線上md工具進行加密,得到結果38581812b435834ebf84ebcc2c6424d6

DVWA之JavaScript

使用bp修改token的值

DVWA之JavaScript

成功

DVWA之JavaScript

medium級別

DVWA之JavaScript

strrev()反轉字串,將success反轉輸入到token中即可

DVWA之JavaScript

DVWA之JavaScript

high級別

DVWA之JavaScript

將“XX” 。 strrev(“success”)) 進行sha256hash

DVWA之JavaScript

將ZZ加到hash值後面再進行一次hash

DVWA之JavaScript

拿著最終結果填入token

DVWA之JavaScript

DVWA之JavaScript

impossible級別

DVWA之JavaScript