网页脚本注入执行任意代码——突破网页本地脚本验证方法实例最近为了帮朋友批量查询信息,查询页面上要求输入验证码,查询结果要保存到文件。首先想到的是验证码自动识别,太复杂了。总算让我找到一个非常好的软件——《网页自动操作通用工具》,不但可以通过注入跳过验证码,还能自动批量查询并保存查询结果。现将整个过程写下来分享一下。基本理论:网页通过浏览器执行js脚本代码,实现对用户输入信息的合法性验证,这里指的是验证码验证。由于代码是在我们的本地浏览器中执行,所以我们完全有办法控制它。一般我们可以通过这种方法突破网页倒计时、提交非法字符、跳过验证码等。先来看一看这个网页界面图吧操作非常简单,输入企业全名和验证码,点击查询按钮,就能得到结果了。其中企业全名保存在文件文件中。这里请出我们的主角《网页自动操作通用工具》,下面给大家说一下每步操作。一、由于是填写网页操作,我们新建一个自动提交操作,并添加网址,如图二、我们设置让程序自动输入公司名称,打开提交内容选项卡,添加提交内容。打开自动获取功能,等待网页打开后,将鼠标移到公司全名输入框,点击右键菜单中的获取元素,程序自动分析获取方法,只需再次点击“添加元素”即可再看下图,第1小步的内容已经通过自动获取自动填写了,第2我们要自动填写,就是改变这个元素的value属性,第3选择从文本文件批量输入数据。最后点击确定添加这个输入条目。三、分析提交代码,注入破解脚本代码,由于我们想办法跳过验证码,所以不再设置验证码输入。直接进入提交环节设置如下图,将鼠标移到“查询”按钮处,可以看到相关代码。IMGonclick=doQuery('1')style=CURSOR:pointerborder=0src=images/chaxun.jpg我们再去查找doQuery('1')这个提交方法我们得到了关键的代码段varreply=function(data){if(data=='error'){document.getElementById(show).style.display=none;alert(验证码有误,请输入正确的验证码!);refreshimg();returnfalse;}else{form1.action=ggtz.do?method=getqyjbxxdetail;form1.submit();}这里就是判断验证码的。只需要将这段代码改为form1.action=ggtz.do?method=getqyjbxxdetail;form1.submit();这样我们就不对验证码进行验证,直接提交表单。为简单起见,我们不修改”doQuery(ec_p),而是增加一个方法函数”sub()”functionsub(){form1.action=ggtz.do?method=getqyjbxxdetail;form1.submit();}在《网页自动操作通用工具》程序中,注入“sub()”的方法如下,这里我们选择“打开网页后填写表单前”注入这个函数。四、设置提交方法,这里我们直接执行“sub()”来提交,跳过了就不必输入验证码。五、设置保存查询结果到文件,让程序每次提交后,无条件报警,报警时保存指定元素就行了。这里简单截图说明下图为设置报警后,需要保存的网页元素下图设置要保存的文件格式和路径六、最后我们再来看一下,软件开始执行后,网页显示内容。程序只自动输入企业全名,未输入验证码,未点击查询按钮,通过执行注入脚本得到了查询结果。