PHP Webshell下绕过disable

利用代码,利用shell上传如下代码到目标服务器上利用代码如下通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。其中用到了标准C函数strcmp函数来做比较,这是一个外部调用函数,我们来重新编写一个同名函数,代码如下(保存如下代码为b.我们编译以上代码为一个……

window com组件(php 5.4)(高版本扩展要自己添加)

条件:要在php.ini中开启(如图)

PHP Webshell下绕过disable_function的方法

利用代码,利用shell上传如下代码到目标服务器上

利用成功后的结果

PHP Webshell下绕过disable_function的方法

二、利用ImageMagick漏洞绕过disable_function

ImageMagick是一套功能强大、稳定而且开源的工具集和开发包链接代码,可以用来读、写和处理超过89种基本格式的图片文件,如果phpinfo中看到有这个,可以尝试如下利用

PHP Webshell下绕过disable_function的方法

利用代码如下

三.利用环境变量LD_PRELOAD来绕过php disable_function执行系统命令

php的mail函数在执行过程中会默认调用系统程序/usr/sbin/sendmail,如果我们能劫持sendmail程序,再用mail函数来触发就能实现我们的目的

利用原理

LD_PRELOAD是Linux系统的下一个有趣的环境变量:“它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面链接代码,我们也可以以向别人的程序注入程序,从而达到特定的目的。

可能这个不好理解,我们做一个简单的测试代码

保存如上代码为a.c,并编译为a,编译命令如下

gcc a.c -o a

运行a结果如下

以上程序很简单,根据判断传入的字符串是否等于”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函数在运行过程动态调用了很多标准库函数:

PHP Webshell下绕过disable_function的方法

构造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到目标服务器

3.通过putenv来设置LD_PRELOAD,让我们的程序优先被调用。在webshell上用mail函数发送一封邮件来触发。利用代码如下

结果如下,成功执行命令,创建文件test

四.利用pcntl_exec突破disable_functions

pcntl是linux下的一个扩展,可以支持php的多线程操作。(与python结合反弹shell) pcntl_exec函数的作用是在当前进程空间执行指定程序,版本要求:PHP 4 >= 4.2.0, PHP 5

利用代码如下

PHP Webshell下绕过disable_function的方法

曾经就有一个网站是如此拿下的

PHP Webshell下绕过disable_function的方法

你可能想看:

webshell是什么意思,如何避免网站被留下webshell后门?

webshell实际是以asp、php、jsp,ini、cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。通常有很多黑客都通过使用webshell来让其在入侵一个网站后留下这个...

1000hap,925hpa,850hpa,700hpa, 500hpa,300hpa,200hpa,100hpa各对应海拔多高?

1000百帕平均海拔高度为地面0米;925百帕平均海拔高度约为800米;850百帕平均海拔高度约为1500米;700百帕平均海拔高度约为3000米;500百帕平均海拔高度约为5500米;300百帕平均...

PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

前两天讲过PHP基础知识的判断条件和流程控制,今天来讲讲PHP基础知识之PHP基础入门--函数!函数名的命名,须符合"小驼峰法则":myNameIsXiaoxi my_name_is_...

SHE中Selina、Hebe和Ella,你觉得哪个更美?

按照她们三个人刚出道的颜值来看,selina确实是最好看的,在没有出事故之前的颜值,基本上在团队里是无敌的,那个时候的ella留着短头发,活脱脱的一个女汉子,身上的女人味太少了,在三个人当中也不算是特...

a triangle function clustered by three数学专用词,什么意思啊?

[其他]复数:triangles

hello与hellow的区别?

Hello是喂,你好的意思,有表示问候和打招呼的意思,Hellow是喂的意思,只是表示打招呼。Hello和Hellow都有喂,嗨的意思,在词典翻译中可以看到,而Hello还有一个意思是你好,在使用时可...

F.TIsland的lt;hello hellogt;的中文翻译

当初的一句你好 Hello Hello 现在变成了 Goodbye goodbye不是说过了么 说过我爱你 无法忘记你了么。当初的一句你好 hello hello 现在变成了 goodbye good...

Linux启动报错UNEXPECTED INCONSISTENCY解决方法

由于笔者所使用的Linux主机容量快满,昨晚对信息窝所在的CentOS系统加载了一块新磁盘,然后在转移数据的过程中卡死,于是重启系统,结果出现这样的错误提示:unexoected inconsiste...

One day a big red hen is playing with her chickens in the garden. After some time,she wants to eat

1 where is the hen playing with her children ?2 what does the hen take her children to do ?3 wha...

301重定向PHP代码 PHP的301自动跳转代码

如果首页是PHP做的,可以使用PHP的301重定向的代码来实现。301重定向php代码,也就是PHP程序可以用代码来实现网址的301跳转,用一段代码来实现网址的301重定向。如果仅仅是对某个页面进行3...

2020年,PHP的灭亡之年?还是浴火重生?现在学php还晚吗?

php是世界上最好的语言?php很火得益于pc互联网时代PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了...

there are three apples on the table. 这句话如何对three提问?

How many apples are there on the table?几个苹果。  不管在什么地方提问数词都用How many(多少),提问数量可数名词用how many,不可数用how mu...

a nasty election campaign的含义?

lol, a nasty election campaign, politician's forte : ). a nasty election campaign means,肮脏的选举活动, and...

呃,Lynbrook附近要有Homeless Shelter了。。。

位置在Prospect Rd和85的交界处,如上图所示。地址可以参考Prospect Corners,1537 Brookvale Dr。买房是一个家庭的重大决定,不仅需要了解房屋周边现有的环境、设施...

BBS发明人,社交网络“鼻祖”去世,你知道BBS为什么叫BBS吗?

今天罐头菌看到一个热闻,BBS的发明人去世了,享年74岁。相信BBS,论坛,是不少人年轻时的回忆,还记得当年罐头菌家网络刚通的时候,也经常会上不同主题的BBS,虽然现在的网络也充满炫彩,而当年第一次接...

Chinglish口语才用be careful

一说到Chinglish,大家是不是都感觉无药可救呢,其实也不是哈,口语要说得地道,就需要一个一个表达慢慢积累哈,今天就说这个词儿“Be careful.”这个大家都很熟悉吧,一说起“小心”,大家都会...

learn的过去式有两种learned和learnt用法有什么区别?

Learnt是英式英语的词,learned是美式的用法。通常从来不用“learnt”,而且写出来也怪怪的。还有就是在过去时的用法也不一样:美式英语中的learned任何时候都可以用,而learnt则必...

上个星期天父母不在家,uncle john和aunt mary来访。请用英文写一篇短文,描述你下你怎样招呼客人?

Today is Sunday. I didn’t go to school. When the door bell rang, I was watching TV in the morning. I...

可是she reads space news and business也可以改成Does she read space news or business news

你这样改就成了选择疑问句。就像别人问你,你是吃苹果还是吃梨,你不能回答:是的,我吃。这里你可以回答space news也可以回答business news或者回答,she reads BOTH spa...

ZBLOG PHP调用随机文章、热门文章、热评文章脚本方法

在定制ZBLOG PHP模板的过程中,可能有需要用到调用随机文章和热门文章等解决方法,这里老蒋有看到@唐朝同学博客中有这样的脚本整理。我这边也转载过来,下次有使用的时候再测试实用性,如果有问题在进行更...

(来源:问答百科)
免责声明:本文内容来源于第三方或整理自互联网,本站仅提供展示,不拥有所有权,不代表本站观点立场,也不构成任何其他建议,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容,不承担相关法律责任。如发现本站文章、图片等内容有涉及版权/违法违规或其他不适合的内容, 请及时联系我们进行处理。

相关推荐