thm.文件包含

Last updated on 6 months ago

本地文件包含 (LFI)(local file inclusion)



看报错,找路径,算上当前目录前面还有四层目录,回退四次找到根目录,进入etc/passwd,直接访问会有权限限制,可以%00绕过(本质是截断后续内容),也可以/etc/passwd/.绕过,/.就是再次访问当前路径(cd .)因为整个url最后的路径不是passwd,所以绕过了检测

双写绕过

原因是检测到../这样的路径访问并删除,但如果….//这样的话,删掉../之后又变成../了

强制目录包含

没啥好说的,就是前面的各种操作路径再加上强制需求的路径即可
假设强制要求带有thmprofile,那么
http://10.10.43.220/lab6.php?file=THM-profile/../../../../etc/os-release

远程文件包含 (RFI)(remote file inclusion)

类似文件上传漏洞
还是做的挺艰难的,这里算是又新学了一点,这里本来只能直接传文字,不能传文件,然后用python3 -m http.server开了一个本地服务器,然后http://ip/1.txt 这样就可以上传了
这个指令在win的局域网也可以用来传文件,在想要传文件的目录(比如D盘的src目录)打开powershell,python -m http.server,局域网内用户就可以直接访问下载了

目录遍历

dot-dot-slash attack
整个这么高级的名字,实际就是cd ..

http://webapp.thm/get.php?file=abc.pdf 这是正常访问时的路径,但可以再abc.pdf前加上 ../

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 小演练

折磨了快半个多小时,不小了

```php
<?PHP
echo system('hostname'); //中间不是反引号,是单引号!hostname类似whoami
?>

//eval应该也可以,没试
<?php
$user_input = $_GET['input']; // 假设用户输入
$command = "echo system('hostname');"; // 构造要执行的命令
eval($command); // 使用 eval() 执行命令
?>

尽量用%00,这个成功率高点,注意报错是什么,有些时候只能post,有些时候只能get,尽量多试几次,还有就是cookie里有身份验证


thm.文件包含
https://blog.yblue.top/2023/08/22/thm-文件包含/
Posted on
August 22, 2023
Licensed under