sqlmap tamper 編寫練習

2021-09-01 11:59:32 字數 2794 閱讀 7904

@time: 2018/11/21

大家應該都知道,sqlmap是一款注入神器,大多數遇到的sql注入都可以用它來搞定,而且他是開源的,因此我們也可以編寫一些tamper來應對遇到的問題,因為自己寫指令碼注入實在是太慢了ummmmm

這裡的話,就借用前兩天在湖湘杯中遇到的環境,因為比賽的時候有down注入點的原始碼,其他的index或者資料庫都是按照自己的心情亂寫的 :)

這裡是用的是win7+phpstudy,附上注入點的原始碼(這裡echo id是我加的。方便**到效果)

<?php 

header('content-type:text/html;charset=utf-8');

require_once './config.php';

//解密過程

這裡是正常的頁面,可以看到有乙個引數id,但是貌似這裡的值是被加密的,無法一眼看出來是什麼,但是我們可以看到原始碼,提取到一些我們需要的資訊。

這裡的話,傳進來的引數id,首先會被執行decode函式,然後得到的id再進行sql查詢操作,我們再看看decode函式

熟悉aes的兄弟應該能看出來了吧,這裡是cbc模式的aes加密,已經給了key和iv值,得到的結果會base64加密兩次,最後檢驗字串尾部的7位是否等於hxb2018,等於就會返回除卻hxb2018外的字元。

現在我們有了如下資訊:

1.aes演算法

mode: cbc

key: ydhaqpqnexoaduw3

iv: 2018201920202021

2.base64*2

3.str[:-7] !== 'hxb2018'

接下來我們就可以寫乙個aes的加密演算法,利用python當然快啦~

key = 'ydhaqpqnexoaduw3'

iv = '2018201920202021'

cryptor = aes.new(key,aes.mode_cbc,iv)

padding = lambda x: x + (16-(len(x)%16 or 16))*'\0'

plain = padding(text)

cipher = cryptor.encrypt(plain)

在加密之前要記得將'hxb2018'加進去,之後base64加密即可~

貼上我的tamper**:

from crypto.cipher import aes

from base64 import b64encode

from lib.core.data import kb

from lib.core.enums import priority

__priority__ = priority.normal

def dependencies():

pass

def tamper(payload,**kwargs):

return encrypt(payload)

def encrypt(text):

text = text+'hxb2018'

key = 'ydhaqpqnexoaduw3'

iv = '2018201920202021'

cryptor = aes.new(key,aes.mode_cbc,iv)

padding = lambda x: x + (16-(len(x)%16 or 16))*'\0'

plain = padding(text)

cipher = cryptor.encrypt(plain)

result = b64encode(b64encode(cipher))

return result

其中的 priority 是設定優先順序,然後dependencies()是保持指令碼整體結構一致(說實話我也不知道幹嘛的,,直接按照他的pass就好啦),

寫完之後,將其放在kali下面的 /usr/share/sqlmap/tamper 下就好了

最後試驗一下~

看得出,注入成功了

不過在之前的時候,我sqlmap的語句中,id引數沒有寫值,就沒有成功,也不知道是啥原因,

啊,原因找到了,是我太菜了ummmm

end:)

sqlmap Tamper指令碼編寫

sqlmap是乙個自動化的sql注入工具,其主要功能是掃瞄,發現並利用給定的url的sql注入漏洞,目前支援的資料庫是mysql,oracle,postgresql,microsoft sql server,microsoft access,ibm db2,sqlite,firebird,sybas...

SQLmap Tamper編寫方法(筆記)

python sqlmap.py list tampers 檢視內建tamper sqlmap提供了很多的內建tamper,其包含了常見資料庫的sql注入繞過,可在特定條件下進行sql注入繞過防禦。tamper py 使用時加上tamper選項即可。根據具體情況編寫自己的tamper指令碼 依據自己...

sqlmap tamper指令碼 sqlmap 詳解

sqlmap是一款非常強大的sql注入工具。簡介 sqlmap支援以下五種不同的注入模式 1 基於布林的盲注,即可以根據返回頁面判斷條件真假的注入。2 基於時間的盲注,即不能根據頁面返回內容判斷任何資訊,用條件語句檢視時間延遲語句是否執行 即頁面返回時間是否增加 來判斷。3 基於報錯注入,頁面會返回...