我们点击“创建实例”,可以看到一串随机代码:
上述字符串被称为“实例”,其本质是一个WSS加密网址。我们将代码复制粘贴到“WebSocket Reflector X”软件中的“由此开始”界面,可以在“连接情况”得到一个网址:127.0.0.59327。
这个“127.0.0.58097”(具体地址为随机生成)就是我们获取解题和获取flag的场景。
我们会看到如下界面:
显然,根据网站提示,我们需要用“get”和“post”两种方式向网站传递flag参数。那么怎么传递呢?
我们先了解一下get和post两种方法。
(摘自百科)
GET方法是一种在HTTP协议中用于获取数据的请求方式。GET方法通过在URL中指定资源的地址,向服务器发送请求以获取所需的数据,如网页、图片、视频等。GET请求通常用于读取操作,不会对服务器数据产生任何修改12。
GET方法的基本原理
当客户端发送一个GET请求时,它会在请求行中指定要获取的资源的URL,并在请求头中可以添加一些额外的信息,如请求的来源、接受的数据类型等。服务器在接收到GET请求后,会根据请求中的URL找到对应的资源,并将其返回给客户端1。
GET方法的使用场景
-
浏览器中访问网页:当用户在浏览器地址栏输入网址或点击链接时,浏览器会自动发送GET请求来获取网页的HTML文档13。
-
程序调用:通过编写程序发送GET请求,例如使用Python的requests库或JavaScript的fetch API等,可以获取网络上的各种资源1。
POST方法是一种HTTP请求方法,主要用于向服务器提交数据,通常用于创建新的资源或修改服务器端的数据。
POST方法的定义和用途
POST方法是一种写操作的HTTP请求,主要用于向服务器提交数据。它通常用于创建新的资源或对服务器端的数据进行修改。在RESTful API中,POST方法用于添加资源。
这里讲解一下二者的区别:GET方法是一种”获取信息“的行为。而POST方法是一种”上传数据“的行为。
现在来讲解它们的具体操作:
在百度上搜索”Redrock“,可以发现:
网站由
变为了
”https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=Redrock&fenlei=256&rsv_pq=0xb4714d8d015ecc43&rsv_t=13fazS9SpDyoZwd78%2BQjBija2kReJzlX8TVG5VFEfX9Y%2FgPM9keaLqF我们可以注意到:在原本的网址后多了一部分由 “?” 开始的内容。这是在使用 GET 方法时传递参数的方式。GET 方法通过在 URL 中添加查询字符串来传递参数,查询字符串以 “?” 开始,其中的参数名与参数值之间用 “=” 连接,多个参数之间需要用 “&” 隔开。
(注意:在下面的操作中,我们能够使用GET方法是因为浏览器默认使用GET方法传递参数。事实上,问号是用于开始添加查询参数的标记。)
我们要用GET方法向上面的解题网站传递”flag"的参数,只需要把
改成
http://127.0.0.58097/?flag=try
(这里flag可以是任何值,只要体现出你确实向网站内传递了参数即可。)
网站会反馈给我们如下界面:
这便是flag的上半部分。
接下来,我们需要用POST方法再传递一次flag参数。
一般的方法是:使用第三方request库或者Flask框架来传递。但在浏览器中,我们有更快的方法。
我们下载火狐浏览器(谷歌浏览器亦可),在“更多”中找到”扩展与主题“。再在其中搜索”Hackbar“组件。它可以很方便地在浏览器内直接向网站使用POST方法传递参数.
在网站内点击F12,调出开发者工具。在工具栏里找到”Hackbar“,点击”Load URL“,组件会自动上传你所在的网址。然后选择”Post data“。
在下方的输入框内输入”flag=try“(同上,任意值均可),然后点击”Exacute“,得到如下界面:
这就是flag的后半段。
因此,完整的flag就是:
Redrock{you_can_Got_And_P0st}
学到了什么?
-
GET和POST方法是什么
-
如何方便快捷地使用这两种方法
-
火狐浏览器插件“Hackbar”的基本使用方法
可以预见的是,在未来的学习路上,我们永远会遇到新的知识,走错路,踩了坑的情况也并不会少见。
所以直接润了行不行{^_^}