记一次ZZ的服务器维护

之前爆出的Linux内核的Meltdown漏洞想必已经非常有名了吧,于是咱服务器的提供商进行了一波内核升级(具体原理不大清楚)。

本来是非常开心的事情,毕竟安全性增加了嘛,而且咱收到了他们的Ticket,反复阅读并看了他们的恢复指南咱认为已经不会出什么解决不了的问题了(Flag在此时立下)

然后,然后就没有然后了。在5月1号的维护重启后想登录一手博客——GG,数据库连接出错。

然后咱果断发了个工单过去:

After the recent maintenance(May 1st), the program of mysql seems disappeared... I have no idea of possible reasons. Here are some logs:
=============================
$ sudo service --status-all
...
 [ - ]  mysqld
...
$ sudo update-rc.d mysqld defaults
$ sudo service --status-all
...
 [ - ]  mysqld
...
$ service mysqld start
Failed to start mysqld.service: The name org.freedesktop.PolicyKit1 was not provided by any .service files
See system logs and 'systemctl status mysqld.service' for details.
$ systemctl status mysqld.service
  mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/init.d/mysqld; generated; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-05-01 23:25:35 CST; 2 days ago
     Docs: man:systemd-sysv-generator(8)
=============================
I really need to recovery my database...Hope there's a solution for me.

I forgot the main part...
=============================
$ which mysql
mysql not found
$ which mysqld
mysqld not found
$ apt list | grep mysql
...
mha4mysql-manager/artful,artful 0.55-1 all
mha4mysql-node/artful,artful 0.54-1 all
monodoc-mysql-manual/artful,artful 6.4.3-4 all
mysql-client/artful-updates,artful-updates,artful-security,artful-security 5.7.22-0ubuntu0.17.10.1 all
mysql-client-5.7/artful-updates,artful-security 5.7.22-0ubuntu0.17.10.1 amd64
mysql-client-core-5.7/artful-updates,artful-security 5.7.22-0ubuntu0.17.10.1 amd64
mysql-common/artful,artful 5.8+1.0.2ubuntu1 all
mysql-sandbox/artful,artful 3.2.05-1 all
mysql-server/artful-updates,artful-updates,artful-security,artful-security 5.7.22-0ubuntu0.17.10.1 all
mysql-server-5.7/artful-updates,artful-security 5.7.22-0ubuntu0.17.10.1 amd64
mysql-server-core-5.7/artful-updates,artful-security 5.7.22-0ubuntu0.17.10.1 amd64
mysql-source-5.7/artful-updates,artful-security 5.7.22-0ubuntu0.17.10.1 amd64
mysql-testsuite/artful-updates,artful-updates,artful-security,artful-security 5.7.22-0ubuntu0.17.10.1 all
mysql-testsuite-5.7/artful-updates,artful-security 5.7.22-0ubuntu0.17.10.1 amd64
mysql-utilities/artful,artful 1.6.4-1 all
mysql-workbench/artful 6.3.8+dfsg-1build1 amd64
mysql-workbench-data/artful,artful 6.3.8+dfsg-1build1 all
mysqltcl/artful 3.052-2 amd64
mysqltuner/artful,artful 1.7.2-1 all
...
=============================

I've had some tries but I failed. Now it is:
=============================
$ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
$ sudo ln -s /usr/local/mysql/bin/mysqld /usr/bin
$ sudo service mysqld start
Job for mysqld.service failed because the control process exited with error code.
See "systemctl  status mysqld.service" and "journalctl  -xe" for details.
$ systemctl status mysqld.service
  mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/init.d/mysqld; generated; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2018-05-04 23:44:53 CST; 32s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 5246 ExecStart=/etc/init.d/mysqld start (code=exited, status=1/FAILURE)
=============================

这三段日志看得我真是心力交瘁…怎么会有这么奇怪的问题啊…按理来说换内核mysql也不至于被删了啊…

客服给我的建议是用这个命令查看另一堆日志sudo journalctl -xe,好吧,然后看了以后跟之前那一堆日志差不了多少。

这时候我已经快放弃了…我开始思考备份服务器然后rebuild来恢复…不过那样的话时间成本就高到不知道哪里去了

在备份完成并保存到本地之后,我脑子一抽顺手看了一下MySQL的错误日志,然后,呵呵呵…

