shiquda 发表于 2023-6-26 21:25

某网站关注公众号逆向

本帖最后由 shiquda 于 2023-6-30 10:38 编辑

RT,新人第一次发帖~,有不足之处多多指正哈~
前面看来某大佬的帖子,刚好遇到了一个网站要关注获取验证码,遂分享一下经历

某网站要求验证验证码

方法一(最简单)把遮挡元素删除或过滤
F12打开控制台,用选中工具选中遮挡的元素并按delete删去



也可以尝试使用AdGuard等浏览器插件添加用户规则进行过滤

方法二 逆向获取验证码

点击“确认”按钮,弹出提示:

控制台 Ctrl + Shift + F 全局搜索提示内容,找到对应函数

观察函数,发现验证码使用了md5加密,了解过后发现是不可逆的,遂放弃
根据大佬的回复点拨,自己写了一个python代码破解,如下供大家参考:
import hashlib


f = 6 #数字验证码位数
code = "e5765b72bf6eca79eca997f49b26da2b" # 待破解md5值


def generate_md5(input_string):
    md5_hash = hashlib.md5()
    md5_hash.update(input_string.encode('utf-8'))
    return md5_hash.hexdigest()

def crypt(f,code):
    for i in range (10**f):
      if (generate_md5(str(i).zfill(f)) == code):
            print(str(i).zfill(f))
            return
    print("解密失败,请检查输入!")


crypt(f,code)

方法三 控制台更改cookie(推荐)
在方法二的基础上,发现函数通过写入cookie实现记录用户已验证功能:
document.cookie = "password=1;path=/;expires=" + date.toGMTString() + ";"
分析可知,直接把cookie写入即可,顺便可以删去失效时间:
document.cookie = "password=1;path=/;"
控制台输入代码回车,刷新页面发现遮挡元素已经消失



jialiu211 发表于 2023-6-28 13:29

还有一种方案,直接在控制台中修改cnm的值,值为一个已知原文的md5,然后在网页输入原文确认就行了。
比如,1234的md5为81dc9bdb52d04dc20036dbd8313ed055,那么控制台输入cnm = "81dc9bdb52d04dc20036dbd8313ed055",然后网页输入1234,确认就可以了。

geesehoward 发表于 2023-6-30 10:07

看到第一种方法莫名想笑,这个网站是新手做的吗?做个遮挡,不跳转,毫无意义

Kls673M 发表于 2023-6-28 17:30

感谢分享!这个很实用

侠骨留香喵 发表于 2023-6-28 14:48

学到了,另外顺手找了个MD5解密的网站试了试,结果运气贼好:md5(050828)=e5765b72bf6eca79eca997f49b26da2b,验证码:050828

shiquda 发表于 2023-6-28 15:27

本帖最后由 shiquda 于 2023-6-28 15:31 编辑

jialiu211 发表于 2023-6-28 13:29
还有一种方案,直接在控制台中修改cnm的值,值为一个已知原文的md5,然后在网页输入原文确认就行了。
比如 ...
是的,很多网站的验证js直接写在html文件里面,变量可以直接访问

zhanggengyu250 发表于 2023-6-28 20:18

感谢老哥!!!!!!

悦来客栈的老板 发表于 2023-6-28 21:34

md5 = function () {return “e5765b72bf6eca79eca997f49b26da2b”;};

这样也行

wuai4444 发表于 2023-6-28 21:40

感谢分享

guomanmin 发表于 2023-6-29 09:34

md5=e5765b72bf6eca79eca997f49b26da2b=验证码:050828
学了不少东东

littian 发表于 2023-6-29 10:31

感谢分享 第一个方法最简单
页: [1] 2 3 4
查看完整版本: 某网站关注公众号逆向