我曾經遇到過在我的滲透測試的職業生涯很多網站在其網站都有嚴格的WAF,但有時可以通過緩衝區溢出的邏輯被繞過。例如,考慮一個查詢緩衝區溢出SQL注入是如何發生的?
http://example.com/something.php?id=-1 UNION SELECT 1,2,3,4,5,6--+
考慮易受攻擊的列是直到7。所以,現在,這應該輸出一個易受攻擊的列號作爲輸出,但它會得到錯誤。
現在,
http://example.com/something.php?id=-1 UNION%23AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%0aselect 1,2,3,4,5,6--+
這其實打印出真正的列數,這意味着它已經被忽略。我知道%23 =#和%0A =空格。但我不明白這是幕後的行爲。我的意思是後端邏輯。
誰能給我SQL結構的一個例子可能會導致這種類型的緩衝區溢出的,考慮到後端是後端結構(數據類型)和$查詢過的條款MYSQL ..
幫助,將不勝感激
這聽起來更像是通過發送輸入大於旁路籤名而不是緩衝區溢出,這是一種非常具體的面向內存導向類型的條件, –
選擇* from anytablename其中id = 假設這是查詢,然後當我們嘗試Normal UNION SELECT。從某種意義上說,「易受攻擊」列的數量不是「打印」。可能有兩件事是我認爲的 1)防火牆它阻止聯盟+選擇 2)在數據庫中輸入驗證基於數據類型和更大的輸入數據庫可以打擾,因爲你告訴 所以你有一個例子如何第二點可以創建,並且允許Memory @DavidHoelzer需要什麼預防措施 –