网页脚本注入执行任意代码

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


目录
相关文章
JSP学习(一):声明脚本、表达式脚本和代码脚本
虽然现在JSP用得不多了 ,但是很多学习JSP也就需要几天时间,而且很多项目仍然使用JSP,因此我也花几天时间学习一下JSP,要求自己能看懂代码就行。
136 0
|
SQL Shell 数据库
如何让脚本在任意地方可执行
如何让脚本在任意地方可执行
149 0
如何让脚本在任意地方可执行
|
IDE 测试技术 开发工具
一个方法帮你在正式脚本里添加“子脚本”的运行
一个方法帮你在正式脚本里添加“子脚本”的运行
231 0
|
Shell PHP
运行php代码的几种方式
运行php代码的几种方式
272 0
|
Ubuntu Linux Shell
如何让你的脚本可以在任意地方都可执行?
如何让你的脚本可以在任意地方都可执行?
471 0
如何让你的脚本可以在任意地方都可执行?
|
安全 Shell Linux
命令注入绕过方式总结
前言 命令注入是web中常见的漏洞之一,由于web应用程序未对用户提交的数据做严格的过滤,导致用户输入可以直接被linux或windows系统当成命令执行,一般都会造成严重的危害。
632 0
|
Web App开发 Java 开发者
初识 JSP---(注释/小脚本/声明/指令/动作/内置对象)
注释 java : // /* */ /** */ html : jsp jsp注释和html注释的区别 jsp注释对jsp引擎有作用,当jsp引擎看到这个注释后,生产servlet文件是会忽略他 html...
1775 0
|
Web App开发 编解码 前端开发