制造数据包

起因

编写规则的时候,离不开数据包,但是很多时候,漏洞是不好复现的,甚至是需要在真实的网络环境中复现漏洞才能获取相关数据包,为了避免这种尴尬问题的发生,可以试着制造我们需要的数据包。

制造请求包

如果只是制造请求包,那么使用BurpSuite截包时,改一下内容,随便对着谁发一下就行了

制造请求-响应包⭐

使用phpstudy搭建一个web环境,然后自定义要访问的文件路径,写一个html或者php文本啥的,然后通过web访问一下,可以拿到响应码200的包

优点:制造的更真实(响应码正确)
缺点:每次都需要人工编写web页面
效果:
在这里插入图片描述
这里其实是有一个小问题的,如果是这种信息泄露的漏洞,我直接创建路径、创建文件就行了,但如果是命令执行、sql注入、xss呢?又该如何构造数据包呢?举个例子:
假设在网上找到如下请求、响应的流量,你该如何造包呢?

GET /php/ssh_form.php?hostname=%3C/title%3E%3Cscript%3Ealert(1)%3C/script%3E%3Ctitle%3E HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

HTTP/1.1 200 OK
Date: Fri, 05 Mar 2021 15:39:09 GMT
Server: Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.5
X-Powered-By: PHP/5.3.5
Content-Length: 1455
Connection: close
Content-Type: text/html; charset=utf-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<meta name="description" content="TODO - info">
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">    
	<title>SSH Session </title><script>alert(1)</script>

这里,就要求懂一点php了:

  1. 在指定路径中写入一个php文件

在这里插入图片描述
2. 直接访问

http://192.168.239.132/php/ssh_form.php?hostname=%3C/title%3E%3Cscript%3Ealert(1)%3C/script%3E%3Ctitle%3E
  1. 抓包效果符合期望

在这里插入图片描述
所用核心代码:

<?php
$hostname = $_GET['hostname'];
if(isset($hostname)){
        $str = <<<EOD
  字符串
EOD;

echo $str;

}

?>

所用代码:

<?php
$hostname = $_GET['hostname'];
if(isset($hostname)){
        $str = <<<EOD
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="description" content="TODO - info">
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">    
  <title>Ping |dir</title>
  <link rel='stylesheet' href='css/style.css' type='text/css'>
  <link rel='stylesheet' href='css/wait_indicator.css' type='text/css'>
  <script src="js/wait_indicator.js" type="text/javascript"></script>    
  </head>
  <body οnlοad="ind_off()" class="new_window">
  <!-- dialog -->
  <div class="wait_dialog" id="wait_table" style="visibility: visible">
  </div>
  
  <table width="530px">
    <tr>
    <th>Ping</th>
    </tr>
    <tr>
    <td>
      <table width="100%">
      <tr>
        <td>
        <pre>
 Volume in drive C has no label.
 Volume Serial Number is B67A-CF0F

 Directory of C:\R-SeeNet\htdocs\php

03/05/2021  06:02 PM    <DIR>          .
03/05/2021  06:02 PM    <DIR>          ..
03/03/2017  06:07 PM             6,231 about_form.php
06/25/2013  03:48 PM             3,460 add_company_form.php
10/05/2014  01:20 PM            15,483 add_device_form.php
03/08/2017  01:18 PM             8,186 add_group_form.php
09/09/2014  04:41 PM            12,156 add_user_form.php
06/25/2013  03:48 PM             8,266 appearance_opt.php
03/06/2012  02:18 PM               482 bottom.php
10/17/2016  01:36 PM             4,626 cfg.php
06/07/2012  07:39 AM             1,538 check_user.php
06/25/2013  03:48 PM             6,603 company_change.php
09/10/2020  09:10 AM            14,792 company_list.php
03/04/2021  04:43 PM               657 csv_export.php
05/04/2012  06:26 AM             4,999 daily_report.php
EOD;

echo $str;
        // echo "<h1>hello wl</h1>";
        // echo "<br />";
        // echo "<h2>hello wl</h2>";
}

?>

制造请求-响应包【自定义响应码】⭐⭐

在上文提到,可以通过构造文件来制作数据包,但是,上面的方法还是不尽完美,因为上面只能实现200响应码,不能实现别的响应码。即:我现在的需求是我不仅要自定义响应的内容,还要自定义响应码。
先来看一下上文提到的核心代码:

<?php
$hostname = $_GET['hostname'];
if(isset($hostname)){
        $str = <<<EOD
  字符串
EOD;

echo $str;

}

