insert/update/delete注入

我们常见的sql注入一般都是基于select语句,但是在update,insert,delete也可以注入。他们的原理都是当执行时遇到 (表达式1)(and/or)(表达式2) ,这种形式的式子时,前后表达式前后都会执行,然后做逻辑运算,最后的结果要么0,要么1。根据这个我也就可以理解每次sqlmap给出的payload的了
在这里插入图片描述
在此之前,我一直都习惯只闭合前面的引号,然后把后面的引号注释掉。一直都不能理解它给的payload为什么用了两个逻辑连接词,它是把前引号闭合后后面再构造一个随机字符串等式,这样中间就空出了一个表达式位可以插入我们的语句。
下面来说一下insert,update,delete的注入。

insert注入

insert语句的格式一般为
insert into <teable_name> values (,,,…);
当我们发现后面插入值的某个位置我们可控时,就可以把那个位置改成多个逻辑连接词的形式,同时insert注入还可以帮助我们任意注册账号。因为插入语句要求我们插入位置的数据类型相同,所以我们要我们可控的位置的数据类型一般都是数值。
insert 注入

update注入

update语句的格式一般为:
update <table_name> set column = where <条件>
这个还是和上面一样
update注入

delete注入

delete语句一般为:
delete from <table_name> where <条件>
原理还是和上面一样,只是这个要注意一下不要把数据库里面的内容删了,所以一定要保持最后逻辑表达式的结果为假。or连接词慎用。
1 and sleep(3) 结果为假
1 and updatexml(1,(select concat(’~’,user())),1) 报错最终结果为假
delete注入

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值