Gitlab Wiki頁面存儲xss漏洞

漏洞摘要
我在Wiki頁面找到了一個存儲xss
重現步驟:
1、登錄到GitLab 。
2、打開有權編輯Wiki頁面的’Project’頁面 。
3、打開Wiki頁面 。
4、點擊’New page’按鈕 。
5、用’javascript:’填寫’Page slug’表單 。
6、點擊’Createpage’按鈕 。
7、填寫每個表格,如下所示:
Title: javascript:
Format:Markdown
Content: [XSS](.alert(1);)
參考下圖:

Gitlab Wiki頁面存儲xss漏洞


8、點擊“Create page”按鈕 。
9、在創建的頁面中單擊“XSS”鏈接 。
單擊創建頁面中的“ XSS”鏈接后,將出現彈框 。
Gitlab Wiki頁面存儲xss漏洞


詳細說明:
GitLab應用程序轉換Markdown字符串’.alert(1);’到href屬性’javascript:alert(1);.’
此外,特定于Wiki的Markdown字符串’.’在這里應該轉換’javascript:’
如何防范:
危險的href屬性’javascript:alert(1);’應該被過濾 。相反,應該呈現安全的HTTP / HTTPS鏈接 。
附加信息:
1、 在上述情況下,另一個特定于Wiki的Markdown字符串’..’也將轉換為javascript:
2、 使用標題字符串(例如javascript:STRING_EXPECTED_REMOVING)也會發生此漏洞
例如,如果使用偽裝的Title字符串JavaScript::SubClassName.function_name創建了Wiki頁面,則Gitlab在此類頁面中應用程序將轉換Wiki特定的Markdown字符串’.’到JavaScript:
3、 攻擊者可以通過將Title字符串javascript:替換為其他方案來使用各種方案 。(如data:, vbscript:等) 。
此漏洞影響GitLab的enterprise 11.9.4-ee版本 。
GitLab環境信息:
sudogitlab-rake gitlab:env:info的輸出結果:System informationSystem:Proxy:noCurrent User:gitUsing RVM:noRuby Version:2.5.3p105Gem Version:2.7.6Bundler Version:1.16.6Rake Version:12.3.2Redis Version: 3.2.12Git Version:2.18.1Sidekiq Version:5.2.5Go Version: unknown
GitLab informationVersion:11.9.4-eeRevision:55be7f0Directory:/opt/gitlab/embedded/service/gitlab-railsDB Adapter: postgresqlDB Version: 9.6.11URL:http://gitlab.example.comHTTP Clone URL:http://gitlab.example.com/some-group/some-project.gitSSH Clone URL: git@gitlab.example.com:some-group/some-project.gitElasticsearch:noGeo:noUsing LDAP: noUsing Omniauth: yesOmniauth Providers:
GitLab ShellVersion:8.7.1Repository storage paths:- default: /var/opt/gitlab/git-data/repositoriesGitLab Shell path:/opt/gitlab/embedded/service/gitlab-shellGit:/opt/gitlab/embedded/bin/git漏洞影響:
如果使用此漏洞在公共項目中發布一個wiki頁面(對所有人可見),可能會導致部分用戶遭受xss攻擊 。
◆ ◆ ◆◆ ◆
【Gitlab Wiki頁面存儲xss漏洞】了解更多的網絡安全攻略聯系我們(微信):kinnah333

    推薦閱讀