手工注入——MySQL手工注入实战和分析

今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场。话不多说,咱们直接开始。

第一步,判断注入点

通过 ‘ 和构造 and 1=1 和 and 1=2 查看页面是否报错。这里通过and 1=1 发现页面正常。如下图。

接下来,咱们再构造 and 1=2 发现页面报错,说明页面存在注入点。如下图。

第二步,判断字段数

通过 order by 语句,如果后面输入的数字大于数据库的字段数,页面就会报错,通过这个,咱们先输入 order by 4 发现页面正常。如下图。

接下来,咱们输入 order by 5,发现页面报错,说明数据库中存在四个字段。如下图

第三步,爆库

通过上一步,咱们已经知道了有几个字段,接下来,咱们通过联合查询,将 database() 依次替换1,2,3,4 看看哪个位置会显示在页面中,通过测试发现,2,3,两个位置有回显。构造如下语句 union select 1,database(),user(),4 #     最后的#是注释符。结果如下图。注意:使用联合查询时,要使得前面不可查询 所以我把1替换成了-1 也可以直接在后面添加 and 1=2 两种方式都可以。

第四步,爆表

在上一步咱们已经爆出了数据库名,接下来咱们爆表名,在MySQL 5 和之后的版本,里面有一个information_schema表,这个表下面存放了数据库里面的所有表,接下来就可以查询啦,这里用到了group_concat()函数,咱们构造如下语句 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=库名(库名转换成十六进制)结果如下图。

第五步,爆字段

上面咱们查询出了表名,先用第一个表测试,接下来,爆字段,构造如下语句 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name=表名(换成十六进制),结果如下图

第六步,爆账号,密码。

通过上面,咱们发现,有 name password 字段,一般账号密码存放在里面。如果咱们通过一般查询,会掉到坑里面,如果咱们直接通过如下语句查询 union select 1,name,password,4 from 表名。发现爆出了账号密码,然后高兴的去登陆。发现尴尬了。去下图。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

接下来该怎么办呢,其实只要只要在上一个的语句后面加一个 limit 语句 就搞定了,还可以使用 group_concat() 函数 把上一句的 name 换成group_concat(name) 就可以啦 password 同理。这里使用了limit 语句 它的原理是 limit 0,1 是从第一行开始查询,查询一行。 limit 0,2 是从第一行开始查,查询两行。limit 1,2 是从第二行开始查询,查询两行。结果如下图。

查询出了第二个密码。账号同理。成功登陆后台。注入结束。

MySQL 手工注入总结

第一步,判断注入点,通过 ‘ 或者 and 1=1 和and 1=2

第二步,判断字段数,通过 order by 语句。

第三步,爆库,通过 union select 1,2,database(),4 #

第四步,爆表,通过 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=库名(库名换成十六进制)

第四步 爆字段,通过 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name=表名(表名换成十六进制)

第五步 爆账号,密码,这里可以使用 limit 语句,也可以使用 group_concat()函数。上面演示了limit语句,如果用函数。通过语句 union select 1,group_concat(name),group_concat(password),4 from 表名。就可以直接得到两个账号和密码。
第六步 解密密码,登陆。?

原文地址:https://www.cnblogs.com/lxfweb/p/12655316.html

时间: 2024-10-31 05:23:40

手工注入——MySQL手工注入实战和分析的相关文章

MYSQL手工注入(详细步骤)—— 待补充

0x00 SQL注入的分类: (1)基于从服务器接收到的响应 ?? ?????▲基于错误的 SQL 注入 ?? ??? ?▲联合查询的类型 ?? ??? ?▲堆查询注射 ?? ??? ?▲SQL 盲注 ?? ??? ??? ??基于布尔 SQL 盲注 ?? ??? ??? ??基于时间的 SQL 盲注 ?? ??? ??? ??基于报错的 SQL 盲注 (2)基于如何处理输入的 SQL 查询(数据类型) ?? ??? ??基于字符串 ?? ??? ??数字或整数为基础的 (3)基于程度和顺序的注

