1 php security administration code-injection
我正在做一个游戏,我为它创建了一个"管理"面板.它的工作原理如下:
admin.php
admin/code1.php
admin/code2.php
Run Code Online (Sandbox Code Playgroud)
admin.php的:
<?php
include("lib.php");
$player = check_user($secret_key, $db);
if($player->rank != "Administrador")
{
header("Location: personagem.php");
exit;
}
include("templates/private_header.php");
head("Admin Panel","adminpanel.png");
startbox();
if(isset($_GET['page']))
{
include("admin/" . $_GET['page'] . ".php");
}
else
{
?>
<A href="admin.php?page=code1">Kill Players</a><br>
<A href="admin.php?page=code2">Heal Players</a><br>
<?php
}
endbox();
include("templates/footer.php");
?>
Run Code Online (Sandbox Code Playgroud)
我想知道我是否容易受到黑客攻击.code1.php和code2.php使用lib.php中包含的自定义查询库,因此无法直接执行它们而不会出现错误.
同样在我的模板中,我有:
if($player->rank == "Administrador")
{
echo "<a href='admin.php'>Admin Panel</a>";
}
Run Code Online (Sandbox Code Playgroud)
所以我可以更快地访问面板.那里也存在风险吗?
请注意,$ player是一个从对查询到表示实际玩家的玩家数据库的查询创建的对象.在我的想法中,破解这个的唯一方法是将表中的"排名"状态更改为"Administrador"我是对的吗?或者我有什么东西可以通过?提前致谢
include("admin/" . $_GET['page'] . ".php");
Run Code Online (Sandbox Code Playgroud)
这是一个巨大的安全漏洞.
类似的东西blah.php?page=../../../../etc/passwd%00
包括/etc/password
当然你也可以用其他文件做这个 - 甚至可能是用户上传的包含PHP代码的一些文件(甚至可能是图像,只要它包含<?php [code]
某个地方)
即使只有你是管理员,也不会关闭这样的漏洞并不明智 - 在某些时候你可能会有其他管理员.
归档时间: |
|
查看次数: |
1251 次 |
最近记录: |