SQL注入學習筆記(2)

2021-10-02 17:01:12 字數 2511 閱讀 7614

在做題時的一些總結

注釋:

1.單行注釋: - - ,mysql中#也可以 注意:瀏覽器url中#有特殊作用, 不一定能用

2.多行注釋: /* */

3.『- - + 』

注:+號在語句中變成了空格。用來和後面的單引號分隔開,將後面的語句注釋。

了解原理後便知道了- -無法使用的原因,是因為- -與後面的單引號連線在一起,無法形成有效的mysql語句

#後面直接根的就是注釋

– 第2個破折號後面至少跟乙個空格符

例如:假設後台sql查詢語句為:

select

*from

user

where username=』$user』 and password=』$pass』

構造payload:

username=renhe』=

'&password=renhe』=』

結果:select * from user where username=』renhe'

=' '

and password=』renhe』=

' '

username='renhe』返回false,0,之後0= '得到1

最後where 1 and 1

也可以直接payload: username= 『=』 & password= 『=』

可以看一下這道題

格式 select year, sum(profit) from sales group by year with rollup;

mariadb>

select username from member;

+----------+

| username |

+----------+

| vince |

| allen |

| kobe |

| grady |

| kevin |

| lucy |

| lili |

+----------+

7rows

inset

mariadb>

select username from member group

by username with rollup;+

----------+

| username |

+----------+

| allen |

| grady |

| kevin |

| kobe |

| lili |

| lucy |

| vince |

|null|+

----------+

8rows

inset

查詢最後一行 多了乙個null

mysql>

select password from users where

user

=' 'or1

=1union

select

'adsafs';+

----------------------------------+

| password |

+----------------------------------+

|5f4dcc3b5aa765d61d8327deb882cf99 |

| e99a18c428cb38d5f260853678922e03 |

|8d3533d75ae2c3966d7e0d4fcc69216b |

|0d107d09f5bbe40cade3de5c71e9e9b7 |

| adsafs |

+----------------------------------+

5rows

inset

最後一行

當對union select ,order by 都不存在注入可能時,可以考慮limit 後面的 procedure 和 into

mysql預設可用的儲存過程只有 analyse (doc)

procedure analyse()函式是mysql內建的對mysql字段值進行統計分析後給出建議的字段型別。

procesure analyse(max_elements,max_memory)

max_elements

指定每列非重複值的最大值,當超過這個值的時候,mysql不會推薦enum型別。

max_memory

analyse()為每列找出所有非重複值所採用的最大記憶體大小

繼續學習~~~

SQL注入學習筆記

sql注入漏洞是由於sql語句的呼叫方法不完善而產生的安全隱患。一旦應用中存在sql注入漏洞,就可能造成如下影響。值得注意的是,以下影響中攻擊者都能夠直接對伺服器實施主動攻擊,而不需要使用者參與。根據資料庫引擎的不同,通過sql注入攻擊還可能會達到下列效果。sql注入攻擊能夠以開發者意想不到的方式改...

sql注入學習筆記

1.什麼是sql注入 sql注入就是指web應用程式對使用者輸入的資料的合法性沒有判斷,前端傳入後端的引數帶有資料庫查詢的語句,攻擊者可以構造不同的sql語句來實現對資料庫的操作。2.sql注入原理 sql注入漏洞產生需要滿足以下兩個條件。引數使用者可控,前端傳給後端的引數內容是使用者可以控制的 引...

Sql 注入 學習筆記

先了解下crlf,crlf常用在分隔符之間,cr是carriage retum ascii 13,r lf是line feed ascii 10,n r n這兩個字元類似於回車是用於換行的,因此該漏洞可能會導致程式原有的語義被改變 如 def helloworld name open test a ...