sql 注入越過登入驗證例項
根據我們提交的使用者名稱和密碼被合成到SQL查詢語句當中之後是這樣的:select * from users where username='user' and password='password'
。很明顯,使用者名稱和密碼都和我們資料庫給出的一樣,肯定能夠成功登陸。但是,如果我們輸入一個錯誤的使用者名稱或密碼呢?很明顯,肯定登入不了吧。恩,正常情況下是如此,但是對於有SQL隱碼攻擊漏洞的網站來說,只要構造個特殊的“字串”,照樣能夠成功登入。
比如:在使用者名稱輸入框中輸入:or 1=1#
。密碼隨便輸入,這時候的合成後的SQL查詢語句為:select * from users where username='' or 1=1#' and password='password'
。語義分析:使用者名稱驗證肯定為真(1=1),“#”在mysql中是註釋符,這樣井號後面的內容將被mysql視為註釋內容,這樣就不會去執行了。這樣不論你密碼輸入什麼都能登入!(因此需要防止sql語句註冊,如何防止,請看下一篇手記:為什麼使用PreparedStatement)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2798322/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jQuery使用者登入和登錄檔單驗證程式碼例項jQuery
- JWT實現登入認證例項JWT
- 通過驗證訪問ASM例項ASM
- jQuery登錄檔單驗證程式碼例項jQuery
- Django登入(含隨機生成圖片驗證碼)註冊例項Django隨機
- 非越獄下 iOS程式碼注入&HOOK微信登入iOSHook
- 通過selenium突破極驗驗證實現登入
- .net core 登入全域性驗證過濾器過濾器
- 登入驗證碼生成kaptcha(輸入驗證碼)APT
- MySQL登入驗證方式MySql
- JS登入驗證nullJSNull
- python驗證登入Python
- Laravel- Auth 登入驗證Laravel
- ASP.NET登入驗證ASP.NET
- GitHub--oauth驗證登入GithubOAuth
- Django 使用LDAP驗證登入DjangoLDA
- js使用者登錄檔單驗證簡單程式碼例項JS
- window下通過Xshell登入GCP計算機例項GC計算機
- js登入與註冊驗證JS
- APPCNA 指紋驗證登入APP
- 聊聊Oracle的OS驗證登入Oracle
- CAS自定義登入驗證方法
- sql注入waf繞過簡單入門SQL
- vue通過vue-router攔截實現登入驗證Vue
- uniapp 完成兩種方式登入 驗證碼登入 密碼登入APP密碼
- SQL登入失敗注意事項SQL
- JavaScript 表單驗證程式碼例項JavaScript
- 郵箱格式驗證程式碼例項
- jquery 驗證碼效果程式碼例項jQuery
- iOS逆向之三 authorized_keys ssh登入越獄手機免驗證設定iOSZed
- app直播原始碼,登入時輸入驗證碼、簡訊驗證身份APP原始碼
- vue登入註冊,帶token驗證Vue
- django 自定義登入驗證邏輯Django
- ORACLE登入驗證方式的詳解Oracle
- jQuery加法驗證碼效果程式碼例項jQuery
- javascript驗證郵箱格式程式碼例項JavaScript
- Python生成驗證碼例項講解Python
- 用Abp實現兩步驗證(Two-Factor Authentication,2FA)登入(三):免登入驗證