zoukankan      html  css  js  c++  java
  • BBS的登陆——发帖——回帖

    整体分析思路

     

    1、首先手工熟悉一遍业务流程

     

    2、录制脚本,选取协议,设置录制选项

      1)Run-Time-Settings——Preferences——Options设置3个超时

          

         2)Recording Options——Recording设置,选择HTML,web_url,web_submit_data

    3、录制完成以后,优化一下脚本

         1)将脚本里的函数都捋一遍,即函数对应的业务是什么,去掉无关的业务,保证脚本的简洁

         2)做的事非整站的性能,可将EXTRARES里的脚本都删除掉

    4、分析脚本

         1)登陆

             可将用户名参数化

         2)发帖

             a、将脚本回放,报错

             

         b、发帖时会产生一个动态变化值,formhash

         c、去网页源码里寻找formhash,在hidden域里找到formhash

    <input type="hidden" name="mod" id="scbar_mod" value="search" />
    <input type="hidden" name="formhash" value="b450c09e" />
    <input type="hidden" name="srchtype" value="title" />
    <input type="hidden" name="srhfid" value="2" id="dzsearchforumid" />
    <input type="hidden" name="srhlocality" value="forum::post" />
    <table cellspacing="0" cellpadding="0">

        d、将formhash做关联,因为关联函数是预注册函数,需放在默认版块之前

    //发帖、回帖均需要关联formhash值
        //<input type="hidden" name="formhash" value="b450c09e" />
        web_reg_save_param("formhash",
                           "LB=name="formhash" value="",
                           "RB=" />",
                           LAST);   

       3)回帖

      a、回帖时,tid是动态变化的值,需要做关联,(是对刚才新建的帖子进行回复,如不关联,如tid=4557,就会对编号是4557的帖子不断的回复)

    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>发帖发帖 - 默认版块 -  Discuz! Board -  Powered by Discuz!</title>
    <link href="http://192.168.1.188/bbs/forum.php?mod=viewthread&tid=4587" rel="canonical" />
    <meta name="keywords" content="发帖发帖" />
    <meta name="description" content=" 发帖发帖 ,Discuz! Board" />

      b、将tid做关联,关联函数是预注册的,需要发在发帖之前

        //<link href="http://{ip}/bbs/forum.php?mod=viewthread&tid=4587" rel="canonical" />
        //在对应的帖子下进行回复,需关联tid
        web_reg_save_param("tidnum",
                           "LB=forum.php?mod=viewthread&tid=",
                           "RB=" rel="",
                           LAST);

     

    4、登陆——发帖——回帖(完整版)

    Action()
    {
        //保存值函数
        lr_save_string("192.168.1.188","ip");
    
        //首页
        web_url("forum.php", 
            "URL=http://{ip}/bbs/forum.php", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t24.inf", 
            "Mode=HTML", 
            LAST);
    
        //登陆
        web_submit_data("member.php", 
            "Action=http://{ip}/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/xml", 
            "Referer=http://{ip}/bbs/forum.php", 
            "Snapshot=t25.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=fastloginfield", "Value=username", ENDITEM, 
            "Name=username", "Value={uname}", ENDITEM, 
            "Name=password", "Value=123123", ENDITEM, 
            "Name=quickforward", "Value=yes", ENDITEM, 
            "Name=handlekey", "Value=ls", ENDITEM, 
            LAST);
    
    //<input type="hidden" name="formhash" value="b450c09e" />
    //给发帖做关联
    web_reg_save_param("formhash",
                       "LB=type="hidden" name="formhash" value="",
                       "RB=" />",
                       LAST);
    
        //进入默认版块
        web_url("默认版块", 
            "URL=http://{ip}/bbs/forum.php?mod=forumdisplay&fid=2", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=http://{ip}/bbs/forum.php", 
            "Snapshot=t27.inf", 
            "Mode=HTML", 
            LAST);
    
    
    //给回帖做关联
    //http://192.168.1.188/bbs/forum.php?mod=viewthread&tid=4580" rel="canonical" />
    web_reg_save_param("tidno",
                       "LB=forum.php?mod=viewthread&tid=",
                       "RB=" rel=",
                       LAST);
        
        
    //发帖
        web_submit_data("forum.php_4", 
            "Action=http://{ip}/bbs/forum.php?mod=post&action=newthread&fid=2&extra=&topicsubmit=yes", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/html", 
            "Referer=http://{ip}/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//{ip}/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", 
            "Snapshot=t29.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=formhash", "Value={formhash}", ENDITEM, //formhash是动态值
            "Name=posttime", "Value=1439821219", ENDITEM, 
            "Name=wysiwyg", "Value=1", ENDITEM, 
            "Name=subject", "Value=艰苦学习", ENDITEM, 
            "Name=message", "Value=成效卓越,加油", ENDITEM, 
            "Name=replycredit_extcredits", "Value=0", ENDITEM, 
            "Name=replycredit_times", "Value=1", ENDITEM, 
            "Name=replycredit_membertimes", "Value=1", ENDITEM, 
            "Name=replycredit_random", "Value=100", ENDITEM, 
            "Name=readperm", "Value=", ENDITEM, 
            "Name=price", "Value=", ENDITEM, 
            "Name=tags", "Value=", ENDITEM, 
            "Name=rushreplyfrom", "Value=", ENDITEM, 
            "Name=rushreplyto", "Value=", ENDITEM, 
            "Name=rewardfloor", "Value=", ENDITEM, 
            "Name=stopfloor", "Value=", ENDITEM, 
            "Name=save", "Value=", ENDITEM, 
            "Name=usesig", "Value=1", ENDITEM, 
            "Name=allownoticeauthor", "Value=1", ENDITEM, 
            LAST);
    
    
    //回帖
        web_submit_data("forum.php_5", 
            "Action=http://{ip}/bbs/forum.php?mod=post&action=reply&fid=2&tid={tidno}&extra=&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/xml", 
            "Referer=http://{ip}/bbs/forum.php?mod=viewthread&tid={tidnum}&extra=", 
            "Snapshot=t30.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=message", "Value=过来顶贴了", ENDITEM, 
            "Name=posttime", "Value=1439821241", ENDITEM, 
            "Name=formhash", "Value={formhash}", ENDITEM, 
            "Name=subject", "Value=", ENDITEM, 
            LAST);
    
        return 0;
    }
  • 相关阅读:
    VSCode
    git CAPTCHA required
    css :active
    节流 防抖
    判断数据类型
    http协议的三次握手和四次挥手
    http协议
    发布网站相关信息
    获取任意两个数之间多个随机数的方法;
    数组中的12个方法;
  • 原文地址:https://www.cnblogs.com/fun0623/p/4739564.html
Copyright © 2011-2022 走看看