/usr/local/mysql/bin/mysqld: File './mysql-bin.~rec~' not found (Errcode: 13 - Permission denied)
2018-05-01 23:06:08 13510 [ERROR] MYSQL_BIN_LOG::open_purge_index_file failed to open register  file.
2018-05-01 23:06:08 13510 [ERROR] MYSQL_BIN_LOG::open_index_file failed to sync the index file.
2018-05-01 23:06:08 13510 [ERROR] Aborting

2018-05-01 23:06:08 13510 [Note] Binlog end
2018-05-01 23:06:08 13510 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

看到辣个大大的Permission denied没有!什么鬼啊,权限出错,一手sudo chown -R mysql mysql过去,再次打开,恢复了

这真心是次ZZ的维护啊…

Hacking RY Teaching System

首先是一些抱怨:

辣鸡睿易到底辣鸡在哪

睿易这家公司,不是我说,是真的就是辣鸡公司。开发的这个 PAD教学 体验极差。以下列出一些问题:

  1. 优化差:学校花了重金买了高性能服务器用作资源服务器,虽然兼职在做学校办公平台、网站等的服务器,但某些性能使用率不高。并且最大的问题是课堂直播也用的这台服务器(而且优化应该不好),这导致全校同时上课直播会卡。如果是我就会选择把直播服务放到教室电脑上…

  2. 业务逻辑混乱:明明发送的是 XML 为何有一个标签是 JSON 啊!而且 JSON 还有对象是 XML 是什么鬼= =

  3. 安全性不高:虽然把 PAD 上的所有能改的设置全禁用了,还调用设备管理器成为了流氓软件,但数据包也不加个密啊!AES 不会至少偏移几位啊!你用个 gzip header就已经把你暴露了…

  4. 离线功能等于没有:用离线功能缓存了几节课,回宿舍没网还是没法用…什么鬼啦!

  5. 思路落后:用了一个福昕的 pdf SDK 但调用不好很容易卡死,内部不知道有什么 bug 经常提示”system 已停止”然后就重启了…你就不能做个跨应用回调跟微软 Office 联合一下???你这么有能耐在电脑上倒是别用微软的 SDK 自己写啊?

喜闻乐见的破解

虽然说用老师帐号传传公开课视频看已经很满足了,但这16G的空间不用是不是说不过去?以下以安装ES为例说明破解方法。

新版说明

咱本着为人民(包括懒癌患者自己)服务的原则把程序重写了一遍,逻辑比较简单,需要安装pip包xmltodict。在有DNS情况下运行,第一遍捕获登录包,修改config.xml.tmp保存为config.xml,再次登录应该就成了

crack.py

材料准备

  1. ES文件管理器(已知包名及入口Activity)
  2. 一台能运行 Python3 的设备
  3. 路由器
  4. 脑子

食用方法

1.少年派登出,在路由器上进行一些设置。我家光猫带一个 DNS 功能就直接改了,不带的可以尝试以下办法:

  • 在设备上架设 DNS,修改 DNS 配置,将路由器 DNS 服务器改为设备 IP
  • 或用无线设备开无线热点,修改无线设备 DNS

2.截获数据包。具体方法是改一下提供的 8023.py 添加一个保存数据包的功能就欧了。

3.模拟发送并接受返回数据。用能连外网的设备发送数据包到正常服务器(注意模拟 PAD),可以用 urllib 但我比较懒就直接 Fidler 了…

4.修改返回数据并返回 PAD。gzip 解压后把 JSON 的 configuration 替换掉,修改一下 8023.py 和配置文件运行 8023.py 就能欢乐地登录了。

注意:具体格式是个问题,pr.xml 直接复制原来的就行, config.xml 需要 HTML 转义并替换除 \" 外的反斜杠转义符。

5.撤掉 DNS,打开书包,现在应该睿易的功能和上传的 APP 都能用了。

下载:

8023.py

后言

咱其实以前也说过对信息化教学的畅想,还是希望以后自己写一套更好的软件吧。

世界,您好!

欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!

随着第一篇文章的生成,在 Nutcore 上的博客算是彻底搭建完成了。

少见地采用了 WordPress ,虽然说是臃肿但还是好软件嘛(没 Typecho 轻量就是了

嘛,毕竟是升高中的暑假呢,确实是应该做出些什么来的,起码这个博客不会废的。

那么已经做着将来人生规划的我,将努力成为自己想成为的人。

原本地博客的文章会一下子迁过来的。

总之,就这样,高中是要努力呢(当然追番也不可少

Keep Moving

DTSDAO

2017.6.27