当前位置: 首页 > news >正文

邮箱购买网站/网站开发工程师

邮箱购买网站,网站开发工程师,宁波网站建设多少钱一个,网站制作公司业务员原标题:PHP一句话木马研究*本文原创作者:Gxian,本文属于FreeBuf原创奖励计划,未经许可禁止转载最近在研究PHP一句话后门,查阅了很多大佬的博客,并从中衍生出了一些可用的方法。现总结如下:方案一…

原标题:PHP一句话木马研究

*本文原创作者:Gxian,本文属于FreeBuf原创奖励计划,未经许可禁止转载

最近在研究PHP一句话后门,查阅了很多大佬的博客,并从中衍生出了一些可用的方法。

现总结如下:

方案一:回调函数

回调函数:Callback (即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。

已被D盾查杀的函数:

array_filter()

array_walk()

array_walk_recursive()

array_map()

registregister_shutdown_function();

filter_var()

filter_var_array()

uasort()

uksort()

array_reduce() 可疑(级别2)

array_walk()

array_walk_recursive()1.register_tick_function()

构造一句话:

访问URL:

IP/XXX.php?e=YXNzZXJ0

密码:a

2.变种call_user_func_array()

尝试模仿正常函数调用,定义一个简单的function:

使用D盾查杀。

0ops!!没过!!变量$exec被解析成了$GET["id"],但$evil没有被解析,猜测只要将$exec放在newSearch()函数外面用GET方法获取,就不会被D盾解析,编写新的shell:

OK!完美绕过!

访问URL:

IP/XXX.php?id=YXNzZXJ0

密码:key

同样的方法可以使用call_user_func函数,构造shell如下:

3.变种array_udiff()

用相同的方法构造使用array_udiff()的shell:

访问URL:

IP/XXX.php?exec=YXNzZXJ0

密码:key

剩下的回调函数也可以用相同的方法绕过D盾。

4.session_set_save_handler

session_set_save_handler函数可以定义用户级的session保存函数(打开、保存、关闭),当我们想把session保存在本地的一个数据库中时,本函数就很有用了。

编写shell如下:

使用D盾查杀。$session被解析为assert,猜测D盾认为该函数的参数中不应该含有assert等敏感函数,否则就挂掉!把$session用GET输入试试:

$session=$_REQUEST['id'];

看来只要参数中含有敏感函数、GET、POST、REQUEST都会报错!

尝试创建一个用户函数,在函数中调用session_set_save_handler(),并将assert作为参数传入:

完美绕过!

访问URL:

IP/XXX.php?id=YXNzZXJ0

密码:op

*本文原创作者:Gxian,本文属于FreeBuf原创奖励计划,未经许可禁止转载返回搜狐,查看更多

责任编辑:

相关文章:

  • 网站开发工程师绩效考核表/新媒体seo培训
  • 宁波网站建设多少钱/微信小程序官网
  • 网站开发工程师绩效考核表/新媒体seo培训