SQL注入7之查询方式注入 – 作者:iamYit

免责声明

该文章仅用于信息防御技术的交流和学习,请勿用于其他用途; 在未得到网站授权前提下,禁止对政府、事业单位、企业或其他单位网站及系统进行渗透测试;技术是把双刃剑,请遵纪守法,做一名合格的白帽子安全专家,为国家的网络安全事业做出贡献

查询方式注入类型

select注入

select的SQL语句多半如下(最常见):$sql=”SELECT users.username,user.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY uesr.id DESC LIMIT 0,1″;

insert注入

insert的SQL语句多半如下:$insert=”INSERT INTO ‘security’.’uagents’ (‘uagent’,’ip_address’,’username’) VALUES (‘$uagent’,’$IP’,’$uname’)”;若useragent字段未做任何处理,可实现SQL注入

update注入

update的SQL语句多半如下:$update=”UPDATE ueses SET password =’$passwd’ WHERE username = ‘$row1′”;若password字段未做任何处理,可实现SQL注入

order by注入

order by的SQL语句如下:$sql = “SELECT * FROM users ORDER BY $id”;尝试 ?sort=1 desc 或者asc,显示结果不同,则代表可以注入。(升序or降序排列)从上述的 sql 语句中我们可以看出,我们的注入点在 order by 后面的参数中,而 order by 不同于的我们在 where 后的注入点,不能使用 union 等进行注入。

order by注入思路

可利用order by后的一些参数进行注入。

(1)order by 后的数字可以作为一个注入点,也就是构造order by 后的一个语句,让该语句执行结果为一个数,我们尝试http://127.0.0.1/?sort=right(version(),1)
没有报错,当时right换成left都一样,说明数字没有起作用,我们考虑布尔类型,此时可以用报错注入和延时注入。
此时可以直接构造?sort= 后面的一个参数,此时,我们可以有三种形式
1、直接添加注入语句,?sort=(select ******)
2、利用一些函数,例如rand()函数等。?sort=rand(sql 语句)
3、利用and,例如?sort=1 and(加sql 语句)。同时,sql语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造

order by注入原理

order by注入是因为源码里使用了order by 带入了数据库查询,构成了order by注入

来源:freebuf.com 2021-05-29 19:20:47 by: iamYit

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论