有没有办法更新一个表,并在一个语句中选择它?
Posted
技术标签:
【中文标题】有没有办法更新一个表,并在一个语句中选择它?【英文标题】:Is there a way to update a table, and select it within one statement? 【发布时间】:2017-04-08 01:50:14 【问题描述】:我目前正在本地主机 Web 应用程序上练习 SQL 注入。为了成功地做到这一点,必须在语句中返回一个值(通过使用SELECT
)。我正在尝试更改用户的密码:
changepwd', (UPDATE mysql.user SET authentication_string=PASSWORD('new password')
WHERE user='root' UNION SELECT authentication_string from mysql.user)) #
对于 SQL 注入,您不能使用 ;
。我在那个例子中尝试了UNION
,看看它是否可行,但没有运气。我可以尝试其他任何想法吗?
【问题讨论】:
这对于 Postgres 来说非常简单。您使用的是哪个 DBMS? 【参考方案1】:我认为这个问题的答案是here。
简而言之,答案是创建一个存储过程。
【讨论】:
一般来说这是要走的路,但他问的是sql注入,所以创建SP不是一个选项 那是不是可以注入、处理和调用呢?也许通过更改分隔符并运行多个调用。 (不知道有没有可能,没测试过)以上是关于有没有办法更新一个表,并在一个语句中选择它?的主要内容,如果未能解决你的问题,请参考以下文章
从嵌套的dict中选择一个随机值,并在另一个嵌套的dict中更新它
当在不同的选择中选择一个选项时,有没有办法显示/隐藏某些选项并在选择中显示/隐藏其他选项?
Sql 从一个表列中选择一个最小值,并在一个 SQL 语句中将结果插入到另一个表列中
为啥 select 语句没有从数据库表中选择所有行?它每次都忽略第一个条目