如何使用 sqlmap 的 sql-query 命令将数据插入到表中

信息安全 sql注入
2021-08-19 19:24:51

我在测试站点上使用 sqlmap,我想修改表内的一些数据。使用开关--sql-query

  • 什么是正确的语法?

    例子:是--sql-query="My_query_here"吗?
    或者也许是--sql-query='myqueryhere'

  • 我如何能够修改多行数据?

    示例:假设我想用单词替换所有数据。游戏结束

  • 是否可以放入外壳中?

2个回答

大多数数据库不允许您仅使用 SQL 注入插入数据(当然,除非您已经在插入查询中,即使那样您通常也无法控制表名)。您不能简单地堆叠查询,这仅在 Microsoft SQL Server、PostgreSQL 和漫画书中允许。您可以使用子选择或联合选择来访问另一个表中的数据,而 SQLMap 在幕后执行此操作。

SQLMap 的真正优势在于数据泄露。如果你想要更复杂的东西,比如给你一个shell的多阶段攻击,那么你需要编写一个exploit脱掉训练轮,做个男人(或女人)。

您可以选择使用外壳--sql-shell例如在卡利:

sqlmap -u TARGET -D DBNAME --sql-shell

然而,

某些 Web 应用程序技术不支持特定数据库管理系统上的堆叠查询。例如,当后端 DBMS 为 MySQL 时,PHP 不支持堆叠查询,但当后端 DBMS 为 PostgreSQL 时,PHP 支持。

来自sqlmap 自述文件