如何利用$_SERVER["PHP_SELF"]變量植入script代碼?
阿新 • • 發佈:2017-08-29
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代碼?