NSS题目练习9

[极客大挑战 2020]welcome

界面打开后一片空白,查看题目描述,翻译过来是

1.除了GET请求方法,还有一种常见的请求方法… 
2.学习一些关于sha1和array的知识。 
3.更仔细地检查phpinfo,你会发现标志在哪里。

补充:

sha1:不能加密数组

根据提示1知道是post传参,抓包更改,在重发器中发现有回显,放包后得到php代码

代码要求用POST方式传入参数roam1roam2的值,俩变量的值不能相等,但sha1()加密后的值相等

发现找不到flag,这里去看了一下wp,发现是要找到flag所在文件夹

最后在请求头中找到flag

[WUSTCTF 2020]CV Maker

注册后发现上传界面

上传jpg文件,回显不是图像

尝试文件头欺骗,发现可以回显路径

访问得到空白界面,蚁剑测试连接成功

但打开发现都是空的,这里也不知道是怎么回事了

[SWPUCTF 2023 秋季新生赛]一键连接!

打开是一串php代码,要求用get传参,都是md5强比较,提示使用data协议,并且sha1要相等

绕过md5

绕过sha1

告诉我用蚁剑连接

测试连接成功

在根目录下找到flag

[NISACTF 2022]easyssrf

看见题目类型描述,这里需要去了解一下SSRF

SSRF

1.漏洞原理

ssrf——服务器端请求伪造,由攻击者构造请求,服务器发起请求。可以利用一个网络请求的服务,当跳板进行攻击,攻击者在访问A时,利用A的特定功能构造特殊payload,由A发起对内部网络中系统B(内网隔离,外部不可访问)的请求,从而获取敏感信息。此时A被作为中间人(跳板)进行利用

2.产生与可利用协议

在PHP中的curl(),file_get_contents(),fsockopen()等函数是几个主要产生ssrf漏洞的函数

file_get_contents():将整个文件或一个url所指向的文件读入一个字符串中。

readfile():输出一个文件的内容。

fsockopen():打开一个网络连接或者一个Unix 套接字连接。

curl_exec():初始化一个新的会话,返回一个cURL句柄,供curl_setopt(),curl_exec()和curl_close() 函数使用。

fopen():打开一个文件文件或者 URL。

file_get_contents() 函数将整个文件或一个url所指向的文件读入一个字符串中,并展示给用户,我们构造类似ssrf.php?url=../../../../../etc/passwd的paylaod即可读取服务器本地的任意文件。readfile()函数与file_get_contents()函数相似。

常用URL伪协议

file:///  -- 本地文件传输协议,主要用于访问本地计算机中的文件(file:///etc/passwd
)
dict://   -- 字典服务器协议,dict是基于查询相应的TCP协议,服务器监听端口2628
sftp://   -- SSH文件传输协议(SSH File Transfer Protocol),或安全文件传输协议(Secure File Transfer Protocol)
ldap://   -- 轻量级目录访问协议。它是IP网络上的一种用于管理和访问分布式目录信息服务的应用程序协议
tftp://   -- 基于lockstep机制的文件传输协议,允许客户端从远程主机获取文件或将文件上传至远程主机
gopher:// -- 互联网上使用的分布型的文件搜集获取网络协议,出现在http协议之前

3.漏洞利用方式

页面ssrf.php实现的功能是获取GET参数URL,然后将URL的内容返回网页上

CTF SSRF 漏洞从0到1 - FreeBuf网络安全行业门户

构造payload

file:///etc/password

发现不在flag.php文件里

file:///flag

尝试题目给的提示

file:///fl4g

直接访问后得到php代码,大致意思是关闭报错,get传参file

补充:

stristr函数,应该是防止通过file变量进行file协议读取,过滤file命令

strstr,stristr,strops的区别:
strstr 区别大小写,从字符开始找如果有返回true否则就返回false
stristr 字符不区别大小写,从字符开始找如果有返回true否则就返回false
strpos 区别大小写strpos查找成功后则是返回的是位置。因为位置有可能是0,所以判断查找失败使用===false更合适。

题目描述中有伪协议,构造payload,得到base64编码

得到flag

[NISACTF 2022]checkin

题目打开是一串php代码,大致意思是关闭报错,用get传参

传了没什么反应

有点奇怪,选中前面的后面会自动选上

鼠标扫:扫前面有后面代码同步。

结论:源码中有特殊unicode字符的存在

没什么思路,点了提示

用010打开并切换16进制

将需要传参部分的16进制编码复制下来(选中后点编辑,复制为),去掉空格,加上%

最终得到的payload为

ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6%55%67%65%69%77%6F%E2%81%A9%E2%81%A6%63%75%69%73%68%69%79%75%61%6E=%E2%80%AE%E2%81%A6%20%46%6C%61%67%21%E2%81%A9%E2%81%A6%4E%31%53%41%43%54%46

得到flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/348425.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MicroPython 环境下使用 ESP32 连接百度 AI 大模型

前言 在物联网领域,ESP32 由于其丰富的功能和低功耗性能成为了一种流行的选择。结合 MicroPython,它为开发者提供了一个高效的开发环量,让 Python 程序员也能轻松介入到嵌入式系统和 IoT 应用的开发之中。本文将介绍如何利用这些技术&#x…

基于redis的分布式锁

一、redis分布式锁基本信息 1.详细讲解: Redis 分布式锁是一种用于控制分布式系统中多个进程对共享资源的并发访问的机制。通过 Redis 的原子操作和过期时间功能,可以实现一个简单而有效的分布式锁。接下来,我们将详细介绍其工作原理、基本…

引入tinyMCE富文本框在vue3中的使用

实现效果: 官网地址:TinyMCE 7 Documentation | TinyMCE Documentation 1.下载依赖(我使用的版本是5.0 目前最新版本到7了) pnpm/npm install tinymce5.0.0 -S pnpm/npm install tinymce/tinymce-vue -S 2.在public文件夹下…

模拟电子之电子管

如果要实现一个放大器的功能,需要一个固定的放大倍数(Gain),这也就是说输出信号应该是跟随输入信号变化而变化,换句话说输出信号应该要受到输入信号的控制。 在电子学中使用的最多的两个物理量就是电压和电流&#xf…

Java的核心类库

引言 在Java编程中,熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能,可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容,并通过图表和表格进行总结与示范。 字符…

java1.8运行arthas-boot.jar运行报错解决

报错内容 输入java -jar arthas-boot.jar,后报错。 [INFO] JAVA_HOME: D:\developing\jdk\jre1.8 [INFO] arthas-boot version: 3.7.2 [INFO] Can not find java process. Try to run jps command lists the instrumented Java HotSpot VMs on the target system.…

IPv6 ND 协议功能概述

ND 协议功能概述 ND(Neighbor Discovery,邻居发现)协议是 IPv6 的一个关键协议,它综合了 IPv4 中的 ARP,ICMP 路由发现和 ICMP 重定向等协议,并对它们做了改进。 作为 IPv6 的基础性协议,ND 协…

乐鑫 ESP32-C6 现身 Apple WWDC 2024 官方 Swift Demo

北京时间 6 月 11 日凌晨 1 点,苹果 2024 年全球开发者大会 (WWDC) 开幕。WWDC 是苹果公司每年举办一次的会议,旨在和全球开发者交流最新的技术和工具。大会通常分为主题演讲、技术讲座、实验室和论坛交流等板块。 苹果公司 WWDC 2024 开发者大会 在今年…

Lua解释器裁剪

本文目录 1、引言2、文件功能3、选择需要初始化的库4、结论 文章对应视频教程: 已更新。见下方 点击图片或链接访问我的B站主页~~~ Lua解释器裁剪,很简单~ 1、引言 在嵌入式中使用lua解释器,很多时候会面临资源紧张的情况。 同时&#xff0c…

Qt:QDialogButtonBox的使用

QDialogButtonBox是Qt自带的按钮箱,通过枚举QDialogButtonBox::ButtonRole可以添加Qt定义按钮,或者通过方法QDialogButtonBox::addButton添加自定义的按钮。 // 自定义按钮。 button_box_ new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonB…

Visual Studio编译fatal error C1001: 编译器中发生内部错误

项目本来是能正常编译的,但是突然出现“fatal error C1001: 编译器中发生内部错误。” 2> (编译器文件“f:\dd\vctools\compiler\utc\src\p2\main.c”,第 255 行) 2> 要解决此问题,请尝试简化或更改上面所列位置附近的程序。 2> …

网络编程2----UDP简单客户端服务器的实现

首先我们要知道传输层提供的协议主要有两种,TCP协议和UDP协议,先来介绍一下它们的区别: 1、TCP是面向连接的,UDP是无连接的。 连接的本质是双方分别保存了对方的关键信息,而面向连接并不意味着数据一定能正常传输到对…

高考志愿填报,选错了专业怎么办?

高考充满惊喜也充满遗憾,惊喜的是分数出来的时候自己可能会满意,可能会选到一个好的专业,遗憾的是自己可能分数不理想,想读的专业因分数不达标作罢。在进行专业选择时,也有可能因为父母的建议,放弃了自己最…

集合java

1.集合 ArrayList 集合和数组的优势对比: 长度可变 添加数据的时候不需要考虑索引,默认将数据添加到末尾 package com.itheima;import java.util.ArrayList;/*public boolean add(要添加的元素) | 将指定的元素追加到此集合的末尾 | | p…

gpt、llama大模型模型结构细节探索

参考: https://github.com/naklecha/llama3-from-scratch(一定要看看) https://github.com/karpathy/build-nanogpt/blob/master/play.ipynb 视频: https://www.youtube.com/watch?vl8pRSuU81PU https://tiktokenizer.vercel…

编辑并保存hosts文件

1.以管理员权限打开cmd 2.执行命令 notepad C:\Windows\System32\drivers\etc\hosts 回车后会通过记事本打开hosts文件,然后就可以编辑并保存了。

Django中使用下拉列表过滤HTML表格数据

在Django中,你可以使用下拉列表(即选择框)来过滤HTML表格中的数据。这通常涉及两个主要步骤:创建过滤表单和处理过滤逻辑。 创建过滤表单 首先,你需要创建一个表单,用于接收用户选择的过滤条件。这个表单可…

【C++高阶】C++继承学习手册:全面解析继承的各个方面

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:模板进阶 🌹🌹期待您的关注 🌹🌹 继承 📖1. 继承的概念及定义…

使用 Django 创建 App

文章目录 步骤 1:创建 Django 项目步骤 2:创建 App步骤 3:配置 App步骤 4:编写代码步骤 5:运行服务器 在 Django 中,App 是组织代码的基本单元,它可以包含模型、视图、模板等组件,帮…

LabVIEW RT在非NI硬件上的应用与分析

LabVIEW RT(实时操作系统)可运行在非NI(National Instruments)硬件上,如研华工控机,但需要满足特定硬件要求。本文从硬件要求、开发和运行差异、可靠性、稳定性、优势和成本等多角度详细分析在非NI硬件上运…