很多人想学黑客知识,却不知如何入门,网上的教程也太繁琐,小白看了也头疼,那还是我来写黑客系列入门教程吧,跟着我做,你能黑客入门的。我们在第二季第一篇文章里《零基础学习Web渗透第一课,服务器的漏洞测试环境搭建》构造了一个mysql+php留言本的漏洞环境,我们就以此环境为例来讲解最流行的SQL Injection,最好你不要只看文章,请动下手把第一课的配置环境搭建好。
一、对小白的至关重要的数据库概念讲解
数据库有很多种。网上比较流行并且得到广泛应用的有Oracle、MySQL、PostgreSQL、微软SQL Server、微软Access 、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等数据库管理系统。但是无论哪种数据库,基本都逃脱不了库、表、字段、字段值的概念。举个形象的比喻,数据库就是一个大仓库,库里有很多房间,每个房间都贴个标签,表明里边里贮存什么的,每个房间就是表了 。每个房间里又存有很多麻袋,这些麻袋上也写有名字,注明是张三还是李四的麻袋,那么麻袋就是字段的意思了。打开张三的麻袋,里边装有苹果,苹果就是字段值。打开李四的麻袋,里边装有桃子,桃子也是字段值。我这里给小白画了个思维导图。

二、SQL Injection要准备的工具
1、python27,因为sqlmap需要python27支持。下载地址:https://www.python.org/downloads/release/python-2714/。下载完成默认安装就可以了,并不需要做其它设置。

2、sqlmap,下载地址:http://sqlmap.org/。下载完解压所有文件到一个目录就行,好比解压到d:/sqlmap。该工具用python语言写的,支持跨平台运行,具有一百多个命令行参数。你会安装后,你就会了系统和python环境配置。如果你能掌握所有的参数后,我相信你已经对最流行的数据库注入攻击有了相当深的了解了。Sqlmap是注入神器,有了它你可以扔掉所有注入工具了,它也是个撩妹高手,因为它基本支持了市面上所有数据库,并且注入的姿势(Payload)花样繁多,让你眼花缭乱的。
3、如果你不想像我下文那样全路径调用sqlmap,请参考《我们不一样的黑客渗透教程第二课,6行py写个端口扫描工具》这篇文章配置好python27的环境变量。如果你还想再懒点,我还可以教你一个简单的方法。如果你一直跟着我的课程学习,有可能你机器既装有python27,又装有python30,想直接调用python27执行sqlmap。我在这里假设你的python27装在c:/python27,你的sqlmap解压在d:/sqlmap,你可以在命令行底下先执行一条命令就可以直接调用了,命令如下:
path=c:/python27;d:/sqlmap
然后直接运行sqlmap.py就能执行了。

三、我们直接用实例来讲解Sqlmap最基本的用法
默认装好的python27如果没有给你直接配置好环境变量,也不要紧,我们直接调用全路径就可以了。我在这里假设你的python27装在c:/python27,你的sqlmap解压在d:/sqlmap。
1、检测漏洞:
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2
或是你像我上文一样,先执行了:
path=c:/python27;d:/sqlmap
那么直接执行下条命令就可以了。
sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2
以下所有的图片我都是全路径抓图的。

-u参数是表示后边要跟着的网站链接(URL),如果后边的URL像是"1.php?id=2&name=3"里边有两个&符号的,在windows下请把URL用双引号引起来,如果在linux下倒是不用。回车后,如果出现询问Y/n的,你一直按下回车键就行了。按回车就表示Y,输入n表示不同意。

不一会功夫就会出现漏洞检测结果了。

请注意上图中,出现了两种漏洞检测结果。一种是AND/OR time-based blind表示是通过时间来判断漏洞的,另一种是UNION query的。这两种后边都给你显示出了漏洞检测语句了。如果你对Sqlmap的漏洞检测语句有兴趣,请去学习mysql数据库知识,了解其原理。
2、用参数--dbs得到我们注入网站的所有库名
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 --dbs

如果只想得到当前网站的当前库名,参数--dbs换成--current-db。我们得到了4个数据库,information、mysql、perionmance、test其实都是系统自带的库,并不是留言本带的库,我们建的这个留言本默认用的是test的库。
3、用参数-D test --tables得到test库里的所有表名
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test --tables
我们得到了3个表名,有用的存有管理员信息的表在manage_user。

4、用参数-D test -T manger-users --columns得到 数据库test中manger-users表里所有列名
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test -T manger-users --columns
我们得到了user_name和user_pw的有效字段。

5、运行-D test -T manger-users -C user_name,user_pw --dump得到user-name和user_pw字段里的值
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test -T manger-users -C user_name,user_pw --dump


