xyctf(write up)

2024-05-07 05:44
文章标签 write xyctf

本文主要是介绍xyctf(write up),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ezhttp

因为是一道http的题,前端代码没有什么有效信息,但提示说密码在某个地方,我们用robots建立一个robots.txt文件来看有哪个文件可以访问

补充知识:http请求中via字段表示从哪个网址的服务器代理而来,user-agent表示浏览器,refer表示从哪个网址过来,host头X-Forwarded-For,Client-Ip后加127.0.0.1可让后端认为是本地访问,

warm up

补充知识:在 PHP 中,extract() 函数用于将数组中的键值对转换为变量和值。它的作用是将数组中的键作为变量名,对应的值作为变量的值,从而在当前的符号表中创建变量。

例如,如果我们有一个数组 $data = ['name' => 'Alice', 'age' => 25];,使用 extract($data); 之后,就会在当前符号表中创建两个变量 $name 和 $age,分别对应数组中的值。

需要注意的是,extract() 函数可能会导致命名冲突或者覆盖已有的变量,因此在使用时需要谨慎考虑。

首先很明显是一个代码审计的问题,我们第一关要做md5绕过相关知识(在此关中extract()函数用于将传进去的参数,作为变量储存起来,使其之后可以随意使用)

首先两个参数要加密前不相同加密后相同,我们此时可以用0e绕过,随便选两个加密后都是0

e开头的字符串

val1=240610708&val2=QNKCDZO

第二个要使加密前后字符串相同,找加密前是0e开头,加密后同样是0e开头的字符串

md5=0e215962017

发现那个加密后也是0e开头的于是我们就用上一次的

最终构建出payload

?val1=240610708&val2=QNKCDZO&md5=0e215962017&XY=0e215962017&XYCTF=0e215962017

获得第二关的文件

利用preg_replace()的漏洞进行命令执行

最终payload ?a=/test/e&b=system(cat /flag)&c=test

这篇关于xyctf(write up)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966481

相关文章

Unstructured cannot write mode RGBA as JPEG 错误解决

Unstructured cannot write mode RGBA as JPEG 错误解决 0. 错误详细1. 解决方法 0. 错误详细 Image Extraction Error: Skipping the failed imageTraceback (most recent call last):File "/root/miniconda3/envs/learn-y

70-java write类应用场景

在Java中,我们可以使用java.io包中的FileWriter和BufferedWriter类来写入数据到文件。以下是一个简单的例子,展示了如何使用FileWriter和BufferedWriter来写入数据到文件: import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;pub

SylixOS write 0 字节问题

1 问题描述 在移植中间件过程中,在SylixOS调用write函数写入0字节的数据到文件中时,会导致对应的中间件测试用例失败,失败的原因是文件系统中的write函数在Linux系统和SylixOS有区别,两种实现的差别如下。 2 write函数的实现机制 2.1 SylixOS实现机制 在SylixOS下通过write 函数写数据到普通文件中时,第一步会判断写入的数据是否为0,如果是0直

Java 入门指南:Java 并发编程 —— Copy-On-Write 写时复制技术

文章目录 Copy-On-Write使用场景特点缺点CopyOnWrite 和 读写锁相同点之处不同之处 CopyOnWriteArrayList适用场景主要特性方法构造方法CopyOnWriteArrayList 使用示例 CopyOnWriteArraySet适用场景主要特性方法构造方法使用注意事项CopyOnWriteArraySet 使用示例 Copy-On-Writ

df.write.csv

# 将 DataFrame 写入 CSV 文件# 拆分 ArrayType 列df_exploded = df.withColumn("interests", explode("interests"))print("\nExploded DataFrame:")df_exploded.show(truncate=False)# 写入 CSV 文件df_exploded.write.csv

redis被攻击redis READONLY You can‘t write against a read only slave.

redis 日志路径 /var/log/redis 拿下来后发现有这种错误 Operation now in progress 可能是网络断开导致, 查找redis whereis redis 修改 vim /etc/redis.conf 大概在300行 下面代码yes改no slave-read-only no 重启redis sudo systemctl restart

Lua io.write(“\27[2J”)

Programming in Lua 第六章 More About Function 开头有一个例子。它在终端屏幕上输出一个用*号组成的正弦曲线: function eraseTerminal()io.write("\27[2J")end-- writes an `*' at column `x' , row `y'function mark (x,y)io.write(stri

python write和writelines的区别

python write和writelines的区别 file.write(str)的参数是一个字符串,就是你要写入文件的内容.file.writelines(sequence)的参数是序列,比如列表,它会迭代帮你写入文件。

write your own xx-starter【1】

在springboot 中,我们加入例如mybatis-spring-boot-starter,接着在application.yml配置数据库信息,就可以使用mybatis了,无需我们手动进行配置 这就是springboot威力,那么他是如何实现的呢?简单来说类似于java SPI机制, 通过在启动容器的某个阶段,加载某个路径下特殊文件中的类来实现自动配置 实际上这个文件就是位于META-IN

UNIX网络编程——epoll 的accept , read, write

在一个非阻塞的socket上调用read/write函数,返回EAGAIN或者EWOULDBLOCK(注:EAGAIN就是EWOULDBLOCK)。        从字面上看,意思是:  EAGAIN: 再试一次 EWOULDBLOCK:如果这是一个阻塞socket, 操作将被block perror输出:Resource temporarily unavailable 总结: