當前位置:首頁 » 編程語言 » union關鍵字進行SQL繞過
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

union關鍵字進行SQL繞過

發布時間: 2023-06-17 02:24:05

1. sql語句union

sql中union用於合並兩個或多個 SELECT 語句的結果集。


需要注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。


SQL UNION 語法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2


以圖中表格為例:

列出所有在中國和美國的不同的雇員名:


SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

結果

E_Name

Zhang, Hua

Wang, Wei

Carter, Thomas

Yang, Ming

Adams, John

Bush, George

Gates, Bill


這個命令無法列出在中國和美國的所有雇員。在上面的例子中,我們有兩個名字相同的雇員,他們當中只有一個人被列出來了。UNION 命令只會選取不同的值。

如果需要顯示全部值,則使用UNION all。


列出在中國和美國的所有的雇員:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

2. 怎麼繞過簡單的sql防

《Web安全之SQL注入攻擊技巧與防範》:

http://www.plhwin.com/2014/06/13/web-security-sql/

二、 幾種繞過姿勢

下面列舉幾個防禦與繞過的例子:

例子1:addslashes

防禦:

繞過:

文件的63行開始可以看到,此處將傳入的%27和%2527都進行刪除處理,也就是還沒傳入資料庫前就已經被該死的程序吃了,但是在67行看到他還吃了*,這樣我們就有辦法了,我們構造%*27,這樣程序吃掉星號*後,%27就會被傳入。

payload:

  • http://localhost/injection/user.php?id%3D1%*27%*20and%*20%*271%*27%3D%*271

  • (id=1' and '1'='1-->id%3D1%*27%*20and%*20%*271%*27%3D%*271)

    參考:

    《phpcms_v9.6.0_sql注入與exp》:

    https://zhuanlan.hu.com/p/26263513

    3. sql注入 form過濾怎麼繞過

    我常用的三種方法:
    1,參數過濾,過濾掉 單引號,or,1=1 等類似這樣的 。
    2,使用 參數化方法格式化 ,不使用拼接SQL 語句。
    3,主要業務使用存儲過程,並在代碼里使用參數化來調用(存儲過程和方法2結合)

    4. sql語句中union關鍵字的意義和用法

    union用於簡單聯合查詢;
    select stuid,stuname from student
    union
    select teaid,teaname from teacher
    輸入所有的學生和老師的ID和編號

    5. sql語句中union關鍵字的意義和用法

    UNION 指令的目的是將兩個 SQL 語句的結果合並起來。從這個角度來看, UNION 跟 JOIN 有些許類似,因為這兩個指令都可以由多個表格中擷取資料。 UNION 的一個限制是兩個 SQL 語句所產生的欄位需要是同樣的資料種類。另外,當我們用 UNION這個指令時,我們只會看到不同的資料值 (類似 SELECT DISTINCT)。 SELECT Date FROM Store_Information
    UNION
    SELECT Date FROM Internet_Sales 注意 ,如果我們在任何一個 SQL 語句 (或是兩句都一起) 用 "SELECT DISTINCT Date" 的話,那我們會得到完全一樣的結果。