?>

我们只需要在这段代码里指定响应码即可:
新的核心代码:

<?php
$hostname = $_GET['hostname'];
$http = array (
100 => "HTTP/1.1 100 Continue", 
101 => "HTTP/1.1 101 Switching Protocols", 
200 => "HTTP/1.1 200 OK", 
201 => "HTTP/1.1 201 Created", 
202 => "HTTP/1.1 202 Accepted", 
203 => "HTTP/1.1 203 Non-Authoritative Information", 
204 => "HTTP/1.1 204 No Content", 
205 => "HTTP/1.1 205 Reset Content", 
206 => "HTTP/1.1 206 Partial Content", 
300 => "HTTP/1.1 300 Multiple Choices", 
301 => "HTTP/1.1 301 Moved Permanently", 
302 => "HTTP/1.1 302 Found", 
303 => "HTTP/1.1 303 See Other", 
304 => "HTTP/1.1 304 Not Modified", 
305 => "HTTP/1.1 305 Use Proxy", 
307 => "HTTP/1.1 307 Temporary Redirect", 
400 => "HTTP/1.1 400 Bad Request", 
401 => "HTTP/1.1 401 Unauthorized", 
402 => "HTTP/1.1 402 Payment Required", 
403 => "HTTP/1.1 403 Forbidden", 
404 => "HTTP/1.1 404 Not Found", 
405 => "HTTP/1.1 405 Method Not Allowed", 
406 => "HTTP/1.1 406 Not Acceptable", 
407 => "HTTP/1.1 407 Proxy Authentication Required", 
408 => "HTTP/1.1 408 Request Time-out", 
409 => "HTTP/1.1 409 Conflict", 
410 => "HTTP/1.1 410 Gone", 
411 => "HTTP/1.1 411 Length Required", 
412 => "HTTP/1.1 412 Precondition Failed", 
413 => "HTTP/1.1 413 Request Entity Too Large", 
414 => "HTTP/1.1 414 Request-URI Too Large", 
415 => "HTTP/1.1 415 Unsupported Media Type", 
416 => "HTTP/1.1 416 Requested range not satisfiable", 
417 => "HTTP/1.1 417 Expectation Failed", 
500 => "HTTP/1.1 500 Internal Server Error", 
501 => "HTTP/1.1 501 Not Implemented", 
502 => "HTTP/1.1 502 Bad Gateway", 
503 => "HTTP/1.1 503 Service Unavailable", 
504 => "HTTP/1.1 504 Gateway Time-out"  
); 
header($http[403]); 
if(isset($hostname)){
        $str = <<<EOD
 字符串
EOD;

echo $str;

}

?>

举例如下:
在这里插入图片描述
在这里插入图片描述

制造请求-响应【通用型】⭐⭐⭐

开启404跳转,不管访问的结果怎么样,都可以访问到指定的文件。

优点:通用
缺点:响应码是404

修改httpd.conf

  1. 让apache支持.htaccess

概述来说,htaccess文件是Apache服务器中的一个配置文件(是apache才有的),它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。常用于实现伪静态

文件位置(Everything搜一下也行,只有一个结果):
在这里插入图片描述

打开文件之后,搜索“AllowOverride none”(搜索结果只有一个),把none修改为all
在这里插入图片描述

  1. 修改httpd.conf里404页面文件名及路径

搜索“ErrorDocument 404 /missing.html”(搜索结果只有一个)
取消注释,这部主要是关闭默认的404提示页面。然后再重新指定自定义的404页面。
在这里插入图片描述

  1. 重新定义404页面的位置

(1)在网站的根目录下面添加.htaccess文件
(2)打开.htaccess文件,写入代码:ErrorDocument 404 /missing.html
在这里插入图片描述

(3)将404页面missing.html放在网站根目录下面,重新启动apache就可以了。
在这里插入图片描述

成品展示

网页有点乱码,这个是因为我html写的非常不规范导致的,但是,抓包没问题就OK了
在这里插入图片描述

一点优化

抓包结果,可以看到ip地址,可以通过配置静态IP的方式,假装是真实网络环境抓包😁

制造请求-响应【终极版】⭐⭐⭐⭐

今天在Talos上发现一款神器Re2Pcap
在这里插入图片描述
简单来说,这款工具可以让你手动输入http的请求和响应的报文,它会根据你输入的报文内容生成数据包,可谓是办公神器!
官方提供的使用动态图如下:
在这里插入图片描述
目前网络上仅在油管搜到一个相关视频,是他们官方的,但是对于萌新还是略显不大友好,我这里就详细记录一下使用过程。

