Yuan. 发表于 2021-11-2 22:56:04

求助输入框输入问题

新手刚刚入门,可以问一下直接修改输入框的value无法提交应该怎么处理。。。直接修改value和网上那些模拟输入都不会提示此题是必答题应该。。。恒道大佬说找事件监听但是我不会,有大佬教吗{:4_88:}能不能直接真实模拟键盘输入呢

李恒道 发表于 2021-11-2 22:56:05

脚本体验师001 发表于 2021-11-3 19:54
实际上咱们这种悬赏方式应该结帖率不高
各种各样的网页,需要对应的各种策略
如果能重现这个网页,比如Base ...
李恒道的蛋蛋没了
我试了下
是document全局的addeventlistener
注入点很难找
最后我搞了个脏hook对call函数进行劫持了
这是代码
Function.prototype.oldcall=Function.prototype.call
function fuckcall(...args){
    let target=this
    if(args.length===2){
      if(args.className==='UEditoTextarea___27hB8'){
            let ret=target.oldcall(...args)
            setTimeout(()=>{
                if(ret.handleChange!==undefined){
                  window.ttt=ret
                  window.ttt.handleChange({target:{value:'666'}})
                  Function.prototype.call=Function.prototype.oldcall
                }
            })
            
                return ret;
      }
    }
    let ret=target.oldcall(...args)
    return ret;


}
Function.prototype.call=fuckcall

lty123 发表于 2021-11-2 23:07:25

他是不是事件监听监听到键盘的按下抬起之类的,才能按提交,我也蹲个答案

Hangover 发表于 2021-11-3 00:06:18

是不是有字数限制?

cxxjackie 发表于 2021-11-3 00:09:56

触发一下事件即可,具体是哪个事件不一定,不会分析的话下面的代码逐行试一下(假设目标input元素为ele):
ele.dispatchEvent(new Event('input'));
ele.dispatchEvent(new Event('change'));
ele.dispatchEvent(new Event('propertychange'));

李恒道 发表于 2021-11-3 09:17:29

楼上是正解的,new一个event然后dispatchEvent
看他监听了哪个事件,触发出来就好了

Yuan. 发表于 2021-11-3 18:24:23

cxxjackie 发表于 2021-11-3 00:09
触发一下事件即可,具体是哪个事件不一定,不会分析的话下面的代码逐行试一下(假设目标input元素为ele): ...

一行行试了还是不行,{:4_115:}

Yuan. 发表于 2021-11-3 18:24:53

Hangover 发表于 2021-11-3 00:06
是不是有字数限制?

没。输入空格都行,

cxxjackie 发表于 2021-11-3 19:41:24

Yuan. 发表于 2021-11-3 18:24
一行行试了还是不行,

顺序没弄错吧,先修改value,后触发事件,然后提交,还有ele要改成对应的input元素(注意一定要是input)。

脚本体验师001 发表于 2021-11-3 19:54:56

实际上咱们这种悬赏方式应该结帖率不高
各种各样的网页,需要对应的各种策略
如果能重现这个网页,比如Base64放个网址出来(当然尽量想办法)
像 cxxjackie 大神级别我用李恒道的蛋蛋发誓 在三秒钟以内给你最正确答案
这扯得,都盲猜给你答案,想戳准很难
页: [1] 2 3
查看完整版本: 求助输入框输入问题