polarctf session文件包含Session文件包含漏洞当可以获取session文件路径并且session文件的内容可控的的时候,就可以通过包含session文件进行攻击
利用条件session文件包含的利用条件有两个:
Session的存储位置可以获取
Session的内容可控
一般通过以下两种方式获取session的存储位置:
通过phpinfo的信息获取session的存储位置。通过phpinfo的信息获取session.save_path
通过猜测默认的session存储位置进行尝试通常Linux中的Session的默认存储位置在/var/lib/php/session目录下
temp/session
1234567891011 ### 示例分析session文件包含代码如下```phpsession_start();$ctfs=$_GET['ctfs'];$_SESSION['username']=$ctfs
此代码可以通过GET型的ctfs参数传入。PHP代码将会获取的值存入到Session中。攻击者可以利 ...
php反序列化基础什么是序列化,反序列化反序列化(Deserialization) 是指将序列化后的数据(通常是字符串或二进制格式)恢复为原始数据结构(如数组、对象)。在 PHP 中,unserialize() 就是用来执行反序列化的,它可以把 serialize() 处理过的字符串还原成原始的 PHP 变量或对象。
示例:
12345678910<?php// 序列化对象$data = ['name' => 'Alice', 'age' => 25];$serialized = serialize($data);echo "序列化后的数据: " . $serialized . "\n";// 反序列化$unserialized = unserialize($serialized);print_r($unserialized);?>
输出:
123456序列化后的数据: a:2:{s:4:"name";s:5:"Alic ...
RCE(任意命令执行)绕过操作系统连接符分号;:多个命令无论对错顺序执行
&&:前面命令执行不成功后面命令无法执行
&:用于依次执行多个命令,无论前一个命令是否成功。
管道输出符|:前面命令的输出作为后面命令的输入,把前面命令的结果作为后面命令的参数;前面后面的命令都执行,但是只显示后面的命令执行结果。
||:前面的命令执行成功,则后面的命令不会执行;前面的命令执行失败,则后面的命令执行
程序执行函数os.system()
subprocess.Popen()
exec()示例exec(“cat /flag”)
exec(string $command, array &$output = null, int &$result_code = null): string|false
exec() 执行 command 参数所指定的命令。
如果提供了 output 参数, 那么会用命令执行的输出填充此数组, 每行输出填充数组中的一个元素。
1exec()` 函数用于执行 shell 命令,但不会直接输出执行结果,它的返回值 ...
Linux常见文件和目录操作命令cat >1.txt
**cat**:原本用于显示文件内容,但在这里用于接收输入。
>:重定向符号,表示将输出(这里是键盘输入的内容)写入到后面的文件(example.txt)。如果文件已存在,会覆盖原有内容;如果文件不存在,会新建文件。
流程:
输入命令后,光标会等待你键入内容。
输入任意文本(按回车换行)。
结束时按 Ctrl+D(Linux/Mac)或 Ctrl+Z(Windows),内容会保存到 example.txt。
touch创建新文件/mkdir文件夹/chmod变更权限1touch [file] 创建新的空文件
1chmod 变更文件或目录的权限
mkdir seora创建文件夹
cd打开文件夹cd seora 打开文件夹
1nano / vim / emacs 字符终端的文本编辑器
cp复制文件内容cp 用于复制文件或目录 cp1.txt /seora
1cp [file1] [file2] 用来将一个或多个源文件或者目录复制 ...
.git.git是 Git 版本控制系统使用的隐藏文件夹,它包含了项目的完整版本历史记录、提交记录、分支信息等
一定要在GitHack目录下
1python2 GitHack.py http://challenge-efb678740fb6553d.sandbox.ctfhub.com:10800/.git
备份文件泄露index.php.swp.swp 文件是 Vim 编辑器在编辑文件时生成的****临时文件****,用于保存编辑过程中的中间状态。
如果编辑过程中 Vim 意外退出(如由于网络中断、服务器重启等原因),.swp 文件可能会保留下来。
如果这个文件被部署到生产环境中,并且包含了敏感信息(如数据库密码、API 密钥等),就可能导致信息泄露。
index.php~index.php~ 文件通常是某些文本编辑器(如 nano 或某些版本的 vi/vim)在编辑文件时生成的临时备份文件。这些文件通常用于在编辑器意外退出或崩溃时恢复未保存的更改。然而,如果这些临时文件被意外地保留在公开可访问的服务器上,就可能导致信息泄露,尤其是当它们包含敏感信息时。
index. ...
CTFhub前端验证 MIME绕过前端验证前端验证是在用户提交数据之前,在浏览器端检查输入数据是否符合要求
题目有限制只能上传特定后缀,所以我们在直接修改一句话木马的后缀为png,上传后bp抓包再改为php。这样就饶过了前端验证但是php依旧能在服务器端执行。
上传成功,获得文件上传路径
然后就是连接蚁剑
MIME绕过什么是 MIME 类型?
MIME是一种 标识文件类型的方式
当上传文件时,浏览器会向服务器发送 文件的 MIME 类型,例如:
1Content-Type: image/png
这样,服务器就能知道 上传的是 PNG 图片。
MIME 绕过的核心原理
正常的文件上传逻辑
前端检查 MIME 类型
123javascript复制编辑if(file.type !== "image/png") { alert("只允许上传 PNG 图片!");}
绕过方式:修改 file.type,或直接禁用 JS 校验。
后端检查 MIME 类型
123if($_FILES['file'][& ...
CTFhub文件头检查 00截断文件头检查绕过原理及方法所有的文件都是以二进制的形式进行存储的,本质上没有差别。在每一个文件的开头实际上都有一片区域来显示这个文件的实际用法,这就是文件头标志。
常见的文件头:注意:下面的文件头的格式是16进制的格式:
GIF:47 49 46 38 39 61png:89 50 4E 47 0D 0A 1A 0AJPG:FF D8 FF E0 00 10 4A 46 49 46
文件头检查绕过方法:
第一种: 把上面的文件头添加到我们的一句话木马内容最前面,达到绕过文件头检测的目的。
方法在:【文件上传绕过】——后端检测_文件头检测漏洞_【中核检测】【文件】-CSDN博客
第二种:随便找一张图片,用记事本打开然后在后面拼接一句话木马。
但是这张图片要尽量小一点,不知道为什么同样的操作,比较大的图片一直成功不了。
文件头检查wp
拼接
用010查看可以发现拼接成功了
然后更改后缀,之后的步骤都一样
00截断原理在PHP 5.2版本中,存在一个严重的漏洞,即00截断漏洞。该漏洞允许恶意用户通过URL参数输入*%00*,导致后续字符被自动忽略,从而绕 ...
CTFhub 文件上传无限制
直接上传一句话木马php文件实现任意文件读取
蚁剑连接 查看目录
找到flag
CTFhub+NSSCTFSQL注入整数型 查询列数-order by 语句 要注意的是联合查询前后两条 select 语句查询数据的列数是相等的,故需要使用 order by 语句来判断注 入点sql语句查询的列数是多少
UNION 联合查询数据库信息:确认完显示位可以利用显示位查询当前数据库名:回显为sqli
关于将id值设置为0或者负数的解释;
由于我们的语句是插入到原有语句后面,这样就会出现两个SQL语句同时执行,由于SQL查询默认返回一 行数据,所以我们插入的第二行语句的结果就不会被返回,只会返回原有的SQL语句的查询内容。 要让数据库查询我们插入的语句,需要让原有SQL语句查询为空。
接着查询表名
select group_concat(table_name) from information_schema.tables where table_schema=’sqli’; 加引号
查列名
select group_concat(column_name) from information_schema.columns where table_name ...
web题目wp1.会赢吗
先查看网页源代码
在body部分找到flag第一部分和第二部分地址

进入第二部分
提示在控制台进行应用依旧查看网页源代码
可见传一个参数(课程名)调用函数revealFlag课程名
在控制台输入命令
revealFlag(’4cqu1siti0n‘)得到第二部分flag 和进入第三部分的网址
进入第三部分
依旧是查看网页源代码 复制主体部分给ai
可见我们要把状态改为解封然后点击解封按钮
把前端代
码修改一下保存
得到第三部分flag和第四部分地址
进入第四部分
查看网页源代码发现 noscript代码部分执行后会显示出flag搜索后得知可以在网页中禁用JavaScript更改后刷新
得到最后 ...