第一周学习

PHPstudy的搭建及使用

下载

PHPstudy官网链接:传送门
直接下载windows版的小皮v8.1
安装打开省略,结果如图
无

搭建

点击启动
在这里插入图片描述
在这里插入图片描述

然后点击左侧网站,新建网站,自定义域名为localhost,端口为88。
此处我自定义两个网站localhost,localhost1,端口88,89。分别用HTML和PHP写Hello World。
注意两个网站的根目录不要放到一起,以区分。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击右侧的管理,打开网站
在这里插入图片描述
显示如上即成功。
关闭,然后点击右侧的管理,打开根目录
在这里插入图片描述
可以删除的内容,如图只剩下这两个文件。
在这里插入图片描述

PHP写

空白处右击-新建-文本文档,修改文件名为a.php,保存
右击用vscode打开,写入如下代码

<!DOCTYPE html>
<html>
<body>
<h1>实验室第一个任务</h1>
<?php echo "Hello World";
?>
</body>
</html>

保存:Ctrl + s,并退出,关闭文件夹
然后再次打开网站,即为
在这里插入图片描述
若任然显示

HTML写

空白处右击-新建-文本文档,修改文件名为b.html,保存
右击用vscode打开,写入如下代码

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>实验室第一次任务</title>
</head>
<body>
  <h1>任务内容</h1>
  <p>输出“Hello World!”</p>
  <p>输出为:Hello World!</p>
</body>
</html>  

此段代码可以优化

保存:Ctrl + s,并退出,关闭文件夹
然后再次打开网站,即为
在这里插入图片描述

注意事项

若编写代码打开后仍然为
在这里插入图片描述
则点击地址栏再按回车即可显示自己手写的内容。

Burpsuite的安装、抓包、改包

安装

此处使用burp_suite_pro_v2022.8.4.jar作为演示,前提得有Java环境,而burp_suite_pro_v2022.8.4.jar对java环境没有过硬的要求,理论java8最好,我此处是配置的Java18环境,Java环境配置:传送门
主要工具包如下传送门
burp_suite_pro_v2022.8.4下载地址:传送门
下载完成后将这四个放到一个文件夹中,路径不要有中文
在这里插入图片描述
右击复制BurpLoaderKeygen.jar的文件路径,空白处右击终端打开
在这里插入图片描述
输入

java -jar "目标路径"

然后就运行注册机了

在这里插入图片描述
license text随便改,然后把上面俩都打勾,点击"run"
接着就打开burpsuite了,到输入license的时候,复制注册机的license,粘贴到burpsuite中,点击next
再点击如下
在这里插入图片描述
下一步点击 copy request,将右边的都复制到左边的框里
在这里插入图片描述
接着把左边的response复制到右边,然后我们就可以使用了。

快捷启动

第一种vbs启动

在刚刚的文件夹中右击-新建文本文档两个,分别命名为:
中文启动.vbs
英文启动.vbs
在这里插入图片描述
右击用vscode打开
英文启动输入如下:

set ws=createobject("wscript.shell")
ws.run("cmd /c java -noverify -javaagent:BurpSuiteLoader.jar -jar -Xmx2048M burpsuite_pro_v2022.8.4.jar"),vbhide

中文启动输入如下:

set ws=createobject("wscript.shell")
ws.run("cmd /c java -Dfile.encoding=utf-8 -javaagent:BurpSuiteChs.jar -noverify -javaagent:BurpSuiteLoader.jar -jar -Xmx2048M burpsuite_pro_v2022.8.4.jar"),vbhide

此后就可以直接点击相应的vbs程序来启动burpsuite了

第二种bat启动

同样在刚刚的文件夹中右击-新建文本文档两个,分别命名为:
中文启动.vbs
英文启动.vbs
英文启动如下

java -noverify -javaagent:BurpSuiteLoader.jar -jar -Xmx2048M burpsuite_pro_v2022.8.4.jar

中文启动

java -Dfile.encoding=utf-8 -javaagent:BurpSuiteChs.jar -noverify -javaagent:BurpSuiteLoader.jar -jar -Xmx2048M burpsuite_pro_v2022.8.4.jar

第三种exe启动(推荐)

首先在之前的目录里新建一个1.cs的文件,打开写入以下代码

using System;
using System.Diagnostics;
using System.IO;

