- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在工作中管理一个网站,该网站是 SQL 注入(inject)攻击的受害者。通过检查日志,攻击者似乎使用了 sqlmap
使用文件读取选项并从服务器获取了一堆配置文件,因为我们的 Web 开发人员很草率并使用 root mysql 帐户进行连接(其中有文件权限)。
这是我试图理解的最奇怪的部分。这些文件被读取了——我知道它们被读取了——因为攻击者随后在其中一个文件中使用了密码来进行一些系统渗透。查看日志,他首先获取了一个 index.php,其中引用了 config.php 和其他一些内容。他们都成为目标。
为了加强安全性,我捕获了 sqlmap 并访问了我们的服务器,在弄清楚它是如何工作的之后,我能够捕获文件。
我们的 SQL 服务器不面向外部,因此攻击者无法尝试此操作。这是奇怪的部分:
我从桌面连接到我们的 MySQL 服务器
,并尝试选择 LOAD_FILE
以及 LOAD_FILE
>将数据 INFILE 加载到表中。
其中一些有效。例如,select LOAD_FILE('/etc/passwd')
返回 /etc/passwd.
但并非所有方法都有效。
选择 LOAD_FILE('/var/www/site_name/index.php')
返回 NULL
.
将数据 INFILE '/var/www/site_name/index.php' 加载到临时文件中;
返回:
ERROR 29 (HY000): File '/var/www/site_name/index.php' not found (Errcode: 13)
什么?文件未找到?啊?
所以我对同一个文件运行 sqlmap 并下载它。
我用-v 6
运行sqlmap
,这样我就可以看到一切 - 它使用LOAD_FILE来获取文件。
为什么注入(inject)攻击中的LOAD_FILE会起作用,但从mysql客户端命令行加载文件会返回NULL或找不到文件?但仅适用于某些文件?/etc/passwd 和/etc/hosts 可读。
有什么线索吗?
最佳答案
事实证明,经过几天的努力,我发现另一位管理员改变了一些做法,使得面向外部的服务器(我以为我正在访问的服务器)实际上将端口 80 转发到另一台较新的服务器。两台服务器上都有数据库的副本。因此,当执行 SQL 注入(inject)时,它会攻击内部/较新的数据库,并且可以读取该服务器上的文件。当我使用 mysql 客户端访问相同的 IP 地址时,它正在读取不同文件系统上的旧数据库副本,该文件系统与其他服务器没有相同的文件。
此后,人们的头颅开始滚动。感谢您的努力,并对浪费任何人的时间表示歉意。
关于MySql LOAD_FILE 奇怪的权限问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880786/
我想插入一个 HTML 文件,其中有很多我不想手动转义的 SQL 元字符(例如单引号)到 MySQL 表中。 虽然我可以让 mysql 客户端将文件内容加载到一个变量中,然后简单地插入该变量,但大致如
我有以下目录结构: project/ controller/ __init__.py app1.py view/ app1.kv
我有以下目录结构: project/ controller/ __init__.py app1.py view/ app1.kv
我在工作中管理一个网站,该网站是 SQL 注入(inject)攻击的受害者。通过检查日志,攻击者似乎使用了 sqlmap 使用文件读取选项并从服务器获取了一堆配置文件,因为我们的 Web 开发人员很草
我遇到了 MYSQL LOAD_FILE 问题。每当我执行某事时 UPDATE product_category SET thumbnail= LOAD_FILE('C:\ProgramData\My
我知道我需要使用文档中提到的特定路径名 https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_load-file
我有一个类似的查询 SELECT Load_file("whatever") 和max_allowed_packet默认为16M,但结果不知何故不完整,结尾缺失(总是在一定长度之后)。是否还有其他
我正在尝试将xml文件的目录作为blob加载到数据库表中。每行将包含一个对应的Blob文件。通过python脚本将文件加载到表中时,值将插入为null。在mysql命令行中运行等效命令时,也是如此。
这是我目前唯一可以在 MySQL 中使用 load_file() 函数的路径: C:\ProgramData\MySQL\MySQL Server 8.0\Uploads 我不能从任何其他路径附加任
我想让 SQL LOAD_FILE 函数正常工作,并且已阅读有关此问题的每个问题/答案 + 文档,但以下是正在发生的情况。 当我想从我的主目录LOAD_FILE时: mysql> SELECT LOA
我很想使用 mysql 函数 'LOAD_FILE' 将 .npz 文件插入到 mysql 列中(似乎这应该可行),但是我在sqlalchemy的ORM层中找不到任何对应关系,而且我也无法在较低层中编
我是否必须将图像文件保存到特定位置才能使用 LOAD_FILE 更新 MYSQL 产品图像字段。 我使用了以下代码,首先我收到了 29 rows affected 消息,但是当我使用相同的语句再次尝试
我正在尝试将图像插入我的 MySQL 服务器。我做了一些研究,看起来最好的方法是通过 LOAD_FILE()。但是,LOAD_FILE() 始终返回 null。我知道 LOAD_FILE() 有 4
我搜索并找到了这篇文章 (http://stackoverflow.com/questions/1814297/cant-load-file-data-in-the-mysql-directory),
我想让 SQL LOAD_FILE 函数正常工作,并且已经阅读了关于此的每一个问题/答案和文档,但这是正在发生的事情。 当我想从我的主目录LOAD_FILE时: mysql> SELECT LOAD_
我有几个文件要一起存储在 mysql 表的 blob 类型列中。所以我只是把它们放在一个文件夹中,然后压缩它。我在使用 load_file() 函数存储图像、文本和 pdf 文件时从来没有遇到过任何问
目标 当前的目标是,将来自任何网络用户的文件附件作为 BLOB 数据插入 MySQL 数据库。这可以来自任何文件夹 - 例如;桌面。 问题 这是唯一的路径 ---C:/ProgramData/MySQ
我正在执行 SELECT LOAD_FILE("/home/user/domains/example.com/public_html/robots.txt") AS tmp FROM tmpTable
我有一个名为“电子邮件”的文件夹,其中有两个子文件夹,以与它们所拥有的文件分类相对应的标签命名(垃圾邮件或非垃圾邮件,均为 .txt 文件)。这两个子文件夹中有 3000 个文件。使用load_fil
我正在尝试将图像插入 mysql 数据库。我正在使用以下查询。但查询不起作用。如果我删除图像插入部分它就可以工作。哪里有问题?谁能帮忙 $sql="INSERT INTO mytable ( `use
我是一名优秀的程序员,十分优秀!