SQL注入基礎

2021-10-12 03:04:25 字數 1761 閱讀 4851

函式名稱

系統使用者名稱

system_user()

系統使用者名稱

user()

使用者名稱current_user()

當前使用者名稱

session_user()

連線資料庫的使用者名稱

database()

資料庫名

version()

資料庫版本

@@datadir

資料庫路徑

@@basedir

資料庫安裝路徑

@@version_compile_os

作業系統

count()

返回執行結果數量

concat()

沒有分離符地連線字串

concat_ws(『指定分隔符, str1,srtr2,str3』)

含有分離符地連線字串

group_concat()

連線乙個組的所有字串並以逗號分隔每一條資料

load_file()

讀取本地檔案

into outfile

寫檔案ascii()

字串的ascii**值

ord()

返回字串第乙個字元的ascii

mid()

返回乙個字串的一部分

substr()

返回乙個字串的一部分

sleep()

讓此語句執行n秒

if()

select if(1>2,2,3); -> 3

char()

返回整數ascii**字元組成的字串

strcmp()

比較字串內容

ifnull()

例如引數1不為null,則返回引數1,否則返回引數2

exp()

返回e的x次方

extractvalue()

從目標xml中返回包含所查詢值的字串

updatexml()

改變文件中符合條件的節點的值

功能名稱

查詢語句

查庫select schema_name from information_schema.schemata

查表select table_name from information_schema.tables where table_schema=庫名

查列select column_name from information_schema.columns where table_name=表名

查資料select 列名 from 庫名.表名

information_schema中主要的幾個資料表:

schemata: 提供了當前mysql資料庫中所有資料庫的資訊,其中schemata字段儲存了所有資料庫名。show databases的結果取自此表。

tables: 提供了關於資料庫中的表的資訊,詳細表述了某個表屬於哪個schema,表型別,表引擎,建立時間等資訊,其中table_name字段儲存了所有列名資訊,show tables from sechema_name的結果取自此表。

columns:提供了表中的列資訊。詳細表述了某張表的所有列以及每個列的資訊,其中column_name儲存了所有的字段資訊。show columns from schemaname.tablename的結果取自此表。

sql注入基礎

mysqli 轉義字串函式 mysqli real escape string db,string mysqli 預編譯 拼裝sql語句 把要進行的操作的sql語句提前寫好,把需要改變的元素變成佔位符 select id,username from user where user name and ...

SQL注入基礎

最為經典的單引號判斷法 在引數後面加上單引號,比如 abc.php?id 1 如果頁面返回錯誤,則存在 sql 注入。原因是無論字元型還是整型都會因為單引號個數不匹配而報錯。如果未報錯,不代表不存在 sql 注入,因為有可能頁面對單引號做了過濾,這時可以使用判斷語句進行注入。其實所有的型別都是根據資...

SQL注入基礎

為了堅持而堅持,是撐不了多久的。sql注入就是指web應用程式對使用者輸入資料的合法性沒有判斷,前端傳入後端的引數是攻擊者可控的,並且引數代入資料庫查詢,攻擊者通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。sql注入漏洞的產生要滿足兩...