namespace burpsuite_pro_v2022
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            // 这里要根据自己的burpsuite文件来更改
            string startbp_seconde = "java -noverify -javaagent:BurpSuiteLoader.jar -jar -Xmx2048M burpsuite_pro_v2022.8.4.jar";
            if (File.Exists("config.cfg"))
            {
                Exec(startbp_seconde);
            }
            else
            {
                string first = "java -jar BurpSuiteLoader.jar";
                Exec(first);
            }
        }

        static void Exec(string cmd)
        {
            Process p = new Process();
            //设置要启动的应用程序
            p.StartInfo.FileName = "cmd.exe";
            //是否使用操作系统shell启动
            p.StartInfo.UseShellExecute = false;
            // 接受来自调用程序的输入信息
            p.StartInfo.RedirectStandardInput = true;
            //输出信息
            p.StartInfo.RedirectStandardOutput = true;
            // 输出错误
            p.StartInfo.RedirectStandardError = true;
            //不显示程序窗口
            p.StartInfo.CreateNoWindow = true;
            //启动程序
            p.Start();
            //向cmd窗口发送输入信息
            p.StandardInput.WriteLine(cmd+ "&exit");
            p.StandardInput.AutoFlush = true;
            //获取输出信息
            string strOuput = p.StandardOutput.ReadToEnd();
            //等待程序执行完退出进程
            //p.WaitForExit();
            p.Close();
        }
    }
}


///上面代码需要更改的地方就一处,注释里也写了:burpsuite的文件名。

再找一个burpsuite的ico图标,放入该文件夹,命名为bp.ico
然后使用Microsoft.NET包的csc编译该文件
在该文件的空白处右击打开终端输入以下命令

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:winexe /out:D:\burpsuitece\bp10.exe /win32icon:D:\burpsuitece\bp.ico  D:\burpsuitece\1.cs

即可生成一个.exe文件,接着发送到桌面即可以双击打开

配置代理

以火狐浏览器测试
如图打开扩展
在这里插入图片描述
在搜索框输入“FoxyProxy Standard”后搜索
在这里插入图片描述
点击然后添加到火狐
在这里插入图片描述
点击添加
在这里插入图片描述
然后关闭网页,回到主页点击如图所示
在这里插入图片描述
点击FoxyProxy Standard–选项
在这里插入图片描述
代理ip地址和端口处分别输入“127.0.0.1”、“8080”后点击【保存】
在这里插入图片描述
最后结果如图,即为成功
在这里插入图片描述

配置CA证书

点击自己写的vbs程序,打开burpsuite,一直默认下一步,进入主页
Proxy–Options
在这里插入图片描述
如图提示操作
在这里插入图片描述
然后把证书保存到一个自己能找到的一个位置
打开火狐浏览器–设置,搜索“证书”
在这里插入图片描述
点击【查看证书】
在这里插入图片描述
点击【导入】把刚刚的证书导入即可

抓包

进入火狐浏览器点击FoxyProxy Standard,把代理改为127.0.0.1:8080
在这里插入图片描述

在火狐浏览器搜索框里输入【坤哥】
然后进入burpsuite的如下界面,点击【intercpet is off】然后它就会打开
在这里插入图片描述
返回到火狐浏览器,点击搜索,就会返回如下结果,点击【Forward】

在这里插入图片描述
然后点击【Action】–【Send to Repeater】
在这里插入图片描述
然后点击【Repeater】,再点击【Send】
在右边的response的render中即可查看“坤哥”
在这里插入图片描述

改包

改包这里为了让效果更佳,将采用百度搜索一个内容,返回另一个内容来演示
火狐搜索框输入:实验室隐藏的帅哥是谁
在这里插入图片描述
然后回到burpsuite,点击【intercpet is off】,回到火狐浏览器,搜索
在这里插入图片描述
在这里插入图片描述
蔡徐坤"的UTF-8编码表示为:%E8%94%A1%E5%BE%90%E5%9D%A4

将GET /baidu?ie=utf-8&wd= %E5%AE%9E%E9%AA%8C%E5%AE%A4%E9%9A%90%E8%97%8F%E7%9A%84%E5%B8%85%E5%93%A5%E6%98%AF%E8%B0%81 HTTP/1.1
中标记的部分用坤哥的utf-8编码替换了
在这里插入图片描述
然后点击一直点击【Forward】
即可出现如下
在这里插入图片描述
改包成功

Typora的破解

文件下载传送门
无脑下载文件,安装打开,点击试用15天后,把补丁文件解压,然后将补丁文件与Typora安装文件中的winmm.dll丢入安装文件夹根目录即可,效果如图
在这里插入图片描述

HTTP

1.什么是HTTP协议

HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本数据的协议。它是万维网的基础,用于在客户端和服务器之间传递信息,允许浏览器从Web服务器请求网页,并将网页内容传送给浏览器以供显示。HTTP是一个无状态协议,这意味着每个HTTP请求都是相互独立的,服务器不会保留关于之前请求的信息。

HTTP使用客户端-服务器模型,其中客户端(通常是浏览器)发送HTTP请求,而服务器响应请求并提供所需的数据。HTTP请求通常包括请求方法(如GET、POST、PUT、DELETE等)、请求的URL(Uniform Resource Locator)、请求头部和请求正文(可选)。服务器响应包括响应状态码、响应头部和响应正文。

HTTP是一个无连接协议,这意味着每个请求/响应对都是独立的,服务器不会保持与客户端之间的持续连接。这有助于保持协议的简单性和可伸缩性。

HTTP协议的版本有多个,最常见的是HTTP/1.1和HTTP/2。HTTP/1.1是广泛使用的协议版本,而HTTP/2引入了一些性能改进,如多路复用、头部压缩和服务器推送。

总之,HTTP协议是互联网上用于传输超文本数据的基本协议,它使我们能够在浏览器和服务器之间传递网页内容,是Web的基础之一。

一句话就是:HTTP(Hypertext Transfer Protocol)是一种用于在互联网上传输超文本数据的通信协议,它允许客户端(通常是浏览器)向服务器请求网页并获取响应,从而构建和显示网页内容。

1.什么是HTTP请求

HTTP(Hypertext Transfer Protocol)请求是用于在客户端和服务器之间传输数据的协议。HTTP是互联网上用于获取和传输网页、图像、视频、音频和其他资源的主要协议之一。当你在Web浏览器中输入网址、单击链接或执行其他与网络资源相关的操作时,浏览器会发送HTTP请求到远程服务器,请求特定的资源或执行特定的操作。服务器然后会响应这些请求,提供请求的数据或执行相应的操作。

2.请求方法

常见的请求方法有如下几种

请求方法描述幂等性
GETGET请求用于请求特定资源的表示形式
POST提交数据给服务器,用于创建新资源或执行某些操作
PUT更新服务器上的资源
DELETE请求删除服务器上的资源
PATCH用于部分更新服务器上的资源
HEAD类似于GET,但只返回响应头信息而不返回实际数据
OPTIONS获取服务器支持的请求方法和其他信息

幂等性是指相同的请求,无论执行多少次,都应该产生相同的结果,而不会对服务器状态产生额外的影响。这是为了确保在网络通信中,重试请求或请求可能重复发送时不会引发问题。

3.关于GET和POST传参

此为w3school 标准答案
在这里插入图片描述
GET 和 POST 只是 HTTP 协议中两种请求方式,而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上,本质没有区别。

  • GET请求:

用于从服务器获取数据,通常不用于对服务器状态进行更改。
参数通过URL的查询字符串传递,附加在URL的末尾,例如:http://example.com/resource?param1=value1&param2=value2
参数通常有长度限制,因为它们附加在URL上,对于敏感信息不安全。
GET请求是幂等的,多次相同的GET请求应该产生相同的结果。
常用于向服务器请求资源,如网页、图片、文档等。

  • POST请求:

用于向服务器提交数据,通常用于创建、更新或删除服务器上的资源,对服务器状态进行更改。
参数通常包含在请求的消息体中,对用户来说不可见。
POST请求通常不受参数长度限制,适合传递大量数据,如表单数据、文件上传等。
POST请求通常不是幂等的,多次相同的POST请求可能会产生不同的结果。
常用于提交表单数据、进行用户身份验证等操作。

两者的区别

两者的区别就是请求的方法写的不一样,POST不会在地址栏显示,安全性比get请求高,倘若让GET请求带一个请求体,只是浏览器带不了请求体,请求体会被直接接忽略掉,这样抓包拿到的数据只有请求头,没有请求体,而在nodejs中,nodejs服务端可提从这个GET的请求中获取到请求体的。
浏览器会忽略掉get或者是head请求中的请求体
在浏览器中可以看到这两个请求方法的差别有这么几点

  • GET一般用来获取服务器的信息的,post一般是用来更新信息

  • GET通过url 传递参数,POST可以通过url和request body 传递参数;

  • GET请求可以缓存,POST请求不能缓存(cache-control 经测试无法缓存) ;

  • GET只能进行url编码, POST 传输的编码方式很多

  • GET 请求参数会保存在浏览器历史中,POST不会

  • GET传递的参数上限是2k(IE浏览器), POST没有限制

  • GET只接受ASCII 字符,POST 没有限制

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦择懿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值