2023年6月27日发(作者:)
腾讯防⽔墙的分析识别与破解前⾔ ⼜是⼀年马上结束,今年⼀年研究技术的时间都⾮常少,除了家庭原因,还有⾃⾝的原因。2018很不顺,理财各种雷,币圈与股市跌的惨不忍睹。⾃⾝还沾染了社会三⼤毒瘤之⼀的赌,⼀夜回到解放前。让我好多天精神恍惚,差点崩溃。好久才⾛出来,删掉各类app,打开vs,认真写点代码换钱。我有⼀颗想分享的⼼,但苦于⽂采不好,语⾔表达能⼒不⾏,更重要的患有严重懒癌,导致这篇⽂章写了很久都没结束。腾讯防⽔墙的介绍介绍:专注业务安全服务,⽤领先的⼈⼯智能技术解决业务欺诈、薅⽺⽑、刷单、爬⾍、撞库等问题,让您的企业零投⼊也能有微信/QQ级别的业务安全服务
其实就是类似极验的验证码,相对于以前的图形验证码,多了⾏为等⼀些识别。从图⽚上来说,就是要找到缺⼝的位置,我想对于专业做识别的来说,找这个缺⼝位置应该⽐以前腾讯的四位图形验证码更容易。难就难在⾥⾯乱七⼋糟的js加密。下⾯让我给⼤家⼀⼀讲述分析过程,加密过程。腾讯防⽔墙的分析 ⼀、http协议抓包 在防⽔墙官⽹看到有⼀些防⽔墙的⽤户,看到了⼿机⼚商oppo。应⽤防⽔墙的地⽅⽆⾮就是他的商城,论坛,云空间之类的。在商城上没发现,打开云空间登录页⾯,随便输⼊账号,错误次数过多了,果然出现了防⽔墙打开Fiddler,刷新下页⾯完成⼀组操作,发现主要请求有这⼏个 ⼆、数据包分析 去除加载的js与log上传,真正的⼀组操作有三个:1. cap_union_prehandle2. cap_union_new_show3. cap_union_new_verify开始详细分析这三个请求数据包的组成(我根据我的分析与理解进⾏讲述)1是初始化验证码。详细请求为GET /cap_union_prehandle?aid=1253408289&asig=Ad3GYD9Dn99U0xOPiOOhnEpB7citHdzqa98umEP2Whvl-OngFl18y4Q_bSgYFxtm6dWiT67ngBe1x7vbI9RPE-HSJh8phx2h&captyHost: nection: keep-aliveUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36Accept: */*Referer: /cept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9Cookie: qcmainCSRFToken=ByB1lOw1G4; intl=; qcloud_from=-03参数的详细介绍(猜想),仅仅介绍需要变动的参数,不介绍的固定就可以:aid:项⽬的ID,不同⽹站的aid不同asig:这个验证码请求的id,每次验证码不同。这个asig在前⾯⼏个http请求中,⽹站都会返回ua:浏览器的user-agent,进⾏了base64编码uid:登录账号,在有些⽹站可能这个需要其他参数固定就可以。返回内容为:_aq_517127({"state":"1","ticket":"","capclass":"2","subcapclass":"9","src_1":"cap_union_new_show","src_2":"template/new_","src_3":"template/new_slide_","sess":"mH-vlJ-CUtT4IjZhBaX都是验证码需要的⼀些参数,后⾯会⽤到
2是验证码的显⽰页⾯,主要以iframe形式显⽰验证码的html页⾯GET /cap_union_new_show?aid=1253408289&asig=Ad3GYD9Dn99U0xOPiOOhnEpB7citHdzqa98umEP2Whvl-OngFl18y4Q_bSgYFxtm6dWiT67ngBe1x7vbI9RPE-HSJh8phx2h&capHost: nection: keep-aliveUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8Referer: /cept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9Cookie: qcmainCSRFToken=ByB1lOw1G4; intl=; qcloud_from=-03aid:同上asig:同上ua:同上sess:第⼀步http请求返回的数据sid:第⼀步http请求返回的数据rnd:随机数,可以⽣产⼀个六位随机数,后⾯的请求还会要⽤到TCapIframeLoadTime:iframe加载的时间,随机⽣产就可以prehandleLoadTime:第⼀步请求的时间,随机⽣产就可以createIframeStart:创建iframe的时间,以当前时间转换成毫秒单位的时间戳就可以其他的同样固定就可以返回内容:太多了,不贴了,不过⾥⾯有⼀些重要的参数需要⽤到,下⾯提到的参数可以⾃⾏在你测试的http数据中查找返回的内容就是显⽰验证码与⼀些js算法验证码图⽚请求:验证码分为两个,⼀个是有缺⼝的图⽚,⼀个是缺⼝位置的图⽚。两个验证码请求基本⼀致,只是最后⾯的img_index不同,1为有缺⼝图⽚,2为缺⼝位置图⽚。(0为完整图⽚,⼀般⼈我不告诉他)验证码请求:/cap_union_new_getcapbysig?aid=1253408289&asig=Ad3GYD9Dn99U0xOPiOOhnEpB7citHdzqa98umEP2Whvl-OngFl18y4Q_bSgYFxtm6dWiT67ngBe1x7vbI9RPE-HSJh8phx2h&ca⾥⾯所有参数同上,唯⼀⼀个是vsig,在第⼆步的返回数据中,可⾃⾏查找。上⾯提到的随机⽣产的,下⾯所有请求请统⼀3提交验证码获取ticketPOST /cap_union_new_verify?random=62 HTTP/1.1Host: nection: keep-aliveContent-Length: 4134Accept: application/json, text/javascript, */*; q=0.01Origin: -Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Referer: /cap_union_new_show?aid=1253408289&asig=Ad3GYD9Dn99U0xOPiOOhnEpB7citHdzqa98umEP2Whvl-OngFl18y4Q_bSgYFxtm6dWiT67ngBe1x7vbI9RPE-HSJh8phx2h&cAccept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9Cookie: qcmainCSRFToken=ByB1lOw1G4; intl=; qcloud_from=-03aid=1253408289&asig=Ad3GYD9Dn99U0xOPiOOhnEpB7citHdzqa98umEP2Whvl-OngFl18y4Q_bSgYFxtm6dWiT67ngBe1x7vbI9RPE-HSJh8phx2h&captype=&protocol=https&clientype=2&disturblevel=&apptype=&cu参数分析:ans:验证码最后位置的坐标cdata:⼀个验证数据,后⾯会讲到babedc:此处注意,每次可能参数名称不同,需要从第⼆步返回数据中获取参数名。此参数的值是你⿏标,键盘事件的加密数据,后⾯会讲到websig:第⼆步返回数据中获取fpinfo:此处是空,在qq登录中,需要上传浏览器ua与其他浏览器特性从⽽获取⼀个数据,浏览器属性不变,返回的数据不变。其他参数参照上⾯或者默认
三、验证码识别图⼀ 图⼆
懂的⼤神直接就可以识别缺⼝位置了。如果不懂识别,我教给你现在可以⽤的简单的⽅法。上⾯提到,http请求可以获取上⾯两个验证码,但当img_index为0时候,可以获取
图三
没错,就是原图。你直接对⽐下两张图就能获取到坐标了。(以前图⼀缺⼝部分是⽩⾊的,看这个图⽚好像改了)四、加密分析babedc参数:参数名称从第⼆步获取的内容中查找,正则表达式 :cdata:l,"(.+?)":_⾄于此参数的值就是:{"mouseclick":[{"t":2273,"x":269,"y":148}],"keyvalue":[],"user_Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36","resolutionx":1920⾥⾯是⿏标,滑动的坐标。然后aes加密,模式是cbc,密钥跟偏移都是abcdef。上⾯是解密后数据,⾥⾯⼀些东西⾃动⽣成就⾏,tokenid是浏览器⼀些参数⽣成的,这个很重要。mousemove⾥⾯的是跟前⼀个坐标的相减值
孩⼦哭了,奶爸要看孩⼦了。⽂笔不好,思想也⽐较跳跃,打字也马虎,如有错别字尽量看吧,有问题后⾯留⾔。后⾯解密部分没细说,下次⽂章详细各类解密。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687866094a52077.html
评论列表(0条)