code-philia / PhishDecloaker

PhishDecloaker: Detecting CAPTCHA-cloaked Phishing Websites via Hybrid Vision-based Interactive Models
MIT License
4 stars 1 forks source link

关于CAPTCHA检测自动化脚本的问题 #1

Open jolly-xw opened 2 weeks ago

jolly-xw commented 2 weeks ago

首先感谢你们将这个项目开源,这是一个优秀且新颖的项目。我目前存在疑问,在面对CAPTCHA的人机验证时,该项目可以根据验证码类型选择对应的解决方案,但通常完成了人机验证码校验之后,CAPTCHA还会对你进行二次校验(如Cloudflare)。我想知道你们是有做浏览器伪装的工作吗,我看到代码仓库里有一些JavaScripts代码,但我是门外汉并不明白它们的作用。

gyataro commented 1 week ago

你好,感谢你对这个项目的关注

没错,我们确实对浏览器进行了修改。你可以查看我们实验中的伪装设置: https://github.com/code-philia/PhishDecloaker/blob/main/phishdecloaker/crawler/crawler_group.py

此外,我们还使用了 browserless 的规避功能来设置我们的浏览器容器集群,你可以在这里查看他们的脚本:https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth

jolly-xw commented 15 hours ago

感谢你的回复,我最近也想做相关的工作,你们的论文和工作真的很棒。我看了puppeteer-extra-plugin-stealth,貌似无法在python中使用。我有一些问题:

gyataro commented 3 hours ago

你好,

puppeteer-extra-plugin-stealth 是 browserless 浏览器附带的脚本,不需要另外导入 python 爬虫

如果你想自行把 js 脚本导入 python 爬虫,可以参考以下步骤,这里以 chromium + playwright 为例:

browser = p.chromium.launch()
page = browser.new_page()
...
page.add_init_script(path="your_script.js")

如果你你想在 python 中调用带有规避功能的浏览器,例如 browserless:

browser = p.chromium.connect_over_cdp('wss://your-browser-url?stealth')
context = browser.new_context()
page = context.new_page()

但通过 python 调用需要每次都附上 stealth 参数。如果想默认启用 browserless 的规避功能,可以在 docker compose 文件里添加一下配置:

  browser:
    image: browserless/chrome
    ....
    environment:
      - ...
      - DEFAULT_STEALTH=true

希望对你们有帮助