20159302《网络攻击与防范》第六周学习总结

本节学习的目标是针对seed环境下的网站进行sql注入攻击php

1、环境配置

在本次实验过程当中,咱们须要三样东西:Firefox浏览器、Apache、phpbb网站。mysql

1.运行Apache。在命令行下输入  sudo service apache2 start .以下图:web

2.测试网站运行环境,因为在seed环境下已经提早安装好了Apache+mysql+php的环境。所以只须要打开网站地址便可测试网站的运行情况。在地址栏输入http://www.sqllabmysqlphpbb.com,即可以正常访问此网站。如图:sql

测试可知,该网站可以正常的访问。数据库

3.本网站默认的DNS解析式解析到本机的,为了便于其余机器可以访问该网站,须要修改配置文件,文件路径/etc/hosts.将原来的映射到127.0.0.1的地址改成本机的ip地址。apache

其中ip地址使用ifconfig命令能够查询到。代换结果以下所示:浏览器

在此过程当中,遇到的问题是hosts文件因为权限问题不能正常的保存,所以须要使用更改文件权限的命令去设置hosts文件权限。在此我使用的是:sudo chmod 777 /etc/hosts。在更改文件权限以后,才能正常的保存文件。函数

4.php配置文件中默认是自动开启对抗sql注入机制的,所以须要将magic_quotes_gpc = On字段改成off。这样才可以正常的使用sql注入方法。这个目录下的文件一样也存在权限问题,也须要使用该更目录权限名利。在此默认的我都是使用chmod77 拿到全部的权限的。学习

5.重启Apache,命令为 sudo service apache2 restart。测试

6.针对select语句进行攻击。

在登陆界面,因为sql语句存在不完整性验证。用户键入用户名和密码以后,login.php会将传送过来的数据与mysql数据库中的username和user_password字段相比较,若是匹配成功则成功登陆。与其余的web应用程序同样,php程序使用sql语言与背后的数据库交互。

具体的操做步骤是在输入用户名的登陆框内输入:ted'OR'1'='1'。

一样的,在update语句中也是存在相应的漏洞。

不过在理论上,这个语句是成立的,可是在具体的实施过程当中遇到了问题。在输入相应的sql注入语句后,并不能成功的进行注入测试。

2、存在的问题

在本节的学习中,关于sql注入的理论性知识都能理解并掌握,可是存在最大的问题就是在实际的操做过程当中,不能正确的实施攻击。在输入注入语句以后,页面返回输入用户名不正确的提示,须要从新输入等信息。

3、问题的解决方法

方法一:针对sql注入的状况能够将magic_quotes_gpc改成on设置,从而可以正常避免非法输入。

方法二:能够使用php自带的函数addslashes()来避免特殊字符。

方法三:使用 mysql_real_escape_string 避开特殊字符。

相关文章
相关标签/搜索