1. 程式人生 > >如何利用$_SERVER["PHP_SELF"]變量植入script代碼?

如何利用$_SERVER["PHP_SELF"]變量植入script代碼?

ted 數據 java rip .cn pac 要求 服務 eal

假如我們是黑客,可以誘騙用戶訪問如下鏈接,

相當於用戶會在瀏覽器地址欄中輸入以下地址:

http://www.xxx.com/test_form.php/%22%3E%3Cscript%3Ealert(‘hacked‘)%3C/script%3E
這裏文件名後的字符是URL encode characters,其等效於
<form method="post" action="test_form.php/"><script>alert(‘hacked‘)</script>

在這個頁面中我們設置一個表單,表單的設置如下:
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">


當用戶提交表單後(表單也可以為空,這樣直接執行了),數據交給action指定的文件也就是當前的頁面文件,並執行了後面的Javascript腳本代碼(由browser自動執行)
<form method="post" action="test_form.php/"><script>alert(‘hacked‘)</script>

後面的腳本任何JavaScript代碼可以添加在<script>標簽中! 黑客可以利用這點重定向頁面到另外一臺服務器的頁面上,頁面 代碼文件中可以保護惡意代碼,代碼可以修改全局變量或者獲取用戶的表單數據。

實際動手如下:我們編號含有以上要求的表單文件在index.php中,本地訪問(已經搭好了apache服務器)
http://localhost/phptest/index.php/%22%3E%3Cscript%3Ealert(‘hacked‘)%3C/script%3E技術分享

在Edge中效果:

技術分享

然後顯示:

技術分享

在chrome中效果

技術分享

 
 

如何利用$_SERVER["PHP_SELF"]變量植入script代碼?