web服务
2.在gallery.html页面发现有一个元素没有加载
线索页面
3.通过开发者模式可以确定,未加载的元素是images/5.png
问题元素
4.下载该元素并查看,可以发现Giovanni帐户和一个未完结的密码,它缺少了一个字符
帐户密码提示
5.利用脚本生成破译字典
for i in "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ)!@#$%^&*(":
print 'Th4C00lTheacha' +i
6.利用dirbuster对网站目录进行FUZZ,可以发现新的页面moodle,组合密码字典和帐户可以得到登录凭据 :giovanni Th4C00lTheacha#
后台登录
7.moodle框架存在一处命令注入,漏洞成因和利用详解见https://blog.ripstech.com/2018/moodle-remote-code-execution/
漏洞详解
8.登录后需要点击左侧的ALG标签然后是右上角齿轮,选择Turn editing on
Turn editing on
9.随后添加一个测试
添加测试
10.随意一个测试名称
添加测试名称
11.点击编辑按钮,进入编辑
编辑测试
12.点击添加按钮,新建一个问题
新建问题
13.选择计算类问题添加
添加问题
14.随意添加问题名称和备注后,表达式部分填写poc:/{x}{a/
$_GET[0]
/(1)//}{a/$_GET[0]
/({x})//}/ Grade选择100%poc
15.保存后在随后的页面点击next page,随后在url最后添加反弹命令
反弹shell
16.在shell中可以查看网页内容,并提取数据库中的帐户,其中Giovannibak密码能够破解,利用该密码su成为giovanni帐户
帐户信息
17.在giovanni帐户的home目录下发现work目录,在/usr/bin目录下发现一个特权脚本backup.sh
特权脚本
18.这个是root帐户创建,具备最到权限,普通用户可以运行。它压缩/home/giovanni/work/courses目录中的所有东西,再把压缩包解压至/home/giovanni/work/tmp路径下。利用这个特性,我们rm -r 删除原始的courses目录,并创建root目录的软连接即ln -s /root courses。这样脚本会压缩root文件夹并解压相关内容到tmp
19.在解压目录中拿下root.txt
root flag