当前位置: 首页 > article >正文

[SWPUCTF 2021 新生赛]web方向(七到11题) 解题思路,实操解析,解题软件使用,解题方法教程

   题目来源

NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。icon-default.png?t=O83Ahttps://www.nssctf.cn/problem

[SWPUCTF 2021 新生赛]caidao

题目如下

看到这个后根据题目他给了一个wllm提供传参,并且还有是一个POST请求,eval() 函数,这里大家注意一下如果是用GET请求可以直接在浏览器上面进行传参,POST一般是使用burpsuite抓包或者是Hackbar进行传参,Hackbar在火狐浏览器拓展里面安装,搜索然后安装拓展就可以用。

开始讲一下解题方法:

在Hackbar上传参,右键检查然后点击Hackbaer接着点击Load URL,选择Psta data,如下图所示:

接着尝试wllm=system("ls /");

wllm=system("cat /flag");

这些常见的查找方式,然后这里记得右键检查一下源代码,可能不会显示在屏幕上,如图所示

 另外一种解法就是使用菜刀或者是蚁剑。这里我给蚁剑的链接。

https://download.csdn.net/download/m0_73951999/89724306

[SWPUCTF 2021 新生赛]Do_you_know_http 

解题思路如下:

这题涉及到XXF伪造大家往下看了解一下什么是XXF:

XXF(Cross-Site Frame)伪造是一种网络攻击技术,利用了浏览器的同源策略和框架嵌套的特性。以下是XXF的原理及常见方法的详细说明:

XXF的原理

  1. 同源策略

    • 浏览器的同源策略限制了不同源(域名、协议、端口)之间的交互。这意味着一个网站的脚本不能访问另一个网站的内容。
  2. 框架嵌套

    • 攻击者可以使用 <iframe> 标签将受害者网站嵌入到自己的网页中。用户在访问攻击者网站时,实际上也在与受害者网站进行交互。
  3. 伪造请求

    • 攻击者可以通过JavaScript在受害者网站的上下文中发送请求,伪装成合法用户的操作。这种请求可以是表单提交、链接点击等。
  4. 利用用户身份

    • 如果用户已经在受害者网站上登录,攻击者可以利用用户的身份执行未授权的操作,如转账、修改设置等。

常见的XXF攻击方法

  1. 点击劫持(Clickjacking)

    • 攻击者在自己的网页中嵌入受害者网站的内容,并通过透明层覆盖在上面,诱使用户点击看似无害的按钮或链接,实际上却是在执行攻击者的意图。
  2. 伪造表单提交

    • 攻击者可以利用JavaScript构造表单,并在受害者网站的上下文中提交,伪造用户的操作。例如,转账、修改账户信息等。
  3. 恶意重定向

    • 攻击者可以通过框架嵌套,诱导用户访问恶意网站,或者在用户不知情的情况下重定向到其他页面。
  4. 信息泄露

    • 通过嵌入受害者网站,攻击者可以尝试获取用户的敏感信息,例如Cookies、会话令牌等。
  5. 利用第三方服务

    • 攻击者可以利用一些第三方服务(如社交媒体、支付平台等)进行XXF攻击,伪造用户的操作。

防御措施

  • X-Frame-Options:设置HTTP头部为DENYSAMEORIGIN,防止网页被嵌入到其他网站的框架中。
  • Content Security Policy (CSP):通过设置CSP,限制可以加载的资源,防止恶意脚本的执行。
  • SameSite Cookie:通过设置Cookie的SameSite属性,限制跨站请求的发送。

从本地访问头部字段的有这些:

Client-IP:127.0.0.1
Forwarded-For-Ip:127.0.0.1
Forwarded-For:127.0.0.1
Forwarded-For:localhost
Forwarded:127.0.0.1
Forwarded:localhost
True-Client-IP:127.0.0.1
X-Client-IP:127.0.0.1
X-Custom-IP-Authorization:127.0.0.1
X-Forward-For:127.0.0.1
X-Forward:127.0.0.1
X-Forward:localhost
X-Forwarded-By:127.0.0.1
X-Forwarded-By:localhost
X-Forwarded-For-Original:127.0.0.1
X-Forwarded-For-Original:localhost
X-Forwarded-For:127.0.0.1
X-Forwarded-For:localhost
X-Forwarded-Server:127.0.0.1
X-Forwarded-Server:localhost
X-Forwarded:127.0.0.1
X-Forwarded:localhost
X-Forwared-Host:127.0.0.1
X-Forwared-Host:localhost
X-Host:127.0.0.1
X-Host:localhost
X-HTTP-Host-Override:127.0.0.1
X-Originating-IP:127.0.0.1
X-Real-IP:127.0.0.1
X-Remote-Addr:127.0.0.1
X-Remote-Addr:localhost
X-Remote-IP:127.0.0.1