系统使用kali,由于该工具依赖docker,先装dockr,网上装docker的教程一大堆,我这里按照vulhub的教程来:https://vulhub.org/#/docs/install-docker-compose/

1. 更新包

在这里插入图片描述

2. 安装docker

apt install docker.io在这里插入图片描述
在这里插入图片描述

3. 下载Re2Pcap

git clone https://github.com/Cisco-Talos/Re2Pcap.git
cd Re2Pcap/

4. 启动Re2Pcap

执行如下命令后,首先会下载镜像,下载完毕之后,就会启动Re2Pcap

docker run --rm --cap-add NET_ADMIN -p 5000:5000 --name re2pcap amitraut/re2pcap

在这里插入图片描述

5. 浏览器访问

浏览器访问,果然看到了期待中的页面
在这里插入图片描述
写点东西进入试试
在这里插入图片描述
生成数据包,然后看看,符合预期
在这里插入图片描述
最最让人惊喜的是,生成数据包的这个过程,不用联网!!!
我关了wifi(右下角qq已下线,出现地球图标),依然可以生成数据包,Re2Pcap真是办公神器!!!
在这里插入图片描述

参考

phpstudy 404页面设置方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArtPollReply是Art-Net协议中的一种消息类型,用于设备响应ArtPoll搜索命令并提供设备的详细信息。下面是对ArtPollReply数据包的详细解释: ArtPollReply数据包的结构如下: ``` 0 7 +-+-+-+-+-+-+-+-+ | ID | 8 bytes,固定为"Art-Net" +-+-+-+-+-+-+-+-+ | OpCode | ProtVer | 2 bytes,OpCode为0x0021,ProtVer为协议版本号 +-+-+-+-+-+-+-+-+ | IP Address | 4 bytes,设备的IP地址 +-+-+-+-+-+-+-+-+ | Port | 2 bytes,设备监听的端口号 +-+-+-+-+-+-+-+-+ | VersInfo | NetSwitch | SubSwitch | 3 bytes,设备的版本信息、网络开关和子网开关 +-+-+-+-+-+-+-+-+ | Oem | 2 bytes,设备的OEM代码 +-+-+-+-+-+-+-+-+ | UbeaVersion | Status1 | 2 bytes,UBEA版本和设备状态 +-+-+-+-+-+-+-+-+ | EstaManLo | EstaManHi | 2 bytes,设备的制造商ID +-+-+-+-+-+-+-+-+ | ShortName[18] | 18 bytes,设备的短名称 +-+-+-+-+-+-+-+-+ | LongName[64] | 64 bytes,设备的长名称 +-+-+-+-+-+-+-+-+ | NodeReport[64] | 64 bytes,设备的节点报告 +-+-+-+-+-+-+-+-+ | NumPorts | 1 byte,设备的端口数量 +-+-+-+-+-+-+-+-+ | PortTypes[4] | 4 bytes,设备各个端口的类型 +-+-+-+-+-+-+-+-+ | GoodInput[4] | 4 bytes,用于标记输入端口是否正常 +-+-+-+-+-+-+-+-+ | GoodOutput[4] | 4 bytes,用于标记输出端口是否正常 +-+-+-+-+-+-+-+-+ | SwIn[4] | 4 bytes,输入端口的物理状态(开关) +-+-+-+-+-+-+-+-+ | SwOut[4] | 4 bytes,输出端口的物理状态(开关) +-+-+-+-+-+-+-+-+ | SwVideo | 1 byte,视频端口的物理状态(开关) +-+-+-+-+-+-+-+-+ | SwMacro | 1 byte,宏触发器的物理状态(开关) +-+-+-+-+-+-+-+-+ | SwRemote | 1 byte,远程控制的物理状态(开关) +-+-+-+-+-+-+-+-+ | Spare[3] | 3 bytes,保留字段 +-+-+-+-+-+-+-+-+ | Length | 2 bytes,数据包长度 +-+-+-+-+-+-+-+-+ ``` ArtPollReply数据包中包含了设备的各种信息,如IP地址、端口号、版本信息、设备名称、端口类型、端口状态等。这些信息可以用于识别和配置Art-Net设备。根据协议规范,ArtPollReply消息的长度是固定的,为238字节。 注意,具体的实现可能会根据设备的厂商和型号而有所不同。因此,在使用Art-Net协议时,建议参考官方文档和设备的相关资料以了解更多关于ArtPollReply消息的详细信息和具体结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值