admin 发布的文章

新版本默认已经不允许导入导出文件了。
想查看一些敏感的变量信息,不一定通过show variable来查看。因为注入点是不支持show的,只能select。
这时候可以这样:

MySQL [(none)]> select @@pid_file;
+-----------------------+
| @@pid_file            |
+-----------------------+
| /data/mysql/mysql.pid |
+-----------------------+
1 row in set (0.00 sec)

或者

MySQL [(none)]> select @@slow_query_log_file;
+----------------------------+
| @@slow_query_log_file      |
+----------------------------+
| /data/mysql/mysql-slow.log |
+----------------------------+
1 row in set (0.00 sec)

其实就是把show variables;结果中的key前面加上@@,然后再select。
能知道目标的一些敏感信息,比如日志路径,主目录,常见目录等等

某超大型数据库,从以前的VM里面拷出来到现在的电脑上。只有数据文条件FRM MYD MYI。庆幸的是,Myisam,不是INNODB。
本以为很容易就恢复成功了。结果一波三折。
1,ERROR 1017 (HY000): Can't find file: 'tablename' (errno: 2)
直接拷贝数据文件,提示这个错误。
在phpMyAdmin里面查看,所有的表都是“使用中”。
修复,优化都不行。都提示这个错误。
网上搜了很多方案,都不好使。
最后找到这篇:
https://my.oschina.net/u/4319720/blog/3340748
先恢复数据库的建表信息。
拿一个表测试了下,是没问题的。能正确的恢复出来。
然后把原来表的MYD,MYI拷过去。
再次修复,提示:
correct key file for table
这次使用
REPAIR TABLE tablename USE_FRM;
成功搞定。数据记录出来了。。

后来,我发现在原来的数据库目录,直接
mv .myd .MYD
chmod 0640 *
也可以恢复数据。。
气死我了

https://github.com/kele2016/wdpassport-utils
解密脚本。从别的地方fork来的。怕别人的被删。自己留一份。
先安装依赖:

sudo pip3 install --user git+https://github.com/crypto-universe/py_sg

先看自己当前磁盘情况fdisk -l或者df -h都行。反正移动硬盘一般是最后一块盘。
我当前主机就1个硬盘sda,所以移动硬盘就是sdb

解密命令:

sudo python3  wdpassport-utils.py --device /dev/sdb -u

解密之后,拷到主机里。cp看不到进度这里直接用rsync了。
也有人建议直接用rsync代替cp,"alias cp="rsync -ah --progress""

rsync -ah --progress source destination

当然,如果需要递归拷贝,要加上-r