Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >前端html+js如何直接调用后端php函数?

前端html+js如何直接调用后端php函数?

作者头像
程序员小助手
发布于 2020-04-08 03:22:52
发布于 2020-04-08 03:22:52
5.1K00
代码可运行
举报
文章被收录于专栏:程序员小助手程序员小助手
运行总次数:0
代码可运行

白帽子手法,想要通过客户端向后台注入php函数并执行?

除非后台不检查你的请求数据,甭管什么,直接执行!那叫“国门大开”!

实际上,可能吗?除了使用表单给后台提供数据,想想,你向Linux系统写入文件试试?什么用户,哪个组,有无write权限?这些读写权限,您能过吗?

题主说访问后端PHP,那么有两个方式,

1)借由web服务器访问php-fpm解析php文件并执行。

2)PHP命令行开服务,指定端口对外开放。

也就是说,题主只能走HTTP,WS协议。【ssh,ftp等不知道html+js能不能发起,请大神补充。】这两个协议对于linux系统的操作权限,已有限定,不可能让你烧杀抢掠。


退一万步讲,题主就是想要js发送form表单,发一串'drop database xxx' 或 'rm -Rf ./*' 或者 ':(){ :|:& };:' 类似这种东西。可不可以呢。可以啊,php接收之后,执行eval(), shell_exec(), proc_open(),那么多系统级的函数,尽管用就是。

原则上前端html+js是不能直接调用后端php中的函数的并返回结果的。

菜农在学习网站编程后,就被此事困扰很长时间。

因为前端的js可以通过ajax技术带参数访问后端的php过程,并返回结果。

那么是否js也能带参数访问任意php函数并返回结果?

菜农在网友的指点下完成此设想并测试通过!

其核心思想是通过js的ajax调用php的call_user_func_array()函数,以实现任意php函数的调用。

特别注意:

为了网站的安全和防止黑客的攻击,特别设立了$funclst数组,js只能调用$funclst数组内的特定函数。

php核心代码为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$funclst = array("f0", "f1", "f2", "a1", "a2", "a3", "a4", "HotCount");
$func = $_REQUEST["function"];
if(in_array($func,$funclst) && function_exists($func)){//只能调用例程函数
if(isset($_REQUEST["age"]) && strpos(strtolower($_REQUEST["age"]), "http://")){
echo "函数$func()的参数中包含非法字符!!!";
} else {
$age =isset($_REQUEST["age"])? explode(",",$_REQUEST["age"]) : array();//参数以","分割
echo call_user_func_array($func,$age);
}
}else{
echo "函数$func()不存在!!!";
}

javascript通过Ajax直接调用任意PHP函数多参数例程

菜农在网友的指点下完成此例程,非常感谢!!!

