【问题标题】:Getting hostname using sqlmap使用 sqlmap 获取主机名
【发布时间】:2016-07-17 23:38:22
【问题描述】:

有一个网站abc.com容易受到SQL注入,我已经通过sqlmap验证了这个,所以我得到了用户名和密码

https://github.com/sqlmapproject/sqlmap/wiki/Usage

但我注意到数据库在 oracle 上运行,我想获取主机以便我可以从 Oracle 客户端连接到数据库。

--hostname 返回abc.com,我怎样才能获得实际的数据库主机名,以便我可以使用 SQLMAP 通过 Oracle 客户端进行连接。

当我对 abc.com 进行端口扫描时,只有 40 和 443 是打开的。

P.S 仅供学习

谢谢

【问题讨论】:

    标签: sql oracle sql-injection penetration-testing sqlmap


    【解决方案1】:

    如果您可以在ORACLE 数据库的正确表上使用SELECT,这应该可以解决问题:

    SELECT host_name from v$instance
    

    如果您想了解有关如何连接的更多信息,那么您应该尝试

    SELECT type , value FROM v$listener_network 
    

    它将为您提供数据库网络名称,以及来自localhost 的连接字符串。

    【讨论】:

    • v$instance 的数据库是什么? (抱歉我用mysql时间长了)
    • 适用于 Oracle 数据库。我打错了,是HOST_NAME,不是HOSTNAME
    • 这会返回 abc.com(实际上也是由 sqlmap 返回的)
    • 然后查询v$listener_network 可能会有帮助。
    • 那我就没有更多线索了。你可能会在 40 端口访问数据库,连接字符串如下:(ADDRESS=(HOST=abc.com)(PROTOCOL=tcp)(PORT=40)),也有可能只能在本地访问数据库。
    【解决方案2】:

    如果你想连接到数据库,你可以简单地使用 --sqlmap-shell 来提示交互式 sqlmap shell。

    sqlmap -u abc.com --sqlmap-shell   
    

    但如果您想要当前数据库,也可以使用 --current-db 选项。

     sqlmap -u abc.com --current-db  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2011-02-18
      相关资源
      最近更新 更多