带参数执行js

检索关键字:注入js,传入参数执行js,带参数注入js,javascript


带参数执行js示例,UB源代码如下:


Dim sRet = ""
Dim iRet = ""
Dim hWeb = ""

Dim userName,pwd
userName = "admin"
pwd = '1234'

Dim jsCode = ''
jsCode = 'function (){function fun(userName,pwd){ document.querySelector("#normal_form_userName").value=userName;document.querySelector("#normal_form_password").value=pwd;} fun("'&userName&'","'&pwd&'")  ;return true;}'

hWeb = WebBrowser.Create("chrome","about:blank",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"sBrowserPath":"","sStartArgs":""})
iRet = WebBrowser.GoURL(hWeb,"https://d-commander.uibot.com.cn/",True,"",30000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
sRet = WebBrowser.RunJS(hWeb,jsCode,True,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
TracePrint(sRet)

以上代码在Commander演示版地址中,通过“执行JS”命令,实现填写用户名和密码,并且是以传入参数的形式,一种内嵌带参数函数的方式来实现的。

当双击“执行JS”命令时,可看到如下结构的UB源代码:

sRet = WebBrowser.RunJS(hWeb,'''
function(){
return 123
}''',True,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})

需要遵守保持最外层的function结构不变的规则。

最后更新于 28th Dec 2020