请注意上图中也有询问Y/n的,大体意思都是询问我们是否要调用sqlmap自动破解md5密码的。我们并不需要,直接输入n。我们把得到的加密密码去cmd5.com查询就可以了,得到的结果密码是123456。
请注意我在注入过程中-D、-T、-C这三个库、表、字段的参数都是用大写的,查询结果不用。要查询某个结果,参数前都用--的,像--tables。
这就是最简单的最顺利的sqlmap的用法了。我们通过注入最终得到了留言本管理员的用户名和密码,我们直接打开http://localhost/book/admin就输入用户名和密码就进入后台了。当然有的网站的后台会改名,我们需要一些后台扫描工具来找到网站的后台,这留在我们以后的零基础Web渗透教程里。
海阳顶端头条号,一个认真写作黑客文章的创作者,每篇文章都是实例测试的,希望得到你的关注和喜欢。
一、对小白的至关重要的数据库概念讲解
数据库有很多种。网上比较流行并且得到广泛应用的有Oracle、MySQL、PostgreSQL、微软SQL Server、微软Access 、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等数据库管理系统。但是无论哪种数据库,基本都逃脱不了库、表、字段、字段值的概念。举个形象的比喻,数据库就是一个大仓库,库里有很多房间,每个房间都贴个标签,表明里边里贮存什么的,每个房间就是表了 。每个房间里又存有很多麻袋,这些麻袋上也写有名字,注明是张三还是李四的麻袋,那么麻袋就是字段的意思了。打开张三的麻袋,里边装有苹果,苹果就是字段值。打开李四的麻袋,里边装有桃子,桃子也是字段值。我这里给小白画了个思维导图。

二、SQL Injection要准备的工具
1、python27,因为sqlmap需要python27支持。下载地址:https://www.python.org/downloads/release/python-2714/。下载完成默认安装就可以了,并不需要做其它设置。

2、sqlmap,下载地址:http://sqlmap.org/。下载完解压所有文件到一个目录就行,好比解压到d:/sqlmap。该工具用python语言写的,支持跨平台运行,具有一百多个命令行参数。你会安装后,你就会了系统和python环境配置。如果你能掌握所有的参数后,我相信你已经对最流行的数据库注入攻击有了相当深的了解了。Sqlmap是注入神器,有了它你可以扔掉所有注入工具了,它也是个撩妹高手,因为它基本支持了市面上所有数据库,并且注入的姿势(Payload)花样繁多,让你眼花缭乱的。
3、如果你不想像我下文那样全路径调用sqlmap,请参考《我们不一样的黑客渗透教程第二课,6行py写个端口扫描工具》这篇文章配置好python27的环境变量。如果你还想再懒点,我还可以教你一个简单的方法。如果你一直跟着我的课程学习,有可能你机器既装有python27,又装有python30,想直接调用python27执行sqlmap。我在这里假设你的python27装在c:/python27,你的sqlmap解压在d:/sqlmap,你可以在命令行底下先执行一条命令就可以直接调用了,命令如下:
path=c:/python27;d:/sqlmap
然后直接运行sqlmap.py就能执行了。

三、我们直接用实例来讲解Sqlmap最基本的用法
默认装好的python27如果没有给你直接配置好环境变量,也不要紧,我们直接调用全路径就可以了。我在这里假设你的python27装在c:/python27,你的sqlmap解压在d:/sqlmap。
1、检测漏洞:
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2
或是你像我上文一样,先执行了:
path=c:/python27;d:/sqlmap
那么直接执行下条命令就可以了。
sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2
以下所有的图片我都是全路径抓图的。

-u参数是表示后边要跟着的网站链接(URL),如果后边的URL像是"1.php?id=2&name=3"里边有两个&符号的,在windows下请把URL用双引号引起来,如果在linux下倒是不用。回车后,如果出现询问Y/n的,你一直按下回车键就行了。按回车就表示Y,输入n表示不同意。

不一会功夫就会出现漏洞检测结果了。

请注意上图中,出现了两种漏洞检测结果。一种是AND/OR time-based blind表示是通过时间来判断漏洞的,另一种是UNION query的。这两种后边都给你显示出了漏洞检测语句了。如果你对Sqlmap的漏洞检测语句有兴趣,请去学习mysql数据库知识,了解其原理。
2、用参数--dbs得到我们注入网站的所有库名
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 --dbs

如果只想得到当前网站的当前库名,参数--dbs换成--current-db。我们得到了4个数据库,information、mysql、perionmance、test其实都是系统自带的库,并不是留言本带的库,我们建的这个留言本默认用的是test的库。
3、用参数-D test --tables得到test库里的所有表名
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test --tables
我们得到了3个表名,有用的存有管理员信息的表在manage_user。

4、用参数-D test -T manger-users --columns得到 数据库test中manger-users表里所有列名
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test -T manger-users --columns
我们得到了user_name和user_pw的有效字段。

5、运行-D test -T manger-users -C user_name,user_pw --dump得到user-name和user_pw字段里的值
运行c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test -T manger-users -C user_name,user_pw --dump


请注意上图中也有询问Y/n的,大体意思都是询问我们是否要调用sqlmap自动破解md5密码的。我们并不需要,直接输入n。我们把得到的加密密码去cmd5.com查询就可以了,得到的结果密码是123456。
请注意我在注入过程中-D、-T、-C这三个库、表、字段的参数都是用大写的,查询结果不用。要查询某个结果,参数前都用--的,像--tables。
这就是最简单的最顺利的sqlmap的用法了。我们通过注入最终得到了留言本管理员的用户名和密码,我们直接打开http://localhost/book/admin就输入用户名和密码就进入后台了。当然有的网站的后台会改名,我们需要一些后台扫描工具来找到网站的后台,这留在我们以后的零基础Web渗透教程里。
海阳顶端头条号,一个认真写作黑客文章的创作者,每篇文章都是实例测试的,希望得到你的关注和喜欢。