亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

使用keras做SQL注入攻擊的判斷(實例講解)

2024-07-24 13:15:15
字體:
來源:轉載
供稿:網友

本文是通過深度學習框架keras來做SQL注入特征識別, 不過雖然用了keras,但是大部分還是普通的神經網絡,只是外加了一些規則化、dropout層(隨著深度學習出現的層)。

基本思路就是喂入一堆數據(INT型)、通過神經網絡計算(正向、反向)、SOFTMAX多分類概率計算得出各個類的概率,注意:這里只要2個類別:0-正常的文本;1-包含SQL注入的文本

文件分割上,做成了4個python文件:

util類,用來將char轉換成int(NN要的都是數字類型的,其他任何類型都要轉換成int/float這些才能喂入,又稱為feed)

data類,用來獲取訓練數據,驗證數據的類,由于這里的訓練是有監督訓練,因此此時需要返回的是個元組(x, y)

trainer類,keras的網絡模型建模在這里,包括損失函數、訓練epoch次數等

predict類,獲取幾個測試數據,看看效果的預測類

先放trainer類代碼,網絡定義在這里,最重要的一個,和數據格式一樣重要(呵呵,數據格式可是非常重要的,在這種程序中)

import SQL注入Dataimport numpy as npimport kerasfrom keras.models import Sequentialfrom keras.layers import Dense, Dropout, Activationfrom keras.layers.normalization import BatchNormalizationfrom keras.optimizers import SGD x, y=SQL注入Data.loadSQLInjectData()availableVectorSize=15x=keras.preprocessing.sequence.pad_sequences(x, padding='post', maxlen=availableVectorSize)y=keras.utils.to_categorical(y, num_classes=2)  model = Sequential()model.add(Dense(64, activation='relu', input_dim=availableVectorSize))model.add(BatchNormalization())model.add(Dropout(0.3))model.add(Dense(64, activation='relu'))model.add(Dropout(0.3))model.add(Dense(2, activation='softmax')) sgd = SGD(lr=0.001, momentum=0.9)model.compile(loss='mse',  optimizer=sgd,  metrics=['accuracy']) history=model.fit(x, y,epochs=500,batch_size=16) model.save('E://sql_checker//models//trained_models.h5')print("DONE, model saved in path-->E://sql_checker//models//trained_models.h5") import matplotlib.pyplot as pltplt.plot(history.history['loss'])plt.title('model loss')plt.ylabel('loss')plt.xlabel('epoch')plt.legend(['train', 'test'], loc='upper left')plt.show()

先來解釋上面這段plt的代碼,因為最容易解釋,這段代碼是用來把每次epoch的訓練的損失loss value用折線圖表示出來:

keras,SQL,注入攻擊,判斷  

何為訓練?何為損失loss value?

訓練的目的是為了想讓網絡最終計算出來的分類數據和我們給出的y一致,那不一致怎么算?不一致就是有損失,也就是說訓練的目的是要一致,也就是要損失最小化

怎么讓損失最小化?梯度下降,這里用的是SGD優化算法:

from keras.optimizers import SGD sgd = SGD(lr=0.001, momentum=0.9)model.compile(loss='mse',  optimizer=sgd,  metrics=['accuracy'])

上面這段代碼的loss='mse'就是定義了用那種損失函數,還有好幾種損失函數,大家自己參考啊。

optimizer=sgd就是優化算法用哪個了,不同的optimizer有不同的參數

由于此處用的是全連接NN,因此是需要固定的輸入size的,這個函數就是用來固定(不夠會補0) 特征向量size的:

x=keras.preprocessing.sequence.pad_sequences(x, padding='post', maxlen=availableVectorSize)

再來看看最終的分類輸出,是one hot的,這個one hot大家自己查查,很容易的定義,就是比較浪費空間,分類間沒有關聯性,不過用在這里很方便

y=keras.utils.to_categorical(y, num_classes=2)

然后再說說預測部分代碼:

