window com组件(php 5.4)(高版本扩展要自己添加)
条件:要在php.ini中开启(如图)
利用代码 , 利用shell上传如下代码到目标服务器上
利用成功后的结果
二、利用ImageMagick漏洞绕过disable_function
ImageMagick是一套功能强大、稳定而且开源的工具集和开发包链接代码 , 可以用来读、写和处理超过89种基本格式的图片文件 , 如果phpinfo中看到有这个 , 可以尝试如下利用
利用代码如下
三.利用环境变量LD_PRELOAD来绕过php disable_function执行系统命令
php的mail函数在执行过程中会默认调用系统程序/usr/sbin/sendmail , 如果我们能劫持sendmail程序 , 再用mail函数来触发就能实现我们的目的
利用原理
LD_PRELOAD是Linux系统的下一个有趣的环境变量:“它允许你定义在程序运行前优先加载的动态链接库 。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数 。通过这个环境变量 , 我们可以在主程序和其动态链接库的中间加载别的动态链接库 , 甚至覆盖正常的函数库 。一方面 , 我们可以以此功能来使用自己的或是更好的函数(无需别人的源码) , 而另一方面链接代码 , 我们也可以以向别人的程序注入程序 , 从而达到特定的目的 。
可能这个不好理解 , 我们做一个简单的测试代码
保存如上代码为a.c , 并编译为a,编译命令如下
gcc a.c -o a
运行a结果如下
【PHP Webshell下绕过disable_function的方法】以上程序很简单 , 根据判断传入的字符串是否等于”password” , 得出两种不同结果 。其中用到了标准C函数strcmp函数来做比较 , 这是一个外部调用函数 , 我们来重新编写一个同名函数,代码如下(保存如下代码为b.c)
我们编译以上代码为一个动态共享库 , 编译命令如下
gcc -fPIC -shared b.c -o b.so
通过LD_PRELOAD来设置它能被其他调用它的程序优先加载
export LD_PRELOAD="./b.so"
我们再次运行a
./a bbb
Correct Password!
我们看到随意输入字符串都会显示密码正确 , 这说明程序在运行时优先加载了我们自己编写的程序 。这也就是说如果程序在运行过程中调用了某个标准的动态链接库的函数 , 那么我们就有机会通过LD_PRELOAD来设置它优先加载我们自己编写的程序 , 实现劫持 。
结合mail 函数进行实战测试
那么我们来看一下sendmail函数都调用了哪些库函数 , 使用readelf -Ws /usr/sbin/sendmail命令来查看 , 我们发现sendmail函数在运行过程动态调用了很多标准库函数:
构造poc思路
编制我们自己的动态链接程序 。通过php的putenv来设置LD_PRELOAD , 让我们的程序优先被调用 。在webshell上用mail函数发送一封邮件来触发 。具体实现如下
1.编制我们自己的动态链接程序 , 代码如下(功能是执行mkdir test)
执行编译为一个动态共享库的命令如下
gcc -c -fPIC a.c -o a
gcc -shared a -o a.so
代码
2.利用webshell , 上传编译后的a.so到目标服务器
以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!
「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助:- 珍珠钻石踩在脚下,拆丈夫王冠做项链,印度版温莎公爵夫人的奢华
- 小姐姐宽松T恤玩转下半身失踪,新潮的穿搭方式,清爽洋气又吸睛
- 一颗珍珠2亿,玛丽王后是世界上拥有珠宝最多的人,女王甘拜下风
- 快来,快来参加精美珠宝的游乐会
- 好看的下半身长裙怎么搭配?
- 圆通快递几点上班几点下班圆通快递上班时间(圆通快递几点上班几点下班?
- 供求关系对价格的影响?当供大于求时,价格会上涨还是下降?
- 钟镇涛老婆真敢穿,一袭深v黑裙“上下皆露”,一把年纪也豪放
- 冬天的时髦穿搭套路,流行“上短下长”,学会这些保准你美成焦点
- 想了解一下怪盗基德的具体信息