滲透測試工具簡介11 SQL 注入
滲透測試工具簡介11 SQL%E6%B3%A8%E5%85%A5/">SQL注入
SQL是結構化查詢語言的首字母縮寫。它用於檢索和操作資料庫中的資料。
什麼是SQL注入?
SQL注入使動態SQL語句註釋掉語句的某些部分或附加始終為真的條件來執行惡意SQL程式碼。
可以使用SQL注入執行的攻擊型別和資料庫引擎相關。攻擊適用於動態SQL語句。動態語句是在執行時使用來自Web表單或URI查詢字串的引數password生成的語句。
某HTML表單的程式碼如下。
<form action=‘index.php’ method="post"> <input type="email" name="email" required="required"/> <input type="password" name="password"/> <input type="checkbox" name="remember_me" value="Remember me"/> <input type="submit" value="Submit"/> </form>
上面的表單接受電子郵件地址和密碼,將它們提交給名為index.php的PHP檔案。
它可以選擇將登入會話儲存在cookie中。 我們從remember_me複選框中推斷出這一點。 它使用post方法提交資料。 這意味著值不會顯示在URL中。
後臺用於檢查使用者ID的語句如下所示
SELECT * FROM users WHERE email = $_POST['email'] AND password = md5($_POST['password']); # SELECT * FROM users WHERE email = '[[email protected]](mailto:[email protected])' OR 1 = 1 LIMIT 1 -- ' ] AND password = md5('1234'); # SQL注入
上面的語句直接使用$_POST[] 陣列的值而不檢驗。密碼使用MD5演算法加密。為此用第2句可以直接進行SQL注入。
SQL登陸注入實戰
演示網址不能承受太大壓力,需要的請加釘釘pytesting索取。

圖片.png

圖片.png
步驟:
- email: 輸入 ofollow,noindex">[email protected]
- 密碼輸入: Enter xxx') OR 1 = 1 -- ]
- 提交

圖片.png
其他SQL注入
參考資料
- 討論qq群144081101 591302926 567351477 釘釘免費群21745728
- 本文最新版本地址
- 本文涉及的python測試開發庫 謝謝點贊!
- 安全測試書籍下載
- 本文相關海量書籍下載
SQL注入的自動化工具
- SQLMap - sqlmap.org/" target="_blank" rel="nofollow,noindex">http://sqlmap.org/ https://github.com/sqlmapproject/sqlmap
- SQLSmack - 5GP081P75C.html" target="_blank" rel="nofollow,noindex">http://www.securiteam.com/tools/5GP081P75C.html 針對MSSQL,且很久沒有更新,用處不大。
- SQLPing 2 - http://www.sqlsecurity.com/downloads/
- Havij https://www.darknet.org.uk/2010/09/havij-advanced-automated-sql-injection-tool/
如何防止SQL注入攻擊
組織可以採用以下策略來保護自己免受SQL注入攻擊。
- 在動態SQL語句中使用之前必須始終對其進行清理。
- 儲存過程 - 這些可以封裝SQL語句並將所有輸入視為引數。
- 引數化
- 正則表示式 - 檢測潛在的有害程式碼並在執行SQL語句之前將其刪除。
- 資料庫連線使用者訪問許可權
- 錯誤訊息不要顯示SQL。