zoukankan      html  css  js  c++  java
  • SQL注入实验

    实验过程

    环境配置

    1.运行Apache Server:镜像已经安装,只需运行命令 sudo service apache2 start
    2.phpBB2 web应用:镜像已经安装,通过http://www.sqllabmysqlphpbb.com访问,应用程序源代码位于/var/www/SQL/SQLLabMysqlPhpbb/
    3.配置DNS:上述的URL仅仅在镜像内部可以访问,原因是我们修改了/etc/hosts文件使http://www.sqllabmysqlphpbb.com指向本机IP 127.0.0.1。如果需要在其他机器访问,应该修改hosts文件,使URL映射到phpBB2所在机器的IP。
    4.找到/etc/php5/apache2/php.ini,找到magic_quotes_gpc = On这一行改为magic_quotes_gpc = Off
    在之前的实验中实验环境已经搭配好了。

    实验步骤

    首先对select语句进行攻击


    进入网页,选择登陆
    这里面存在sql注入点。
    1.首先可以猜测用户名有什么,比较典型的有admin,后面跟着密码的输入,一种想法可以是注释掉用#,发现过滤并没有把#过滤掉,所以成功。

    对update语句的攻击

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


    使用
    ',user_sig = 'SELECT * FROM phpbb_users', user_sig_bbcode_uid = '7f489fe5f6' WHERE user_id = 6#
    或者
    ',user_sig = 'SELECT * FROM phpbb_users' WHERE user_id = 6#
    或者其他的


    知道ALICE的密码就可以修改ted的密码。

    对抗SQL注入

    1.避开特殊字符
    2.使用addslashes()方法
    3.使用函数避开特殊字符
    4.将数据与sql逻

  • 相关阅读:
    数组(Array)的使用方法
    Django中的事务操作
    什么是事务(Transaction)?事务的四个特性以及事务的隔离级别
    0.2 Django + Uwsgi + Nginx 的生产环境部署之实战篇
    0.1 Django + Uwsgi + Nginx 的生产环境部署之理论篇
    linux 进入编辑文件,保存退出相关命令
    Django--restframework
    使用用户名/邮箱/手机号 + 密码登陆 多形式登陆
    Django中异步任务---django-celery
    Redis 常用命令
  • 原文地址:https://www.cnblogs.com/blankicefire/p/8780441.html
Copyright © 2011-2022 走看看