sql注入 小白入门学习笔记(八)

这里总结几种可以进行注入的地方。

也就是常说的 基于insert / update /delete 的注入

首先一个个介绍一下

INSERT INTO table_name ( field1, field2,…fieldN ) VALUES ( value1,value2,…valueN );

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause];

DELETE FROM table_name [WHERE Clause];

首先看 insert ,我们在注册账户的时候一般会使用到 insert ,然后我们输入的信息也就是value1,value2,value3…一般在UI界面就是用户名密码之类的。

在这里注入一般就是使用updatexml这种报错的注入。

注意,一般来说,使用 union select 语句的前提是前面也是一个查询语句,才使用UNION关键字进行注入。而对于这种没有select的注入,一般使用 OR 关键字和 updatexml等其他(好像还有几种,也是类似的)并且通过 or ‘1’=’1进行闭合(一般不使用注释符–+闭合)。

如图
sql注入 小白入门学习笔记(八)
用户这里填的是 1’ or updatexml(1,concat(" ~ “,database(),” ~ "),1) or ‘1’='1

然后得到
sql注入 小白入门学习笔记(八)
update同理。

这里我们看看delete操作。

sql注入 小白入门学习笔记(八)
其实是通过 get请求 来提交 需要删除的数据 的 id值。

那么就和普通的注入一样,首先这里是删除,是delete关键字,所以不用union select 而是updatexml这类的报错。

构造好了之后,由于这里是url,所以我们要对提交的数据进行关键字编码,如图

sql注入 小白入门学习笔记(八)
然后就可以了。

这里还提供一种报错的函数,如图。

sql注入 小白入门学习笔记(八)
sql注入 小白入门学习笔记(八)
还有就是floor的报错,之前的笔记里也有提到,这里就不说了。

本文系作者原创,若有错误恳请斧正,不胜感激。