SQL注入原理:
1.参数用户可控化:前端传递给后端的参数是用户可以控制的
2.参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询
sql注入常用知识:
1.information_schema:表示所有信息,包括库、表、列
2.information_schema.tables:记录所有表名信息的表
3.information_schema.columns:记录所有列名信息的表
4.table_schema:数据库的名称
5.table_name:表名
6.column_name:列名
7.group_concat():显示所有查询到的数据
- 用途不同:主要用于行数据的拼接,函数无法处理这个多列结果而则主要用于列数据的拼接,。
- 操作方式不同:使用concat时,需要为每个需要拼接的字段分别指定;而group_concat可以一次性拼接多个字段的值,且自动在每个值之间添加逗号。
原理:当闭合字符遇到转义字符时,会被转义,那么没有闭合的语句就不完整了,就会报错,通过报错信息来判断是否是该闭合方式
分析报错信息:看斜杠后面跟着的字符是什么就是什么转义字符,若是没有就是数字型
eg:转义字符为:')
eg:无(数字型)
首先尝试:
无报错则为双引号闭合,报错则为双引号加括号闭合
多层括号同理
!!!一定要查询字段数一致!!!
使用根据字段数构造语句判断回显
在sql注入时为布尔盲注、时间盲注,注入的效率低且线程高容易被waf拦截,又或者是目标站点没有回显,我们在读取文件、执行命令注入等操作时无法明显的确认是否利用成功,则使用DNSLog注入
!!!若要使用load_file函数,需要在mysql的my.ini配置文件中,添加secure_file_priv=‘’!!!
secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。
- secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
- secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
- secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。
payload:
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/46984.html