博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的SQL注入学习
阅读量:5127 次
发布时间:2019-06-13

本文共 1658 字,大约阅读时间需要 5 分钟。

引贴:

http://blog.163.com/lucia_gagaga/blog/static/26476801920168184648754/

首先需要编写一个php页面,讲php页面放入/opt/lampp/htdocs目录下:

解释一下这个页面:

1.通过if语句判断变量是否初始化

2.if语句中通过mysql_connect()函数连接数据库

3.连接数据库成功后,选择一个数据库

4.选择完数据库后执行一条mysql查询

5.进行查询结果的处理

6.使用echo讲查询结果输出,便于查看

 

接下来配置数据库mululu_testdb,创建users表,并且造数据

然后使用 sql 语句取到指定的记录 参数从浏览器传入

取到的记录显示在指定的位置 效果就酱紫:

先来看看 and 注入和 or 注入:

再来看看加法注入和减法注入:

以上就是最简单的 SQL 注入示例;

通过传入人为构造的参数 取得本来拿不到的数据;

 

如果要攻击数据库 最起码要知道被攻击的是什么数据库 

首先从 Web 应用技术上就可以获得一些线索:
如果是使用 ASP 或者 .NET 开发的系统 数据库就可能是 SQLServer
如果是使用 PHP 开发的系统 数据库就可能是 MySQL 或者 PostgreSQL
而如果是使用 Java 开发的系统 它挂的数据库就可能是 Oracle 或者 MySQL
除了 Web 应用之外 底层操作系统也可以提供线索:
比如安装 IIS 作为服务器平台 则后台数据库就可能是 SQL Server
而允许 Apache 和 PHP 的 Linux 服务器 就可能使用 MySQL 或者 PostgreSQL
另外还可以借助错误信息来判断数据库类型
因为报错中有可能直接显示数据库的类型:

 

为了获知某个表里面存在多少个字段 可以注入 order by 子句:

 

还可以通过 union 语句注入的方式 获得数据库的用户名和版本:

 

然后就可以通过注入语句 获得所有的数据库的名字:

select * from users where id = 1 union select null,schema_name,null from information_schema.schemata 

 

上图所示 服务器上所有的数据库就这样暴露出来 。。。

有了数据库的名字 还可以进一步获取表的名字:
select * from users where id = 1 union select null,table_name,null from information_schema.tables where table_schema='bugfree' 

有了表名字 获取字段名字也很容易:

select * from users where id = 1 union select null,column_name,null from information_schema.columns where table_name='bf_bug_info' and table_schema = 'bugfree' 

 

至此 我们已经利用 SQL 注入的方式 获得了太多信息

然鹅 我们甚至还可以获得更多 
在掌握数据库连接密码的情况下 我们来查询一下 mysql.user 表:

那么如果没有密码呢 通过注入的方式 也可以获得这些数据:

select * from users where id = 1 union select Host,user,password from mysql.user 

以上展示的就是最为基础的 SQL 注入的实现形式了

假设 SQL 语句是 INSERT into 表名 values ('X',X,X); 

那么就往数据库插入了非法数据了。。。。。

转载于:https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/p/8042029.html

你可能感兴趣的文章
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如何在Access2007中使用日期类型查询数据
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>