GitHub代码搜索限制

admin 2024年11月9日21:29:27评论14 views字数 1706阅读5分41秒阅读模式
  • 说明

  • 尝试绕过

    • 通过搜索引擎如 Google

    • 通过完善搜索的语法

    • 通过 GitHub API

说明

不知道从何时起,GitHub 限制了搜索代码的结果,只能获取默认的前 100 条代码,且不支持排序筛选。

具体表现如下:

搜索aaa,共有22.5M条数据,我每页展示 20 条数据,当查看到第 5 页时,无法继续点击下一页,当通过修改参数查询第 6 页时,提醒我没有搜索结果。

GitHub代码搜索限制
github

后翻了一下官方的文档[1],可见是官方限制了搜索展示结果数量。

GitHub代码搜索限制
limit

尝试绕过

当前阶段还是想尽可能多的获取到代码结果,毕竟从 GitHub 信息收集也主要依赖代码搜索;但直接绕过 GitHub 搜索策略是不现实的(能绕过我就提 hackerone 了),所以只能从测面想一些办法尽可能多的获取到结果,一个人的思路比较局限,有其他师傅有思路可以相互交流。

演示以搜索 163 的 SMTP 账号密码为例,GitHub 直接搜smtp.163.com password出来前 100 个结果没有 1 个能用的。

通过搜索引擎如 Google

site:github.com intext:"smtp.163.com" intext:password
GitHub代码搜索限制
google search

可见能搜索一些可用的 SMTP 账号和密码。

GitHub代码搜索限制
res

通过完善搜索的语法

GitHub 搜索语法更新,可以使用正则表达式、布尔[2]等高级搜索语法进行条件限制。

163 默认邮箱生成的客户端密钥是 16 位,如JLLM**********GL,因此可以采用增加搜索规则的方式来缩小搜索范围,如使用正则表达式

smtp.163.com AND /password = "[w+]{16}"/
GitHub代码搜索限制
smtp_1

由于部分用户可能改过密钥,所以也可以用如下语法:

smtp.163.com AND /password = "w+"/ NOT /password = "(password|xxx|your_email_password|123456|X+|密码|authCode)"/
GitHub代码搜索限制
smtp_2

通过 GitHub API

在 GitHub API 文档[3]中,发现可通过 page 来控制查询的页数,如果我们每页 1 条数据,那么第 101 页就是第 101 条数据,也就绕过了 web 的 100 条数据限制。具体演示如下:

# 认证
gh auth login
# 查询
gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" '/search/code?q=smtp.163.com+password&per_page=1&page=101'

可见能成功获取到对应的仓库信息。

GitHub代码搜索限制
success

一行获取对应文件的内容

curl $(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" '/search/code?q=smtp.163.com+password&per_page=1&page=205' | jq -r .items[0].git_url) | jq -r .content | base64 -d
GitHub代码搜索限制
content

问题点:

Github API 查询的结果数量和 GitHub 网页中查询的结果数量不一致,会少很多很多。

GitHub代码搜索限制
question

参考资料

[1]

文档: https://docs.github.com/zh/search-github/github-code-search/about-github-code-search

[2]

正则表达式、布尔: https://docs.github.com/zh/search-github/github-code-search/understanding-github-code-search-syntax

[3]

API 文档: https://docs.github.com/zh/rest/search?apiVersion=2022-11-28#search-code

- END -

原文始发于微信公众号(初始安全):GitHub代码搜索限制

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月9日21:29:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   GitHub代码搜索限制https://cn-sec.com/archives/1787144.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息