可是有的人說對PHP的站如果是GPC魔術轉換開啟,就會對特殊符號轉義,就徹底杜絕了PHP注入。 其實說這話的人沒有好好想過,更沒有嘗試過用萬能密碼進PHP的后臺。 其實GPC魔術轉換是否開啟對用萬能密碼進后臺一點影響也沒有。如果你用這樣的萬能密碼'or'='or',當然進不去,理由是GPC開啟的時候單引號會被轉換。 PHP注入時我常用的萬能密碼是:'or 1=1/*. 那我們分析一下為什么這可以進后臺,如果sql語句這樣寫:"SELECT * FROM admin where name='".$_POST['name']."'and password='".$_POST['password']."'",那我們在帳號處輸入萬能密碼'or 1=1/*,密碼隨便輸,sql語句就成了select * from admin where name='’or 1=1/*' and password='任意字符'。 /*為mysql的注釋符,這樣后面的東西就都被注釋掉了,也就是為什么密碼隨便輸的原因。 假設GPC轉換沒有開啟,那么請看:where name='’or 1=1(*/后面的東西被注釋掉了),name='’的邏輯值為假,而后面的1=1邏輯值則為真,對于整體就成了假 or 真,最終的邏輯值 還是真,就進后臺了。 那么如果GPC轉換開啟了,就對單引號進行了轉換。語句就變成了where name='\’or 1=1,在看一下和剛才有什么區別,無非是多了個\。name='\'與name=''的邏輯值一樣,都為假,那1=1為真,總的sql語句的邏輯值不還是真嗎?那有進不去后臺的理由嗎? 所以總的來說,php網站的萬能密碼可以這樣寫:'or 1=1/*,而GPC轉換是否開啟對它沒有任何影響! 所以請改變你的想法:存在字符型注入的php網站是可以用萬能密碼'or 1=1/*的 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信