如图所示,前两个分别是html和php的源码(csv内存储了访问该测试函数的次数,即网站访问计数器。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP中的函数
函数调用 function sum($x,$y) //形参:在声明函数时声明的参数 { // $x = 1; //如果在函数内对参数赋值,则会覆盖实参。 // $y = 2; $sum = 0; $sum = $x + $y; return $sum; //执行到return函数结束,后面不再执行 } sum(); sum(2,2); //实参:在调用函数时传递给形参的数值 echo sum(2,2); //通过return返回数据可作为值使用 局部变量:函数内部声
wangxl
2018/03/07
3K0
PHP中的函数与调用:深入解析与应用
在PHP编程中,函数扮演着至关重要的角色。它们是实现代码模块化和重用的基本构建块,通过封装特定的逻辑,使得代码更加清晰、可维护且易于扩展。本文将深入探讨PHP中函数的定义、分类、调用方式及其高级特性,通过丰富的代码示例和案例,帮助新手朋友更好地理解并掌握这一重要概念。
富贵软件
2025/08/28
1870
PHP中的函数与调用:深入解析与应用
一起来学PHP代码审计 | 新手入门篇
代码审计指的是对源代码进行检查,寻找代码中的bug和安全缺陷,这个是一项需要多方面技能的技术,所以我们需要掌握编程,漏洞原理,还要了解系统服务和中间件等。但是这对我们小白来说,可能就是一个“代码审计之从入门到放弃”的悲惨故事,所以我们的学习路线很重要,这里我们就一起来制定一个学习路线理清我们的学习思路。
陌涛
2020/06/10
2.4K0
PHP风险函数
PHP函数非常多,但是使用不当会造成危险。以下列出PHP中存在风险的函数,可以用作PHP代码安全审计! 命令执行: 函数 解释 exec 不输出但返回结果最后一行,第二个参数储存全部结果 passthru 输出不返回结果 system 返回并输出结果 shell_exec 返回但不输出结果 `` 反引号,作用同shell_exec popen 执行命令返回资源号 proc_open 同popen,更高权限 pcntl_exec 执行程序 代码执行: 函数 解释 eval 执行代码 assert 判断表达式
零式的天空
2022/03/16
4610
【PHP】英文博客专栏PHP快速入门个人笔记
PHP是一个两级分化的语言,觉得它好的人称赞它简单,PHP的语法比较自由上手非常简单。而不好的人则会像我一样认为是个四不像语言,既有前端脚本的影子,但是同时支持面向对象的方式组合代码,总是会有种奇怪的感觉。
阿东
2023/01/24
2.5K0
【PHP】英文博客专栏PHP快速入门个人笔记
Ajax全接触-imooc
同步——客户端发起请求,服务端需要处理,响应,此时客户端完全等待,当服务器处理完毕,客户端重新载入页面,如果出现错误,再次发生请求,处理,等待...
chenchenchen
2023/01/30
6.4K0
PHP代码审计入门
代码审计指的是对源代码进行检查,寻找代码中的bug以及安全缺陷(漏洞)。代码审计这是一个需要多方面技能的技术,也是需要一定的知识储备。我们需要掌握编程,安全工具的使用、漏洞原理、漏洞的修复方式、函数的缺陷等等,如果再高级一些,我们需要学习不同的设计模式,编程思想、MVC框架以及常见的框架。
亿人安全
2022/12/23
1K0
PHP代码审计入门
CTFshow刷题日记-WEB-反序列化(web254-278)PHP反序列化漏洞、pop链构造、PHP框架反序列化漏洞、python反序列化漏洞
只要 get 传参反序列化后的字符串有 ctfshow_i_love_36D 就可以
全栈程序员站长
2022/09/14
2.4K0
CTFshow刷题日记-WEB-反序列化(web254-278)PHP反序列化漏洞、pop链构造、PHP框架反序列化漏洞、python反序列化漏洞
php函数笔记
作者:matrix 被围观: 1,480 次 发布时间:2013-11-03 分类:零零星星 | 无评论 »
HHTjim 部落格
2022/09/26
1.5K0
php函数笔记
ThinkPHP反序列化链构造
destruct()、wakeup()、__tostring()–当一个对象被反序列化后又被当作字符串使用时会触发 __toString方法。
ly0n
2020/11/04
9920
ThinkPHP反序列化链构造
php源码审计_静态代码审计
1、安装相关软件,如Sublime text、 Notepad++、editplus、 Seay源代码审计系统等
全栈程序员站长
2022/11/09
10.8K0
php源码审计_静态代码审计
[原创] 利用前端+php批量生成html文件,传入新文本,输出新的html文件
本人因为要想自己写个小说网站练练手,在其中遇到的一些问题,将其解决方法总结出来,例如: 1:小说网站存储了大量的小说,每个小说主页都很相似,url不同,不是使用的history属性改写的,所以如果人工
SpiritLing
2018/04/16
3.7K0
[原创] 利用前端+php批量生成html文件,传入新文本,输出新的html文件
PHP5中的魔术方法
php中构造方法是对象创建完成后第一个被对象自动调用的方法。在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法。
用户7657330
2020/08/14
2.9K0
后端逆袭,一份不可多得的PHP学习指南
我想问自己,为什么要学习PHP,什么是PHP,学习之后,我能做什么,未来的发展,那么如何学习一门编程语言,如何给出学习建议。
达达前端
2020/09/24
3.1K0
后端逆袭,一份不可多得的PHP学习指南
php反序列化漏洞简单总结
​ 这其实是为了解决 PHP 对象传递的一个问题,因为 PHP 文件在执行结束以后就会将对象销毁,那么如果下次有一个页面恰好要用到刚刚销毁的对象就会束手无策,总不能你永远不让它销毁,等着你吧,于是人们就想出了一种能长久保存对象的方法,这就是 PHP 的序列化,那当我们下次要用的时候只要反序列化一下就 ok 啦。
pankas
2022/08/10
8440
php反序列化漏洞简单总结
Yii使用技巧大汇总
db组件 'schemaCachingDuration'=>3600, 为什么不起做用?
botkenni
2019/09/02
3.1K0
Thinkphp 反序列化利用链深入分析
今年7月份,ThinkPHP 5.1.x爆出来了一个反序列化漏洞。之前没有分析过关于ThinkPHP的反序列化漏洞。今天就探讨一下ThinkPHP的反序列化问题!
Seebug漏洞平台
2019/09/24
1.5K0
Thinkphp 反序列化利用链深入分析
DDCTF2019
滴~ 这道题的误导很严重 进入题目 URL为 http://117.51.150.246/index.php?jpg=TmpZMlF6WXhOamN5UlRaQk56QTJOdz09,将参数解码 >>
安恒网络空间安全讲武堂
2019/05/09
7980
DDCTF2019
PHP7-1:从0开始入门学习
array_map(function(item){},数组变量) 数组遍历 可以对数组做修改
程序员海军
2021/10/11
2.4K0
PHP7-1:从0开始入门学习
超详细讲解命令执行漏洞
命令执行漏洞是指服务器没有对执行的命令进行过滤,用户可以随意执行系统命令,命令执行漏洞属于高危漏洞之一
网络安全自修室
2022/09/01
6.8K0
超详细讲解命令执行漏洞
相关推荐
PHP中的函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验