题目如下

题目首页提示,使用WLLM浏览器访问。故使用,bp抓包更改。

这里要在火狐加个拓展FoxyProxy在拓展下载后

FoxyProxy

 打开到Proxies,点击添加

 然后跟我这样子配置就行,接着点击Save。

这里我附上资源:Burp Suitev2021.9.1的资源:

https://download.csdn.net/download/m0_73951999/89730413icon-default.png?t=O83Ahttps://download.csdn.net/download/m0_73951999/89730413

Burp Suite Pro 是一款强大的网络应用安全测试工具,广泛用于安全专业人员和渗透测试人员。它提供了一系列用于测试网络应用的功能,包括:
1. 代理:拦截和修改 HTTP/S 请求和响应。
2. 扫描器:自动扫描网络应用中的漏洞。
3. 攻击者:自动化攻击以识别 SQL 注入和跨站脚本(XSS)等漏洞。
4. 重发器:手动修改和重新发送请求以测试应用程序行为。
5. 序列器:分析会话令牌的随机性。
6. 解码器:以各种格式解码和编码数据。
7. 比较器:比较两段数据以识别差异。
Burp Suite Pro 以其全面的工具集和用户友好的界面而闻名,是进行网络应用安全评估的必备工具。

打开后点击proxy点击intercept is off变为intercept is off

 接着打开FoxyProxy点击第三个8080端口,然后对要抓包的浏览器就行ctrl+r刷新抓包

 接着回到burp suitev查看抓包,接着邮件点击Send to Repeater或者是Ctrl+R之后repeater会变红

点击进去。

 然后根据题目将use改为WLLM如下所示,紧接着从location可以看到下一个文件的位置。在搜索栏中将hello.php改为a.php得到下面这些。

"You can only read this at local!" 的翻译是:“您只能在本地读取此内容!”那么我们要使用XXF伪装成本地去运行,本地访问头部字段中在左边第12行:写入头部字段点击Send。

 发现是secrettt.php,然后把a.php改成secrettt.php即可得出flag

 补充一下:

Host:指定目标服务器的域名或IP地址。

User-Agent:发送请求的用户代理(浏览器、爬虫等)的标识信息。

Accept:指定客户端能够接受的响应内容类型。

Content-Type:在请求中指定发送的实体主体的媒体类型。

Content-Length:指定请求或响应中的实体主体长度(字节)。

Authorization:用于进行身份验证的凭证信息,如基本认证或Bearer令牌。

Cookie:包含客户端发送到服务器的cookie信息。

Set-Cookie:服务器在响应中设置cookie信息。

Cache-Control:控制缓存行为的指令,例如no-cache、max-age等。

Referer:指定当前请求的来源页面的URL。

Location:在重定向响应中指定新的URL。

ETag:指定实体的唯一标识符,用于缓存验证。

X-Forwarded-FOR: 识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段

Server:响应中指定服务器的软件信息

 [SWPUCTF 2021 新生赛]babyrce

 打开题目后如下所示

 审计一下代码如下:

  1. 错误报告:使用 error_reporting(0); 来禁止错误报告,这意味着任何错误或警告都不会被显示。

  2. 内容类型头:设置响应的内容类型为 HTML,并使用 UTF-8 字符编码。

  3. 高亮显示文件:使用 highlight_file(__FILE__); 函数以语法高亮的方式显示当前文件的源代码。

  4. Cookie 检查:代码检查名为 admin 的 Cookie 是否被设置为 1。如果是,它会包含位于 ../next.php 的另一个 PHP 文件。如果 Cookie 没有设置或不等于 1,则输出消息 "小饼干最好吃啦!"。

很显然做这道题我们已知变量名admin并且他的值是弱相关的,这里再补充一个知识Cookie

Web Cookie(网络 Cookie)是一种小型数据文件,存储在用户的浏览器中,用于记录用户与网站之间的交互信息。Cookie 主要用于以下几个方面:

  1. 会话管理:Cookie 可以帮助网站识别用户的会话状态,例如用户是否已登录。通过存储会话 ID,网站可以在用户浏览不同页面时保持用户的登录状态。

  2. 个性化设置:网站可以使用 Cookie 存储用户的偏好设置,例如语言选择、主题样式等,以便在用户下次访问时提供个性化的体验。

  3. 跟踪和分析:Cookie 可以用于跟踪用户在网站上的行为,帮助网站分析用户的访问模式和偏好,从而优化网站内容和广告投放。

Cookie 的基本结构

一个 Cookie 通常包含以下几个部分:

名称:Cookie 的名称。

:与名称相关联的数据。

过期时间:Cookie 的有效期,过期后 Cookie 将被删除。

路径:指定 Cookie 的有效路径,只有在该路径下的请求才会发送该 Cookie。

:指定 Cookie 的有效域名,只有在该域名下的请求才会发送该 Cookie。

安全标志:指示 Cookie 是否仅在 HTTPS 连接中发送。

接着,主做这道题还需要一个拓展Hackbar,右上角...点击拓展搜索Hackbar添加拓展即可

接着如下图所示右键检查,打开Hackbar我们传一个admin的参数值

 点击发送后ctrl+r,得到rasalghul.php

 接着在搜索栏中输入rasalghul.php后

 很显然这里的参数是url但是不允许输入空格不然输出nonono。我们要想办法绕过,这里补充一下知识

空格过滤绕过:

1、大括号{}:

{cat,flag.php}

2、$IFS代替空格:

$IFS$9,${IFS},$IFS这三个都行

Linux下有一个特殊的环境变量叫做IFS,叫做内部字段分隔符 (internal field separator)。
?cmd=ls$IFS-I
单纯$IFS2,IFS2被bash解释器当做变量名,输不出来结果,加一个{}就固定了变量名
?cmd=ls${IFS}-l
$IFS$9后面加个$与{}类似,起截断作用,$9是当前系统shell进程第九个参数持有者始终为空字符串。
?cmd=ls${IFS}$9-l

?url=ls$IFS/

3、重定向字符<,<>
4、%09绕过(相当于Tab键)

如下所示

发现有一个flllllaaaaaaggggggg,在搜索栏中输入url=cat%09/flllllaaaaaaggggggg即可得出flag

[SWPUCTF 2021 新生赛]ez_unserialize

robots.txt

知识点:robots.txt、php反序列化漏洞

进入环境,没有给出任何提示,不知道题目要求干什么,使用后台扫描工具(御剑后台扫描、dirmap等)可以看到存在一个robots.txt;

关于robots.txt,robots协议也称爬虫协议、爬虫规则等,是指网站可建立一个robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,而搜索引擎则通过读取robots.txt文件来识别这个页面是否允许被抓取。 但是,这个robots协议不是防火墙,也没有强制执行力,搜索引擎完全可以忽视robots.txt文件去抓取网页的快照。 如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。

 发现/c145s.php

 构造对象 因为绕过只需要admin设置为admin 以及passwd设置为ctf

补充一下:反序列化题。我们观察wllm类里面的__destruct方法有一句话:$this->admin=="admin"&&$this->passwd=="ctf",满足就发flag。。你个老6,$admin$passwd在类里面被固定了,不能控制啊。。。睁大眼睛一看,程序接收一个变量名为p的GET参数,且对其进行反序列化操作。。。反手构造一串:O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";},这串被反序列化后,刚好是能满足条件的。。。

<?php
class wllm{
	public $admin="admin";
	public $passwd="ctf";
}
$a=new wllm();
$b=serialize($a);
echo $b;
?>

 运行后得到

O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}

 将值写入后得到falg

http://node4.anna.nssctf.cn:28960//cl45s.php?p=O:4:%22wllm%22:2:{s:5:%22admin%22;s:5:%22admin%22;s:6:%22passwd%22;s:3:%22ctf%22;}


http://www.kler.cn/a/377806.html

相关文章:

  • 攻防世界 robots
  • P7——pytorch马铃薯病害识别
  • 基于微信小程序的校园访客登记系统
  • 聊天社交管理系统 Java 源码,构建个性化社交空间
  • 在 Java 项目中集成和使用 dl4j 实现通过扫描图片识别快递单信息
  • lxml提取某个外层标签里的所有文本
  • 科普 | 子母钟系统是什么?网络时钟同步的重要性?
  • 红黑树代码详解
  • 【LuatOS】Lua与LuatOS中的Math.randomseed
  • word mathml 创建粗体字母快捷键
  • 【C】指针的基本知识点
  • Linux中SPI
  • 重学SpringBoot3-整合 Elasticsearch 8.x (一)客户端方式
  • 使用 Logback 的最佳实践:`logback.xml` 与 `logback-spring.xml` 的区别与用法
  • 力扣题解(大礼包)
  • yarn 下载安装、下载依赖、通过 vscode 运行服务(Windows11)
  • 对于自带缓存的对象的注意点
  • 8. 数据结构——邻接表、邻接矩阵的基本操作
  • Elasticsearch Search Template 搜索模板
  • 代码随想录算法训练营第十五天| 654.最大二叉树 、617.合并二叉树 、700.二叉搜索树中的搜索、98.验证二叉搜索树
  • AcWing 320 能量项链 状态压缩dp
  • 【C++刷题】力扣-#566-重塑矩阵
  • 前端八股文第四篇
  • WorkFlow源码剖析——Communicator之TCPServer(上)
  • Linux:编辑器Vim和Makefile
  • ResTful风格的Url