“黑客”必学攻击之“跨站脚本攻击”
这个PHP应用程序看到用户输入的"hahaha"后,将响应一个页面,如图所示。 用户输入"hahaha"后MyPhp.php回复的响应 下面显示的是上图中看到的页面的HTML 源代码,为醒目起见用户输入的内容这里以蓝色字体显示。 您输入的内容为: 'hahaha'. 注意,实际上这里用户可以输入任何东西,例如〈 script 〉 a_lert( 1 )〈 / script 〉、〈 body onload = a_lert( 1 ) 〉、〈 img src = x onerror = a_lert( 1 ) 〉 或别的东西来把JavaScript代码注入到该页面。如果输入 的话,将向服务器发送下列GET请求: http://publicpages.daxue.edu/~someuser/MyPhp.php?input= 如前所述,这个PHP应用程序只是把用户输入放到返回的响应页面中。这时候浏览器会把这些用户输入的内容当作JavaScript指令,同时认为该脚本来自服务器,这可真是应了那句老话"拿着鸡毛当令箭"了,所以浏览器就会执行这些JavaScript代码。下图展示了用户看到的样子。 上图 用户输入" "后MyPhp.php回复的响应 [NextPage]上图中显示的页面的源代码如下所示,其中用户输入用蓝色字体表示。 您输入的内容为: ' '. 这是将 注入http://public-pages.daxue.edu/~someuser/MyPhp.php得到的结果。这个例子是一种典型的反射式的HTML注入,因为用户在HTTP请求中发送JavaScript代码,同时Web应用程序立即响应(反射回)一个完全相同的JavaScript代码。只要用户单击了下列链接,这个脚本就会执行: http://publicpages.daxue.edu/~someuser/MyPhp.php?input= 从攻击者的角度来看,利用注入的ML代码让恶意的web页面完成单击或者指定次数的点击是非常重要的。假设前面的PHP应用程序只接受POST请求,而不接受GET,如下所示: 在这种情况下,攻击者无法像上面的GET请求那样直接通过诱骗受害者点击一个链接来注入HTML代码;现在,他们必须采取一些额外的步骤。为此,攻击者可以创建下列HTML页面: 当用户单击了指向上述HTML页面的链接时,就会对http://public-pages.daxue.edu/~someuser/MyPhp.php进行HTML注入。当然,攻击者也能利用HTML注入干别的坏事,而不仅仅象征性地调用一个JavaScript的弹出窗口。 "第二步:做坏事"部分将解释攻击者除了弹出一个窗口外还能做些什么。 (编辑:萍乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |