news 2026/1/14 8:44:13

pikachu-RCE,越权,目录遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pikachu-RCE,越权,目录遍历

RCE

漏洞成因:RCE(remote command/code execute)概述

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

远程系统命令执行
一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口
比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 而,如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器

现在很多的甲方企业都开始实施自动化运维,大量的系统操作会通过"自动化运维平台"进行操作。 在这种平台上往往会出现远程系统命令执行的漏洞,不信的话现在就可以找你们运维部的系统测试一下,会有意想不到的"收获"-_-

防范策略分析:

  • 严格输入验证:采用白名单机制,拒绝非法字符;禁止用户输入直接拼接至命令 / 表达式执行逻辑。

示例:Python 使用subprocess.call(["echo", user_input]) 代替字符串拼接。

  • 禁用危险函数:通过配置(如 PHP 的php.ini)禁用eval()、system()等高危函数;使用安全 API 替代。
  • 最小权限运行:应用进程使用低权限账户,限制系统调用能力。
  • 代码审计:引入 SAST 工具(如 SonarQube)检测漏洞,人工审计反序列化、命令执行逻辑。

1. exec “ping”

先试试ping本地

想让命令成功执行,可以用连接符 |

例如我输入127.0.0.1|whoami

返回的laptop-kvf41vq\95970是当前系统的用户名

返回的laptop-kvf41vq是主机名,95970是当前登录的用户账号名

再例如我输入借鉴自某位同学的payload:123 || dir

查看文件目录指令被执行了

2. exec “eval”

eval()函数:会将符合PHP 语法规范字符串当作php代码执行。它可以将

字符串中的代码作为有效的程序代码进行解析和执行。

这里可以使用system()来包裹字符

依旧和上面一样先试试查看当前系统用户名的字符:system(“whoami”);

可以看到在上端返回来用户名

再来试试dir

System(“dir”);

成功执行

Over Permission

漏洞成因:

如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。

一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

你可以通过“Over permission”对应的测试栏目,来进一步的了解该漏洞。

防范策略:

1.后端强制校验:所有权限逻辑后端实现,拒绝依赖前端,接口必验登录态、权限归属

2.数据权限绑定:从会话取当前用户标识过滤数据,禁用前端传入的user_id等参数直接查询

3.最小权限原则:细分功能/数据权限,按需授权,避免过度权限

  1. 水平越权:

这里我在csdn网站上找到了之前的关卡,并得到了lucy账户

输入lucy

123456

在url上直接把lucy修改成另一个账户的名字lili即可获取lili的账户信息

  1. 垂直越权:

我们先登入pikachu用户

pikachu

000000

然后登入admin账户

admin

123456

admin账户拥有添加账户权限

比pikachu用户多出“添加用户”的功能

添加用户页面如下

随后我们复制这个网页的url

http://localhost/pikachu/vul/overpermission/op2/op2_admin_edit.php

然后退出登录在进入pikachu账户,并在网址栏粘贴url,使pikachu用户成功垂直越权

可以看到这时的”管理员”已经成为pikachu

然后随手添加一个用户

返回查看页面

可以看到最后一行就是我随便添加的用户

…/…/

漏洞成因:

在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞。

看到这里,你可能会觉得目录遍历漏洞和不安全的文件下载,甚至文件包含漏洞有差不多的意思,是的,目录遍历漏洞形成的最主要的原因跟这两者一样,都是在功能设计中将要操作的文件使用变量的 方式传递给了后台,而又没有进行严格的安全考虑而造成的,只是出现的位置所展现的现象不一样,因此,这里还是单独拿出来定义一下。

需要区分一下的是,如果你通过不带参数的url(比如:http://xxxx/doc)列出了doc文件夹里面所有的文件,这种情况,我们成为敏感信息泄露。 而并不归为目录遍历漏洞。(关于敏感信息泄露你你可以在"i can see you ABC"中了解更多)

你可以通过“../../”对应的测试栏目,来进一步的了解该漏洞。

防范措施:

  1. 禁用目录遍历功能关闭 Web 服务器(如 Nginx、Apache)的autoindex等目录自动列出功能;删除网站根目录下默认的index.html备用列表文件。
  2. 严格校验并过滤用户输入对用户传入的路径参数(如file=../config.ini)做白名单校验,仅允许合法文件名和路径;过滤../、./等目录跳转字符,同时限制访问的目录范围(如限定只能访问/static/目录)。
  3. 使用固定路径映射,避免动态拼接不直接将用户输入拼接为文件路径,而是建立 “逻辑名称 - 真实路径” 的映射关系(如file=1对应/static/a.pdf),通过映射获取真实文件路径。

目录遍历

首先点击we're jarheads!

观察url

再点击Truman's word!

同样观察url

发现改的只是title

我们便来修改title

这里将title改为..\..\..\..\..\..\windows\win.ini

出现这个界面说明读取到了 Windows 系统的win.ini文件内容。

再试试其他的比如其他同学的../dir.php

Url重定向:

点击前两个没反应,点击第四句会在url上出现url=i

将url修改成我们想要跳转的网页比如百度:

Enter后便跳转了百度搜索页面

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/12 7:33:06

解放小红书运营双手!全账号聚合 + 智能值守

小红书多账号运营,每天不是在回复消息,就是在切换账号回复消息的路上,明明没闲着,却总在错过关键客户。更让人揪心的是那些深夜里的咨询,等第二天清晨你看到消息,火急火燎地回复过去,才发现客户…

作者头像 李华
网站建设 2026/1/12 7:33:03

Markdown引用块美化:突出重点内容

Markdown引用块美化:突出重点内容 在撰写技术文档时,我们常常面临一个看似简单却影响深远的问题:如何让读者一眼抓住关键信息?尤其是在AI开发、数据科学这类复杂领域,配置步骤、环境依赖、注意事项稍有疏漏就可能导致整…

作者头像 李华
网站建设 2026/1/12 7:33:01

Pyenv安装Python3.9失败?改用Miniconda更可靠

Pyenv安装Python3.9失败?改用Miniconda更可靠 在AI项目开发中,你是否曾经历过这样的场景:刚搭好服务器,迫不及待想跑通一段PyTorch代码,结果执行pyenv install 3.9.16时卡在编译阶段,报出一连串类似“zlib …

作者头像 李华