20169210 2016-2017-2《网络攻防实践》第十二周SQL注入

SQL注入实验

实验环境

环境配置

实验需要三样东西,Firefox、apache、phpBB2(镜像中已有):
运行Apache Server:镜像已经安装,只需运行命令%sudo service apache2 start
phpBB2 web应用:镜像已经安装,通过http://www.sqllabmysqlphpbb.com访问,应用程序源代码位于/var/www/SQL/SQLLabMysqlPhpbb/
配置DNS:上述的URL仅仅在镜像内部可以访问,原因是我们修改了/etc/hosts文件使http://www.sqllabmysqlphpbb.com指向本机IP127.0.0.1。如果需要在其他机器访问,应该修改hosts文件,使URL映射到phpBB2所在机器的IP。

关闭对抗措施

PHP提供了自动对抗SQL注入的机制,被称为magic quote,我们需要关闭它。
1.找到/etc/php5/apache2/php.ini
2.找到magic_quotes_gpc = On这一行
3.改为magic_quotes_gpc = Off
4.重启Apache:”sudo service apache2 restart
1028838-20170518100356775-1926259443.png

对SELECT语句的攻击

此次任务,你需要通过访问虚拟机内的URL:www.sqllabmysqlphpbb.com。在进入phpBB之前系统会要求你登陆。这个登陆认证由服务器上的login.php实现,需要用户输入用户名和密码来通过认证。
1028838-20170518100920291-1477089385.png
修改SQL语句,如下所示
1028838-20170518100920291-196227449.png
修改之后重启Apache,我们可以看到密码不管填什么都可以登录成功。
1028838-20170518100932994-1963272722.png

对UPDATE语句的攻击

当用户想要在phpBB2中修改他们的资料时,可以点击Profile,然后填写表单修改。用户发送修改请求后,会执行include/usercp_register.php中的一条UPDATE SQL语句。在这条语句中同样有一个SQL注入漏洞,请用它来达到以下目标:在不知道其他人密码的情况下修改其资料。例如:你以Alice登陆,你的目标就是修改Ted的资料信息,包括他的密码。攻击成功后你将可以登陆Ted的账号。
我们在interest进行注入攻击
1028838-20170518101348541-1708184602.png
如下图所示我们可以看到ted信息修改成功。
1028838-20170518101357713-993835281.png

对抗SQL注入

  1. 使用magic_quotes_gpc避开特殊字符。
    1028838-20170518101642135-1443732343.png
  2. 使用addslashes()来避开特殊字符。
  3. 使用mysql_real_escape_string避开特殊字符。
  4. Prepare Statement。

转载于:https://www.cnblogs.com/crisgy/p/6872009.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值