mysql手工注入

information_schema SQL基础 1.1 什么是sql? SQL(structured query language),即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的.功能强大的关系数据库语言,但其功能并不仅仅是查询. 1.2 mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.另外,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速

MySQL手工注入方法

MySQL手工注入方法 原文地址:https://www.cnblogs.com/blogs-1024/p/11141285.html

SQL注入原理 手工注入access数据库

SQL注入原理 手工注入access数据库 SQL注入是通过将SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL指令的目的. 1.判断网站是否有注入点. 在以asp?id=xx(任意数字)结尾的连接依次添加: ' 1=1 1=2 若以上结果显示"数据库出错","正常显示","数据库出错"则该网站存在注入点. 2.猜解表名 在链接末尾添加语句: and exists(select * from admi

基础篇——SQL注入(手工注入)

SQL注入 当我们学习一个知识时我们要考虑几个问题:是什么?怎么做?然后进行有条理的学习 是什么? 首先我们要明白SQL注入是什么: sql——结构化查询语言 SQL注入就是在网站url中插入sql语句,执行sql命令,获取数据库内容,达到欺骗服务器的目的. SQL注入的原理:普通用户提交sql查询语句,网站没有对用户输入进行过滤导致执行用户命令 危害及防护 危害:SQL注入可以使入侵者获取后台账号密码.拖库.进入后台破坏.拿shell 防护:设置网站黑名单.限制敏感词汇.对用户输入进行转义.将

SQL注入(手工篇)

开发人员在开发Web系统时对输入的数据没有进行有效的验证及过滤,就存在引发SQL注入漏洞的可能,并导致查看.插入.删除数据库的数据,甚至可以执行主机系统命令. 1.可能出现asp?id=x的网站 只能是基于asp.PHP.jsp.aspx的动态网站,并且存在数据库交互,例:登陆.留言板.搜索.新闻.但是静态页面不可以,如html.htm. 2.漏洞测试 (1)单引号测试:在页面中执行命令时使用成对单引号和单个单引号进行测试,查看是否有SQL注入: (2)利用条件语句测试:利用SQL连接选项‘an

PHP+MYSQL手工盲注

大家好,我是乄 God epilepsy 扣扣:929777981,今天给大家带来PHP+MYSQL手工盲注教程,虽然注入并不是神马新技术了,但是还是有很多盆友不会,很多盆友都是借助sqlmap,如果有墙,你们的sqlmap还能行嘛?好了废话不多说,新手教程,大鸟跳过! PS:这篇文章写的很烂噢,大家将就看下吧,送给正在努力向前走的盆友,另外欢迎各位大牛私聊一起讨论绕过各种防火墙的黑盒测试技术!

9Python全站之路系列之MySQL SL注入

Python全栈之路系列之MySQL SQL注入 SQL注入是一种代码注入技术,过去常常用于攻击数据驱动性的应用,比如将恶意的SQL代码注入到特定字段用于实施拖库攻击等. SQL注入的成功必须借助应用程序的安全漏洞,例如用户输入没有经过正确地过滤(针对某些特定字符串)或者没有特别强调类型的时候,都容易造成异常地执行SQL语句. SQL注入是网站渗透中最常用的攻击技术,但是其实SQL注入可以用来攻击所有的SQL数据库. SQL注入的实现 创建SQLdb数据库 CREATE DATABASE SQL

Spring IoC 依赖注入(二)源码分析

目录 Spring IoC 依赖注入(二)源码分析 1. 依赖注入口 - populateBean 1.1 doCreateBean 1.2 populateBean 2. 手动注入 2.1 相关的类说明 2.2 applyPropertyValues 2.3 BeanDefinitionValueResolver 2.4 依赖检查 2. 自动注入 2.1 那些字段会自动注入 2.2 名称注入 2.3 类型注入 Spring IoC 依赖注入(二)源码分析 本章主要分析 Spring IoC 依