import SQL注入Dataimport Converter  import numpy as npimport kerasfrom keras.models import load_model print("predict....") x=SQL注入Data.loadTestSQLInjectData()x=keras.preprocessing.sequence.pad_sequences(x, padding='post', maxlen=15) model=load_model('E://sql_checker//models//trained_models.h5')result=model.predict_classes(x, batch_size=len(x))result=Converter.convert2label(result)print(result)  print("DONE")

這部分代碼很容易理解,并且連y都沒有  

keras,SQL,注入攻擊,判斷  

好了,似乎有那么點意思了吧。

下面把另外幾個工具類、數據類代碼放出來:

def toints(sentence): base=ord('0') ary=[] for c in sentence:  ary.append(ord(c)-base) return ary  def convert2label(vector): string_array=[] for v in vector:  if v==1:   string_array.append('SQL注入')  else:   string_array.append('正常文本') return string_array
import Converterimport numpy as np def loadSQLInjectData(): x=[] x.append(Converter.toints("100")) x.append(Converter.toints("150")) x.append(Converter.toints("1")) x.append(Converter.toints("3")) x.append(Converter.toints("19")) x.append(Converter.toints("37")) x.append(Converter.toints("1'--")) x.append(Converter.toints("1' or 1=1;--")) x.append(Converter.toints("updatable")) x.append(Converter.toints("update tbl")) x.append(Converter.toints("update someb")) x.append(Converter.toints("update")) x.append(Converter.toints("updat")) x.append(Converter.toints("update a")) x.append(Converter.toints("'--")) x.append(Converter.toints("' or 1=1;--")) x.append(Converter.toints("aupdatable")) x.append(Converter.toints("hello world"))  y=[[0],[0],[0],[0],[0],[0],[1],[1],[0],[1],[1],[0],[0],[1],[1],[1],[0],[0]]  x=np.asarray(x) y=np.asarray(y)  return x, y  def loadTestSQLInjectData():  x=[] x.append(Converter.toints("some value")) x.append(Converter.toints("-1")) x.append(Converter.toints("' or 1=1;--")) x.append(Converter.toints("noupdate")) x.append(Converter.toints("update ")) x.append(Converter.toints("update")) x.append(Converter.toints("update z")) x=np.asarray(x) return x

