我一直在互聯網上搜索二階SQLi的演示,但我還沒有找到一個。許多網站並沒有對其工作原理給出徹底的解釋。 我需要提供一個簡短的演示,我一直在練習使用Mutillidae。任何人都能帶領我走向正確的方向嗎?哪裏可以獲得有關二次SQL注入的資源和演示?
回答
谷歌搜索'二階SQL注入'時會出現一些或多或少關於二階SQL注入的相關解釋,並且具有不同程度的細節(如您所說)。
其基本思想是數據庫存儲用戶的一些文本,稍後將其合併到SQL語句中 - 但是在重用之前文本沒有經過充分的清理。
想象一個允許用戶針對數據庫創建用戶定義查詢的應用程序。一個簡單的例子可能是一個錯誤跟蹤系統。某些用戶定義的查詢屬性可能是簡單的條件,例如「錯誤狀態已關閉」。這可能通過查看存儲查詢定義進行編碼:
CREATE TABLE UserDefinedQuery
(
...user info...,
bug_status VARCHAR(20),
...other info...
);
SELECT ..., bug_status, ...
INTO ..., hv_bug_status, ...
FROM UserDefinedQuery
WHERE bug_status IS NOT NULL
AND ...other criteria...
其中hv_bug_status
是主變量(PHP,C,你使用任何語言)控股的錯誤狀態的標準。
如果這個值是= 'closed'
,然後將得到的SQL可能包含:
SELECT *
FROM Bugs
WHERE status = 'closed'
AND ...other criteria...
現在假設當用戶定義自己的查詢,他們寫道代替:
= 'open' or 1=1
這意味着產生查詢現在看起來像:
SELECT *
FROM Bugs
WHERE status = 'open' or 1=1
AND ...other criteria...
存在的OR
戲劇性地改變了查詢的含義,並將顯示各種其他記錄,這些記錄不是用戶打算查看的記錄。這是錯誤查詢應用程序中的一個錯誤。如果此修改意味着CustomerX可以看到其他客戶CustomerY和CustomerZ報告的不應該看到的錯誤,那麼CustomerX已經設法創建二階SQL注入攻擊。 (如果注入僅僅意味着他們看到的記錄比他們應該看到的要多,包括那些與他們無關的記錄,那麼他們只是創建了一個錯誤的查詢。)顯然,在VARCHAR(20)中,字段,因爲SQL是一種冗長的語言,所以用於注入致命SQL的選項是有限的。但如果條件存儲在更長的字段中,則可能會觸發'little Bobby Tables'。
='';DELETE Bugs;--
(使用DELETE語句非標準收縮;,在18個字符尖叫聲中)
你如何避免這種情況?不要允許用戶編寫包含在生成的SQL中的原始SQL片段。相應地對待在UserDefinedQuery.Bug_Status值作爲字符串值的空間/逗號分隔的列表,並構建查詢:
SELECT *
FROM Bugs
WHERE status IN ('=', '''open''', 'or', '1=1')
AND ...other criteria...
查詢可能沒有用處,但它並沒有得到其結構由數據改變在UserDefinedQuery表中。
- 1. 從哪裏可以獲得有關Firefox的源文件:主頁?
- 2. 哪裏可以獲得D語言的最佳資源?
- 3. 從哪裏可以獲得three.js的學習資源
- 4. 從哪裏可以獲得Hibernate註釋?
- 5. 如何演示二階SQL注入?
- 6. 我在哪裏可以下載Silverlight的OOB演示的源
- 7. 我在哪裏可以找到二進制DSC資源的dll?
- 8. 我在哪裏可以找到有關ActiveRecord優化的資源和信息?
- 9. 去哪裏投入資源?
- 10. 我在哪裏可以得到這個外部資源
- 11. 我在哪裏可以獲得帶有示例的手冊頁
- 12. 哪裏可以得到libc_p.so源代碼?
- 13. 哪裏可以得到Android源代碼?
- 14. 在哪裏可以獲得gtk-sharp3的windows二進制文件
- 15. 如何指定GET協議可以從哪裏獲取資源?
- 16. 哪裏可以找到圖形輸入資源/文件?
- 17. 哪裏可以獲得有關ODBC和Access數據庫的高質量信息?
- 18. android:可以獲得140dpi的資源嗎?
- 19. 我在哪裏可以獲得wso2is-5.1.0的源代碼?
- 20. 我在哪裏可以獲得libnet.so的源代碼?
- 21. 在哪裏可以獲得「setfacl」Linux/Unix命令的源代碼
- 22. 我在哪裏可以獲得AVM3的源代碼?
- 23. 我在哪裏可以獲得ODK Collect 1.3的源代碼?
- 24. 我在哪裏可以獲得(匹配)com.sun.jndi.ldap。*包的源代碼?
- 25. 我在哪裏可以獲得jQuery Tools 1.2.7的源代碼?
- 26. 從哪裏可以獲得IPv6中traceroute的源代碼
- 27. 我在哪裏可以獲得MVC4的源代碼
- 28. 從哪裏可以獲得代碼的同行評審以及如何獲得我的代碼的關注度?
- 29. 從哪裏可以得到與雄辯相關的SQL查詢
- 30. 我在哪裏可以訪問gridworld演員的源代碼?