Cat*_*Can 1 python mysql sql-injection sqlalchemy sqlmap
我具有TARGET网站数据库和SQLMap 的凭据,可以直接连接到数据库。这是我在Kali Linux上有关SQLMap的命令
sudo sqlmap -d mysql://USER:PASSWORD@TARGET_IP:MySQL_Port/DATABASE
Run Code Online (Sandbox Code Playgroud)
例
sudo sqlmap -d mysql://admin:12345@95.12.45.12:3306/information_schema
Run Code Online (Sandbox Code Playgroud)
但这是我每次都遇到的错误
[CRITICAL] SQLAchemy connection issue ('(_mysql_exceptions.OperationalError)
(1045, "Access denied for user 'admin'@'17.45.65.11' (using password: YES)")')
Run Code Online (Sandbox Code Playgroud)
该IP 17.45.65.11是我的IP ofc,拒绝了
那么我的命令有问题吗?
还是有人知道使用凭证直接连接到目标数据库的更好方法?
MySQL的凭证不仅包括用户名和密码,还包括一组允许的IP地址。因此,即使我们具有正确的用户名和密码,但连接是通过不允许的IP建立的,我们也会从sqlmap中收到1045“访问被拒绝”错误。
为了说明问题,我testdb使用user 设置了一个测试数据库admin。这是用户的凭据:
MariaDB [testdb]> select host,user,password from mysql.user where user='admin';
+-------------+-------+-------------------------------------------+
| host | user | password |
+-------------+-------+-------------------------------------------+
| 92.168.0.20 | admin | *00A51F3F48415C7D4E8900010101010101010101 |
+-------------+-------+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
如该host列所示,admin仅允许用户从IP 92.168.0.20访问服务器。现在,如果我从该IP运行sqlmap,它将成功:
$ sudo sqlmap -d 'mysql://admin:12345@92.168.0.99:3306/testdb'
...
[*] starting at 09:28:43
[09:28:43] [INFO] connection to mysql server 92.168.0.99:3306 established
[09:28:43] [INFO] testing MySQL
[09:28:43] [INFO] resumed: [[u'1']]...
[09:28:43] [INFO] confirming MySQL
[09:28:43] [INFO] resumed: [[u'1']]...
[09:28:43] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.0
[09:28:43] [INFO] connection to mysql server 92.168.0.99:3306 closed
[*] shutting down at 09:28:43
Run Code Online (Sandbox Code Playgroud)
如果我从其他IP运行sqlmap,它将失败并显示1045“访问被拒绝”错误(与您的输出完全相同):
$ sudo sqlmap -d 'mysql://admin:12345@92.168.0.99:3306/testdb'
...
[*] starting at 09:32:00
[09:32:00] [CRITICAL] SQLAlchemy connection issue ('(_mysql_exceptions.OperationalError)
(1045, "Access denied for user 'admin'@'92.168.0.55' (using password: YES)")')
[*] shutting down at 09:32:00
Run Code Online (Sandbox Code Playgroud)
因此,如果您确定用户名和密码正确,则很可能是在允许的IP中出现了问题。创建MySQL用户时,通常的做法是仅允许从本地主机访问。因此,您可能具有正确的用户名和密码,但是只能在服务器上本地使用它们。另一方面,服务器接受来自外部的连接的事实可能表明允许某些其他IP连接。在这种情况下,您必须找出允许使用的IP,并从其中一个进行连接。
| 归档时间: |
|
| 查看次数: |
2903 次 |
| 最近记录: |