制造数据包

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 制造数据包,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

起因

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

制造请求包

如果只是制造请求包,那么使用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页面设置方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134315.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!