我有一個有趣的情況,我試圖選擇sql server表中的所有內容,但我只需要通過舊的公司API而不是SQL訪問表。該API要求提供表名稱,字段名稱和值。然後,它插入相當簡單了這種方式:選擇表中的所有內容...用where語句
select * from [TABLE_NAME_VAR] where [FIELD_NAME_VAR] = 'VALUE_VAR';
我不能等號(=)更改爲=或其他任何東西,只有那些瓦爾!我知道這聽起來很糟糕,但是我不能在沒有經歷很多麻煩的情況下更改API,這是我必須處理的。
此表中有多列都是數字,所有字符串,並設置爲非空。是否有值我可以通過這個API函數,將返回表中的所有內容?也許是一個常量或特殊值,這意味着它是一個數字,它不是一個數字,它是一個字符串,*,它不是空的,等等?有任何想法嗎?
SQL注入可能是你應該看看的東西。假設你可以做你想做的事情。否則,你可能會做一些非法的事情。 – asafreedman
我同意。如果此API允許修改參數以更改語句的邏輯,則允許從表中刪除或刪除 –
您可以嘗試爲'1'(或任何其他常量)分配'FIELD_NAME_VAR'以產生'WHERE 1 = 1',和'VALUE_VAR'爲'1'(相同的常量)。取決於你的API如何實現它可能會或可能不會工作。 – peterm