0

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

    2023.07.31 | admin | 193次围观

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

    ——突破网页本地脚本验证方法实例

    最近为了帮朋友批量查询信息,查询页面上要求输入验证码,查询结果要保存到文件。首先想到的是验证码自动识别,太复杂了。总算让我找到一个非常好的软件——《网页自动操作通用工具》,不但可以通过注入跳过验证码,还能自动批量查询并保存查询结果。现将整个过程写下来分享一下。

    基本理论:网页通过浏览器执行js脚本代码,实现对用户输入信息的合法性验证,这里指的是验证码验证。由于代码是在我们的本地浏览器中执行,所以我们完全有办法控制它。一般我们可以通过这种方法突破网页倒计时、提交非法字符、跳过验证码等。

    先来看一看这个网页界面图吧

    操作非常简单,输入企业全名和验证码,点击查询按钮,就能得到结果了。其中企业全名保存在文件文件中。

    这里请出我们的主角《网页自动操作通用工具》,下面给大家说一下每步操作。

    一、由于是填写网页操作,我们新建一个自动提交操作,并添加网址,如图

    二、我们设置让程序自动输入公司名称,打开提交内容选项卡,添加提交内容。

    打开自动获取功能,等待网页打开后使用什么软件可以注入网站,将鼠标移到公司全名输入框,点击右键菜单中的获取元素,程序自动分析获取方法,只需再次点击“添加元素”即可

    再看下图,第1小步的内容已经通过自动获取自动填写了,第2我们要自动填写,就是改变这个元素的value属性,第3选择从文本文件批量输入数据 。最后点击确定添加这个输入条目。

    三、分析提交代码,注入破解脚本代码,由于我们想办法跳过验证码,所以不再设置验证码输入。

    直接进入提交环节设置

    如下图,将鼠标移到“查询”按钮处,可以看到相关代码。

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

    我们再去查找"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()”来提交,跳过了就不必输入验证码。

    五、设置保存查询结果到文件,让程序每次提交后,无条件报警,报警时保存指定元素就行了。这里简单截图说明

    下图为设置报警后,需要保存的网页元素

    下图设置要保存的文件格式和路径

    六、最后我们再来看一下,软件开始执行后使用什么软件可以注入网站,网页显示内容。程序只自动输入企业全名,未输入验证码,未点击查询按钮,通过执行注入脚本得到了查询结果。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论