我想構建一個場景,允許我公開服務器的其他數據(用於演示目的)。服務器調用易受攻擊的SQL代碼:SQL注入,忽略第一個選擇命令
EXEC my_storeProc '12345'
其中「12345」(不是單引號)是參數。這將執行一個SELECT語句。我想消除這個執行,而是調用我自己的select語句,但是服務器端代碼將只接受前面提到的EXEC調用中包含的第一個select語句。調用第二個語句很簡單:
EXEC my_storeProc '12345 ' select * from MySecondTable--
(中 - 在年底將阻止服務器添加到防止錯誤關閉單引號)。我的問題是,雖然有2個選擇語句,服務器將只解析第一個。有沒有辦法在不拋出錯誤的情況下取消第一次EXEC調用,以便取而代之的是第二次調用?也許即使是一個UNION,但是我只能用一個變量開放來利用(在這種情況下變量是12345),我可以做的並不多。
我給你在這一個答案,看如何......熱心人回答它,它也是情理之中。所以基本上,我們將使用URL來修改存儲過程,然後使用另一個URL來執行它。這不是一個壞主意。無論哪種方式,我顯示漏洞。謝謝! – Lukas
如果您想要使用SELECT語句進行反饋,那麼您必須創建一個反饋回送的方式,但是如果要演示UPDATE,DELETE或MODIFY,則不需要返回結果集和您的演示仍然有效。製作一個表格,用於跟蹤用戶信息或所欠的費用,然後刪除或修改您的帳戶或您的姓名。 – EMUEVIL