2014-01-05 52 views
0

OK,所以:PHP rawencode&escapeshellarg隨機「需要去除

1 
    $pool = rawurlencode($_GET['pool']); 
    $user = rawurlencode($_GET['user']); 
    $pass = rawurlencode($_GET['pass']); 
    $url = "?pool=$pool&user=$user&pass=$pass"; 
    file_get_contents($url); 


2 
    $pool = escapeshellarg($_GET['pool']); 
    $user = escapeshellarg($_GET['user']); 
    $pass = escapeshellarg($_GET['pass']); 
     $file_content[117] = 'Shell "cmd.exe /c cd %appdata% & test.exe -o ' . $pool. ' -u ' . $user . ' -p ' . $pass . ' -I 13 & pause", vbMaximizedFocus 

當進入teste.net:22555&user=1&pass=1作爲GET請求,我在我的代碼獲得額外的引號,如在$池應該是,它的解析正確。但像「」引號,用相同用戶$ $ &通

如:

Shell "cmd.exe /c cd %appdata% & test.exe -o "test:22555" -u "1" -p "1" -I 13 & pause", vbMaximizedFocus 

這不可能發生,我不能有報價在這裏,請幫忙謝謝ÿ OU。

回答

0

假設Shell也被一些shell命令,再次逃脫整個論點:

'Shell '.escapeshellarg('cmd.exe /c cd %appdata% & test.exe -o ' . $pool. ' -u ' . $user . ' -p ' . $pass . ' -I 13 & pause').', vbMaximizedFocus' 
+0

嗨,是很好的答案感謝這麼多,但是對於應用程序數據的%是不是來過:殼牌「CMD.EXE/c cd appdata&minerd.exe -o stratum + tcp:// test:22555 -u .1 -p 1&pause「,vbMaximizedFocus以及所有這些煩人的空間:/ – Somenoob

+0

@ user3152114只要讀取'escapeshellarg'用空格替換'%'以避免變量擴展。試着用'^「'或者用兩個雙引號將整個參數包裝起來,即「'」「...」「'。 Windows很奇怪。 – Gumbo

+0

不知道你的意思是什麼,我確實嘗試過。 $ app。 '也是,同樣的事情。 – Somenoob