首页 > 数据库技术 > 详细

sql注入之堆叠注入及waf绕过注入

时间:2021-08-04 11:32:42      阅读:39      评论:0      收藏:0      [点我收藏+]

#堆叠查询注入

1.堆叠查询概念

stacked injections(堆叠查询注入)从名词的含义就可以看出一应该是一堆(多条)sql语句一起执行。而在真实运用中也是如此,我们知道在mysql中,主要是命令行中,每一条语句后面加“;”表示为语句的结束。这样我们就能想到是不是可以多句一起执行。而在不同额数据库中,堆叠的知识体系不同。堆叠注入只产生在一小部分数据库中。

在遇到我们知道管理员的账号和密码,密码是加密的,且无法解密;此时我们就可以使用堆叠注入进行插入数据,用户密码自定义的,可以插入一个用户,再用插入的用户进行登录操作。

2.堆叠注入靶场演示

sqlilabs第38关

查看源码:

技术分享图片

发现有函数:mysqli_multi_query()

此函数的作用是:执行一个或多个针对数据库的查询,查询语句使用分号隔开。

由此我们可以考虑使用堆叠注入。

构造payload:

http://xx.xx.xx.xx/sql-labs/Less-38/?id=1‘;insert into users(id,username,password)values(21,‘Bob‘,‘2021‘)--+

再查询id=21,发现已经注入成功

技术分享图片

 #sql注入之waf绕过

1.基本方法

 基本方法如下思维导图

技术分享图片

 技术分享图片

 2.靶机演示

服务器上开启安全狗,sqlilabs第2关进行演示

and 1=1 ,被拦截

技术分享图片

 以post形式进行提交,不被拦截,但接收不到值。

技术分享图片

 查看源码,是GET请,使用post传入数据无法执行。

技术分享图片

 将其修改为REQUEST方式

构造payload:

http://xx.xx.xx.xx/sqli-labs/Less-2/?id=-1 union select 1,2,database() --+

被拦截:

原因是安全狗有拦截sql的union注入,或查询数据库相关信息等。

 我们进行参数污染:

payload:

http://xx.xx.xx.xx/sqli-labs/Less-2/?id=1 /**&id=-1%20union%20select%201,2,3%23*/
?id=1 /**&id=-1%20union%20select%201,2,3%23*/等价于id=-1 union select 1,2,3#
成功绕过:

技术分享图片

 

 

 

sql注入之堆叠注入及waf绕过注入

原文:https://www.cnblogs.com/zhaohzaomumu/p/15092460.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!