计算机网络安全 实验三 SQL注入攻击
Posted 赵宝课堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络安全 实验三 SQL注入攻击相关的知识,希望对你有一定的参考价值。
实验目的:
1、熟悉SQL注入攻击的方法。
实验环境:
操作系统:WindowsXP/2003/7/10
实验步骤:
1、配置php开发环境,在WindowsXP/2003/7/10系统下,使用appserv-win32-2.5.10版本的软件,配置php开发环境。
链接:http://pan.baidu.com/s/1gf6vLdx
密码:qs5n
2、运行网页。
在配置好的php环境中,配置网站。网站的源代码使用下载中的ch09压缩包vao里的代码。
链接:http://pan.baidu.com/s/1gf6vLdx
密码:qs5n
3、模拟实施攻击演示。
1)、寻找注入点
在有参数传入的天赋添加上 ' 或者 and 1=1 或者 and 1=2 等特殊字符。通过浏览器所返回的错误信息来判断是否存在SQL注入。如果返回错误,则表明程序为对输入的数据进行处理,绝大部分情况下都能进行注入。
2)、获取信息(这里实际的表名和字段名,和例题中给出的不一定一样,需要同学们自己猜,例一给出了一个例子,其他的需要自己去猜测)。
获取信息是SQL注入中一个关键的部分,需要判断出存在注入点的数据库类型、各字段名、用户帐号和密码、权限等。
例1:http://127.0.0.1:8080/ch09/view_user.php?id=4 and (Select Count(*) from Admin)>=0
判断是否存在表Admin。如果返回结果与http://127.0.0.1:8080/ch09/view_user.php?id=4的请求结果相同,说明表Admin存在,反之,即不存在。如此循环,直至猜到表名为止。常被采用的表名包括admin、login、subject、importance、link,users等等。
例2:http://127.0.0.1:8080/ch09/view_user.php?id=4 and (Select Count(username) from Admin)>=0
判断表中是否存在字段名为username。常用作判断的字段名包括ID、password、pwd、user_name、uname、address、email、date、time、Tel等等。
在表名和列名猜解成功后,再使用SQL语句,得出字段的值。例3为一种最常用的方法:Ascii逐字解码法。
例3:已知表Admin中存在username字段。首先,我们取第一条记录,测试长度:http://127.0.0.1:8080/ch09/view_user.php?id=4 and (select length(username) from Admin limit 0,1)>0
如果top 1的username长度大于0,则条件成立;接着就是>1、>2、>3测试下去,一直到条件不成立为止,比如>5成立,>6不成立,那么username的长度为6。
用substring(username,N,1)截取username中第N位字符。再ascii(mid(username,N,1))得到ASCII码,比如:http://127.0.0.1:8080/ch09/view_user.php?id=4 and (select ascii(substring (username,1,1)) from Admin)>0。用逐步缩小范围的方法得到第1位字符的ASCII码
4、啊D注入工具的使用。
链接:http://pan.baidu.com/s/1gf6vLdx
密码:qs5n
使用方法,请浏览如下网址学习:
http://jingyan.baidu.com/article/4d58d541ce04ae9dd4e9c0f9.html
视频: http://www.56.com/u39/v_NTk5NjAwNjA.html
ppt:
http://wenku.baidu.com/view/97a31b7b168884868762d6b8.html?re=view
以上是关于计算机网络安全 实验三 SQL注入攻击的主要内容,如果未能解决你的问题,请参考以下文章
20155313 杨瀚 《网络对抗技术》实验九 Web安全基础
20145301赵嘉鑫 《网络对抗》Exp9 Web安全基础实践