PHP_SELF 应用初步

php_self是php的内置变量,记作$php_self,其作用是实现“页内跳转”。这里的页内跳转不同等于html的书签之类的跳转,而是php程序通过URL的尾参数的改变在同一个程序里提供不同的Web内容。试比较以下两个URL:

http://www.zzstep.com/index.php

http://www.zzstep.com/index.php?page=2

以上两个URL,其区别是第二个URL地址多一个参数(?page=2),我们在实际打开它们时,在浏览器中得到的内容是不一样的,而点击时它们在同一页内跳转。这是使用php内置变量$php_self实现的,用户编写的php程序将根据index.php尾部参数的不同而生成不同的内容,但都使用同一个网页程序(index.php),故我们称之为“页内跳转”,实际上,它生成的已经是另外一个Web文档了。

从上面第二个URL地址我们已经知道,内置变量$php_self用问号引导参数,具体表示格式如下:

$php_self?变量名=值 (实例:$php_sefl?id=0)

问号后面的变量名是自定义的,通常,根据需要命名为阅读性强一些的英文名称(可以是缩写)。比如说,我们让链接指向程序的某个功能块是完成一次删除操作,那么,我们可以命名为$del,体现在代码里则是$php_self?del=值,如果点击了该链接,程序就执行删除操作(当然,删除操作代码得另外编写):

链接代码:

print "<a href=/"$php_self?del=true/">删除选定内容</a>";

跳转代码:

if($del=="true") {
    //这里是删除代码
}

$php_self可以带多个参数,第一个参数使用问题(?)引导,后面的参数使用“与”号(&)引导,格式和举例如下:

【语法】$php_self?变量1=值&变量2=值&变量3=值

【例子】$php_self?user=blackhorse&id=write&page=0

原则上,$php_self的尾部参数书写时应连在一起,但与号连接的变量可用空格或其他有效符号(如+号)隔开——有时我们的确需要将它们隔开,例如要想通过arv的验证,符号&会有些影响,隔开后生成的html代码才被arv所承认。

$php_self是php的一个十分有用的内置变量,通常用于分页、执行预定义操作等。它所带的尾部参数中的各变量在php中使用$来读取,如以下地址:

http://www.zzstep.com/index.php?page=3

 

1、关于PHP重定向
方法一:header("Location:index.php");
方法二:echo"<script>window.location=/"$PHP_SELF/";</script>";
方法三:echo"<METAHTTP-EQUIV=/"Refresh/"CONTENT=/"0;URL=index.php/">";

### RCE Bypass Techniques and Methods RCE(远程代码执行)漏洞通常涉及攻击者通过某种方式上传恶意脚本或利用已有的文件读取功能来实现命令执行。以下是几种常见的绕过技术以及如何利用这些技术的方法。 #### 利用 `/proc` 实现 LFI 至 RCE 的高级方法 一种有效的策略是从本地文件包含(LFI)升级到远程代码执行(RCE)。这可以通过 Linux 系统中的特殊文件路径 `/proc/self/environ` 或其他类似的动态链接器配置文件完成。这种方法允许攻击者注入自定义环境变量并触发其执行[^1]。 例如,在某些情况下,如果应用程序存在未过滤的 `include()` 函数调用,则可以尝试加载如下路径: ```php /proc/self/fd/<file_descriptor> ``` 此路径指向当前进程打开的标准输入流或其他文件描述符的内容。当成功访问该位置时,可进一步探索是否存在交互式会话或者临时存储区域供我们写入任意 PHP 脚本来达成最终目标——即获得 shell 访问权限。 #### Web Shell Upload Example 另一个常见场景是在拥有文件操作能力的情况下直接部署 webshell 文件。假设有一个实验室环境中提供了这样的入口点: ```html <form action="/upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> ``` 此时可通过构造特制 payload 来测试服务器端处理逻辑是否安全可靠。比如下面这段简单的 phpinfo() 测试代码片段可能被用来确认基本运行状况之后再替换为更复杂的控制指令集[^2]: ```php <?php echo file_get_contents('/home/carlos/secret'); ?> ``` 上述例子展示了如何提取特定目录下的敏感数据作为初步验证手段之一;然而实际应用过程中还需要考虑更多因素如编码转换、字符转义等问题以免遭到防御机制拦截失败告终。 #### General Resources on Exploitation Strategies 对于希望深入研究各种类型的 rce 技巧的人来说,《Bug Bounty Reference》文档集合提供了一个很好的起点[^3]。它不仅涵盖了基础理论知识还列举了许多实战案例分析帮助读者更好地理解整个过程及其背后原理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值