以上這篇使用keras做SQL注入攻擊的判斷(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色哟哟亚洲精品一区二区| 亚洲美女精品成人在线视频| 美女999久久久精品视频| 久久中文字幕视频| 亚洲日韩第一页| 欧美性精品220| 欧美疯狂xxxx大交乱88av| 91网站在线免费观看| 97在线视频免费看| 欧美性极品xxxx娇小| 欧美亚洲另类制服自拍| 5566成人精品视频免费| 欧美精品一区三区| 国产日韩在线看片| 亚洲精品免费网站| 亚洲一区二区中文字幕| 欧美日韩国产成人在线| 欧美性生活大片免费观看网址| 精品久久香蕉国产线看观看亚洲| 搡老女人一区二区三区视频tv| 欧美午夜视频在线观看| 国模精品视频一区二区三区| 国产成人av在线| 久久久久久尹人网香蕉| 日韩动漫免费观看电视剧高清| 国产噜噜噜噜久久久久久久久| 欧美日韩一区免费| 欧美大片免费观看在线观看网站推荐| 亚洲精品美女在线观看播放| 国产精品午夜一区二区欲梦| 国产日本欧美一区二区三区在线| 日韩免费观看在线观看| 欧美在线视频观看免费网站| 亚洲女成人图区| 91精品视频观看| 欧美激情视频一区二区| 欧美日韩国产色视频| 亚洲自拍偷拍第一页| 国色天香2019中文字幕在线观看| 国产91精品久| 97**国产露脸精品国产| 国产在线精品自拍| 欧美日韩性视频在线| 亚洲精品一区二三区不卡| 国产亚洲欧美视频| 久久99国产精品自在自在app| 91福利视频在线观看| 欧美日韩一区二区三区在线免费观看| 日韩中文字幕在线视频播放| 97精品一区二区视频在线观看| 亚洲国产精品资源| 2019国产精品自在线拍国产不卡| 国内免费久久久久久久久久久| 国产精品成人免费电影| 日韩欧美亚洲范冰冰与中字| 欧美精品aaa| 日韩av在线天堂网| 色综合久久88| 91精品国产高清自在线看超| 色妞色视频一区二区三区四区| 精品偷拍一区二区三区在线看| 久久久久久噜噜噜久久久精品| 26uuu另类亚洲欧美日本一| 欧美成人在线免费| 亚洲第一区中文99精品| 久久久久久久999| 姬川优奈aav一区二区| 国产精品自拍偷拍视频| 国产精品福利在线观看网址| 秋霞成人午夜鲁丝一区二区三区| 最近中文字幕mv在线一区二区三区四区| 欧美精品手机在线| 国产a级全部精品| 国产成人精品久久| 亚洲欧美制服丝袜| 亚洲欧美精品伊人久久| 日韩精品免费综合视频在线播放| 亚洲欧美国产一区二区三区| 欧美黑人性生活视频| 国产精品高潮呻吟久久av野狼| 亚洲激情视频在线播放| 久久久久久国产免费| 亚洲第一区第一页| 国产精品视频公开费视频| 日韩av大片在线| 午夜精品理论片| 亚洲毛片一区二区| 欧美专区国产专区| 日韩欧美精品网址| 一区二区三区四区在线观看视频| 成人免费视频网| 亚洲第一视频在线观看| 国产日韩在线免费| 欧美诱惑福利视频| 久久偷看各类女兵18女厕嘘嘘| 国产精品一区二区三区免费视频| 亚洲一区二区三区四区视频| 色综合久久久久久中文网| 一区二区成人av| 国产不卡精品视男人的天堂| 成人国产在线视频| 色哟哟网站入口亚洲精品| 国产女人精品视频| 欧美日韩中文字幕日韩欧美| 亚洲成人激情视频| 国产精品久久久久久久久免费看| 亚洲国产精品99久久| 欧美日韩综合视频| 久久久久九九九九| 91久久精品国产91久久性色| 亚洲18私人小影院| 亚洲图片欧洲图片av| 色偷偷91综合久久噜噜| 中文字幕日韩精品在线| 91欧美精品午夜性色福利在线| 日韩精品中文字幕在线播放| 日韩精品在线免费观看视频| 久久影院中文字幕| 奇米四色中文综合久久| 国产成人福利夜色影视| 成人欧美一区二区三区在线| 综合国产在线视频| 91成人精品网站| 久久综合免费视频| 7777kkkk成人观看| 久久精品国产久精国产思思| 久久综合免费视频| 91精品国产高清| 在线视频欧美日韩| 亚洲国产精品美女| 欧美成人在线免费视频| 国产精品视频白浆免费视频| 亚洲视频精品在线| 韩国福利视频一区| 操人视频在线观看欧美| 久久久久久久久久久免费精品| 日韩欧美在线视频日韩欧美在线视频| 国产亚洲精品美女| 中文在线不卡视频| 亚洲va久久久噜噜噜| 欧美激情视频一区二区| 欧美日韩在线影院| 亚洲午夜精品久久久久久久久久久久| 国产成人精品日本亚洲| 欧美在线亚洲在线| 国产精品国产福利国产秒拍| 久久久国产一区| 国内精品久久久久伊人av| 日韩欧美中文免费| 欧美裸体视频网站| 日韩国产在线播放| 亚洲欧美日韩综合| 亚洲精品视频免费在线观看| 精品国产美女在线| 国外成人免费在线播放| 中文字幕日韩高清| 精品国产福利在线| 2019精品视频| 日韩美女在线观看| 欧美日韩国产第一页| 亚洲精品第一国产综合精品| 亚洲成人激情图| 亚洲国产成人在线播放| 蜜臀久久99精品久久久久久宅男|