宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 7036|回复: 2

[页游辅助图文教程] 易语言+HttpWatch分析并编写Discuz! X1.51论坛管理器第三课

[复制链接]
  • TA的每日心情
    奋斗
    2020-6-5 22:18
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    潇潇 发表于 2012-3-7 17:35:45 | 显示全部楼层 |阅读模式
    我们在易语言+HttpWatch分析并编写Discuz! X1.51论坛管理器第二课中提到下面一段易语言代码:
    1. referer + RequestLine2 + “&referer=” + referer + “forum.php&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login”)
    复制代码
    现在我们先着重看下这段代码为何要这样编写,还是先看下HttpWatch中的数据:
    1、第二条数据中的协议头Headers:
    (Request-Line)        GET /1.51/member.php?mod=logging&action=login&auth=55dem%2BRgn7mTn3h10XIfc9Q9xRiV8s8qwbRn2rdfIS0Uj4NxoqZr1k82ZrQ&referer=http%3A%2F%2Fwgbcwsoft.web-108.com%2F1.51%2Fforum.php&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login HTTP/1.1
    ……
    Host        wgbcwsoft.web-108.com
    Referer http://wgbcwsoft.web-108.com/1.51/forum.php
    ……

    2、第二条数据的查询字串Query String:
    action        login
    ajaxtarget        fwin_content_login
    auth        55dem+Rgn7mTn3h10XIfc9Q9xRiV8s8qwbRn2rdfIS0Uj4NxoqZr1k82ZrQ
    handlekey        login
    inajax        1
    infloat        yes
    mod        logging
    referer        http://wgbcwsoft.web-108.com/1.51/forum.php
    3、第一条数据的返回数据concent:
    ……member.php?mod=logging&action=login&auth=55dem%2BRgn7mTn3h10XIfc9Q9xRiV8s8qwbRn2rdfIS0Uj4NxoqZr1k82ZrQ&referer=http%3A%2F%2Fwgbcwsoft.web-108.com%2F1.51%2Fforum.php……
    4、第二条GET数据的URL(这条数据我们在第二课中讲过出现验证码窗口的关键GET):
    http://wgbcwsoft.web-108.com/1.51/member.php?mod=logging&action=login&auth=55dem%2BRgn7mTn3h10XIfc9Q9xRiV8s8qwbRn2rdfIS0Uj4NxoqZr1k82ZrQ&referer=http%3A%2F%2Fwgbcwsoft.web-108.com%2F1.51%2Fforum.php&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login
    上面GET数据中的红色部分是第一条数据的返回,根据上面四点的数据我们可以把第4条数据内容修改成这样(红色部分):
    http://Host/1.51/member.php?mod=logging&action=login&auth=55dem%2BRgn7mTn3h10XIfc9Q9xRiV8s8qwbRn2rdfIS0Uj4NxoqZr1k82ZrQ&referer=referer&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login
    而RequestLine2是我们在易语言中定义的,为了更好理解,易语言代码做相应修改:
    1. "http://"+Host+"/1.5/"+RequestLine2+"&referer="+referer+"&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login"
    复制代码
    实际上上面这段URL全部是查询字串Query String里的内容。同理我们也要改下易语言中的代码如图所示:


    写到这里,您是否明白这段易语言代码怎么编写了吧,如果还没明白,那就回复一下,要求不高吧,呵呵。

    好了,现在我们要分析HttpWatch中的下面的数据,经看HttpWatch中的数据可知,第三条和第四条数据是图片的,可以忽略了。如图所示:

    谈谈第五条数据:
    http://wgbcwsoft.web-108.com/1.51/static/js/md5.js?SJ9

    这条数据很明显,URL中带有"md5.js",应该是账号密码校验用的,为何这样说呢,看后面的第六、七、八条数据的图片,也不难看出,如果第五条数据成功提交后会出现"none"及"right"的图片,分别是"没有"和"正确"的意思,说明应该校验账号和密码用的,因我们在第一课中截取的数据时,账号和密码都是正确的,所以第五条数据在本课就不提了,以后的课程里再祥细说明。

    先休息会儿,稍后接着讲第九条数据,呵呵这条数据是本课的重点内容了……
    下面我们把第九条数据祥细内容复制出来:
    1、第九条数据的链接URL:
    http://wgbcwsoft.web-108.com/1.51/misc.php?mod=seccode&action=update&idhash=SD49e&inajax=1&ajaxtarget=seccode_SD49e

    2、第九条数据的协议头Headers
    (Request-Line)        GET /1.51/misc.php?mod=seccode&action=update&idhash=SD49e&inajax=1&ajaxtarget=seccode_SD49e HTTP/1.1
    ……
    Host        wgbcwsoft.web-108.com
    Referer        http://wgbcwsoft.web-108.com/1.51/forum.php
    ……

    3、第九条数据的查询字串Query String:
    action        update
    ajaxtarget        seccode_SD49e
    idhash        SD49e
    inajax        1
    mod        seccode

    4、第九条数据的返回数据concent:
    <?xml version="1.0" encoding="gbk"?>
    <root><![CDATA[输入下面动画图片中最大的字符<br /><img onclick="updateseccode('SD49e')" width="150" height="60" src="misc.php?mod=seccode&update=09245&idhash=SD49e" class="vm" alt="" />]]></root>

    从前面所讲的知识不难发现,每一次的通信的关键点就是链接URL,所以我们参考第九条数据的前三条数据很容易发现,本次通信的方法为GET,而所查询的关键字串就是"seccode_SD49e"、"SD49e"和"seccode",那么这些字串是从哪里来的呢?
    我们前面讲过分析所用到的字串,一定是前面的通信的返回数据,而根据前面所讲知识关键就在第二条或第五条通信的返回数据里,经分析最近的一条关键数据的返回内容是MD5的加密算法,一般都是和账号密码有关,另因返回数据中并没有前面所提到的关键字串,所以现在只有分析第二条数据的返回了。经查看关键字串包括在以下网页代码里:
    <input name="sechash" type="hidden" value="SD49e" />

    <div class="rfm"><table><tr><th>验证码: </th><td><input name="seccodeverify" id="seccodeverify_SD49e" type="text" autocomplete="off" style="width:100px" class="txt px vm" onblur="checksec('code', 'SD49e')" tabindex="1" />
    <a href="javascript:;" onclick="updateseccode('SD49e');doane(event);" class="xi2">换一个</a>
    <span id="checkseccodeverify_SD49e"><img src="static/image/common/none.gif" width="16" height="16" class="vm" /></span>
    <br /><span id="seccode_SD49e"></span>
    <script type="text/javascript" reload="1">updateseccode('SD49e');</script>
    </td></tr></table></div>

    参考第九条数据的链接URL及查询字串Query String,在查询字串里出现"seccode_SD49e"、"SD49e"和"seccode",另外两个字串经测试,值没变可认为是常量,那么我们只需编写代码把查询字串"seccode_SD49e"取出来,然后再分割成"SD49e"和"seccode"就行了,好了现在有了思路,那我们就可以编写代码了,写代码中……

    在代码测试中发现上面第一个图片里的第二个红色的框内命令"HTTP读文件"之后应该是
    “http://” + Host + “/1.51/” + RequestLine2

    另外在写代码过程中发现字串"seccode_SD49e"里"_"后面的5个字符每次都在变化,所以我们在编写代码时只用取""seccode_"的位置再取整字串就行了,写代码时一定要注意这点。实现代码如下:
    1. .版本 2
    2. .支持库 internet

    3.         ' 第三课代码开始

    4.         .如果 (到文本 (返回的数据) ≠ “”)
    5.             seccode_位置 = 寻找文本 (到文本 (返回的数据), “seccode_”, , 假)
    6.             seccode_后五个字符文本 = 取文本中间 (到文本 (返回的数据), seccode_位置, 取文本长度 (“seccode_”) + 5)
    7.             调试窗口.编辑框1.加入文本 (“seccode_文本=========” + seccode_后五个字符文本 + #换行符)
    8.             ' http://wgbcwsoft.web-108.com/1.51/misc.php?mod=seccode&action=update&idhash=SD49e&inajax=1&ajaxtarget=seccode_SD49e
    9.             seccode文本 = 取文本左边 (seccode_后五个字符文本, 7)
    10.             后五个字符文本 = 取文本右边 (seccode_后五个字符文本, 5)
    11.             调试窗口.编辑框1.加入文本 (“拆分seccode_后五个字符文本” + seccode文本 + “=========” + 后五个字符文本 + #换行符)
    12.             返回的数据 = HTTP读文件 (“http://” + Host + “/1.51/misc.php?mod=” + seccode文本 + “&action=update&idhash=” + 后五个字符文本 + “&inajax=1&ajaxtarget=” + seccode_后五个字符文本)
    13.             调试窗口.编辑框1.加入文本 (“第九条数据返回==============” + 到文本 (返回的数据) + #换行符)
    14.         .否则
    复制代码
    经测试我这里第九条数据的返回数据为
    1. <?xml version="1.0" encoding="gbk"?>
    2. <root><![CDATA[输入下面动画图片中最大的字符<br /><img onclick="updateseccode('Sj2j8')" width="150" height="60" src="misc.php?mod=seccode&update=64288&idhash=Sj2j8" class="vm" alt="" />]]></root>
    复制代码
    而前面所讲述的第九条数据返回对比后发现除了update和idhash的值不一样外其它都相同,说明个很简单的操作,就是当我们刷新不同的验证码时使两个值随着变化。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    x

    该用户从未签到

    漏网之鱼 发表于 2012-3-9 00:45:24 | 显示全部楼层
    谢谢分享呀 辛苦辛苦

    该用户从未签到

    南水无鱼 发表于 2012-5-5 02:37:53 | 显示全部楼层
    仿照着写了一个,呵呵 希望都把源码放上,下载需要积分就行啦
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-5-7 21:30 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表