能力值:
( LV7,RANK:155 )
|
-
-
2 楼
例如:Tenda AC15 HTTP setMacFilterCfg 缓冲区溢出与远程代码执行漏洞(CVE-2018-18708) 该路由器/goform/setMacFilterCfg接口对输入的参数没有有效性检查,导致存在缓冲区溢出漏洞。 攻击者在获取登录授权的情况下,可以通过POST方法构造deviceList参数实现远程代码执行。
第一个函数:调用gepetto解释一下函数的意思; 第二个函数:调用VulChatGPT,找漏洞。 关系:第二个函数调用了第一个函数,因此要理解一下第一个函数的意思。 //
// 新名称:check_macfilter_rule()
// 使用环境:该函数可能是cgi中的一个函数,它需要从a1字符串中解析出mac地址和名字并将其拷
// 贝到a2空间里。不过当解析时会有某些异常情况(如文件格式错误、文件包含回车字符、文件内容太大导致覆盖栈上的变量等)会造成栈溢出。
//
// 预期目的:该函数主要用来对mac地址进行过滤条件校验并检测是否存在可能造成栈溢出的危险情况。
signed int __fastcall check_macfilter_rule(const char *a1, char *a2)
{
int v2; // r3
int v6[4]; // [sp+10h] [bp-34h] BYREF
int s2[4]; // [sp+20h] [bp-24h] BYREF
char v8; // [sp+32h] [bp-12h]
char v9; // [sp+33h] [bp-11h]
char *src; // [sp+34h] [bp-10h]
src = strchr(a1, 13);
if ( src )
{
*src++ = 0;
v6[0] = 0;
v6[1] = 0;
v6[2] = 0;
v6[3] = 0;
if ( GetValue("cgi_debug", v6) && !strcmp("on", (const char *)v6) )
{
v9 = 1;
printf("%s[%s:%s:%d] %s", off_1018C8[0], "cgi", "parse_macfilter_rule", 807, off_1018C0[0]);
printf("parase rule: name == %s, mac == %s\n\x1B[0m", a1, src);
}
strcpy(a2 + 32, a1);
strcpy(a2, src);
v2 = 0;
}
else
{
s2[0] = 0;
s2[1] = 0;
s2[2] = 0;
s2[3] = 0;
if ( GetValue("cgi_debug", s2) && !strcmp("on", (const char *)s2) )
{
v8 = 2;
printf("%s[%s:%s:%d] %s", off_1018C8[0], "cgi", "parse_macfilter_rule", 803, off_1018C4[0]);
printf("source_rule error: %s!\n\x1B[0m", a1);
}
v2 = 2;
}
return v2;
} //
// 漏洞:
// sub_C24C0函数中存在栈溢出,当a2参数传入大小超过128B时,由于程序并没有对长度进行判断和限制,将会引发栈溢出。
// 利用方法:通过向a2参数传入大量的特定字符对目标内存区域覆盖执行特定代码来达成将任意shellcode注入内存并执行的功能。
int __fastcall sub_C17A0(int a1, const char *a2, int a3)
{
int v7[4]; // [sp+1Ch] [bp-1E0h] BYREF
int v8[4]; // [sp+2Ch] [bp-1D0h] BYREF
int s2[4]; // [sp+3Ch] [bp-1C0h] BYREF
char v10[128]; // [sp+4Ch] [bp-1B0h] BYREF
char s[128]; // [sp+CCh] [bp-130h] BYREF
char v12[176]; // [sp+14Ch] [bp-B0h] BYREF
memset(s, 0, sizeof(s));
memset(v10, 0, sizeof(v10));
s2[0] = 0;
s2[1] = 0;
s2[2] = 0;
s2[3] = 0;
if ( GetValue("cgi_debug", s2) && !strcmp("on", (const char *)s2) )
{
v12[163] = 1;
printf("%s[%s:%s:%d] %s", off_1018C8[0], "cgi", "set_macfilter_rules_by_one", 667, off_1018C0[0]);
printf("set macfilter rules by one, source_rule == %s, index == %d\n\x1B[0m", a2, a3);
}
memset(v12, 0, 160u);
check_macfilter_rule(a2, v12);// 漏洞点
v8[0] = 0;
v8[1] = 0;
v8[2] = 0;
v8[3] = 0;
if ( GetValue("cgi_debug", v8) && !strcmp("on", (const char *)v8) )
{
v12[162] = 1;
printf("%s[%s:%s:%d] %s", off_1018C8[0], "cgi", "set_macfilter_rules_by_one", 671, off_1018C0[0]);
printf("get rule%d: name == %s, mac == %s\n\x1B[0m", a3, &v12[32], v12);
}
snprintf(s, 0x80u, "macfilter.%s.list%d", (const char *)a1, a3);
snprintf(v10, 0x80u, "%s", v12);
v7[0] = 0;
v7[1] = 0;
v7[2] = 0;
v7[3] = 0;
if ( GetValue("cgi_debug", v7) && !strcmp("on", (const char *)v7) )
{
v12[161] = 1;
printf("%s[%s:%s:%d] %s", off_1018C8[0], "cgi", "set_macfilter_rules_by_one", 675, off_1018C0[0]);
printf("set rule: %s == %s\n\x1B[0m", s, v10);
}
SetValue(s, v10);
if ( v12[32] )
sub_C6D58(&v12[32], v12);
return 0;
}
最后于 2023-2-8 13:00
被ylml编辑
,原因:
|
能力值:
( LV12,RANK:290 )
|
-
-
3 楼
chatGPT不是关闭访问了么?这插件还能用?
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
测试了下.还可以. 但是如果函数过大,就提示无法分析了
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
|
能力值:
( LV6,RANK:80 )
|
-
-
6 楼
请问一下,怎么返回中文
|
能力值:
( LV4,RANK:45 )
|
-
-
7 楼
大大部分情况他都是没用的
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
报错 davinci-003 could not complete the request: Error communicating with OpenAI
|
能力值:
( LV7,RANK:155 )
|
-
-
9 楼
pureGavin
chatGPT不是关闭访问了么?这插件还能用? 附件我在开源的基础上做了点修改,以应对国内不能访问的情况。实际调用API Keys用的GPT-3,而不是最新的GPT-3.5. 实际上,调用GPT-3.5的效果比现在要惊艳。
最后于 2023-2-9 14:47
被ylml编辑
,原因:
|
能力值:
( LV7,RANK:155 )
|
-
-
10 楼
用我帖子里的附件,就可以返回中文。 原来的Github下载的文件,返回的是英文。
|
能力值:
( LV7,RANK:155 )
|
-
-
11 楼
Lunction
报错 davinci-003 could not complete the request: Error communicating with OpenAI
我也报过这类错错,我修改了请求的字数以后,就不报错了,可以参考我发的附件的脚本。
|
能力值:
( LV7,RANK:155 )
|
-
-
12 楼
缺点1:现在API只能接收不超过4000字左右的请求。 缺点2:返回需要时间,大概30-60秒,有点慢! 如果以后不受字数限制了,或者国内掌握了这种技术可以秒返回结果了,那么实用性就大大提高了。 例如:可以瞬间分析完整个二进制文件,然后,输出一篇人类容易理解的、可行性高的漏洞报告,再自动生成exp脚本。
最后于 2023-2-9 13:49
被ylml编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
ylml
缺点1:现在API只能接收不超过4000字左右的请求。缺点2:返回需要时间,大概30-60秒,有点慢!如果以后不受字数限制了,或者国内掌握了这种技术可以秒返回结果了,那么实用性就大大提高了。例如:可以 ...
用的就是帖子里的附件 添加了key
|
能力值:
( LV12,RANK:290 )
|
-
-
14 楼
ylml
pureGavin
chatGPT不是关闭访问了么?这插件还能用? 附件我在开源的基础上做了点修改,以应对国内不能访问的情况。实际调用API&a ...
有办法走sock5代理之类的吗?毕竟我会魔法
|
能力值:
( LV7,RANK:155 )
|
-
-
15 楼
在每个人所在的领域,用ChatGPT搞点创新,提高工作效率,还是有点意思的。
最后于 2023-3-11 05:45
被ylml编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
实验了下,不错。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
请使用这个proxy设置 proxies = {'http':"http://xxxx:xxx", 'https':"http://xxxx:xxx"} openai.proxy = proxies
|