• [CATARC_2017] 第二周


    第一天 (5.15)

    一如既往的早餐 国哥详细讲解APPSCAN

    第二天 (5.16)

    有会议... 一起帮公司布置会场;

    第三天 (5.17)

    国哥家中有事没来,我们两个小组充分讨论了今后的学习发展方向;

    第四天 (5.18)

    课程表 SQL注入实战; 梁爽姐姐讲解SQL;

    SOL注入:

    e.g.

    var Var1;

    Var1 = Request.form ("Var1");

    var sql = " select * from MYTable where Var1 = ' " + Var1 + " ' ";

    If Input: Ares

    SELECT * FROM MYTable WHERE Var1 = ' Ares ';

    Else if Input: Ares '; drop table MYTable--

    SELECT * FROM MYTable WHERE Var1 = ' Ares '; drop table MYTable-- '

    Else if Input: '

    SELECT * FROM MYTable WHERE Var1 = ' ' ';

    不匹配!!

    从返回错误信息可知 服务器信息 与 SQL语句结构。。

    review 2 conditions of SQL Injection:

    1) user can decide Input;

    2) codes match the Input.

    第五天 (5.19)

    在Windows下运行DVWA SQL注入: 建议装Kali系统[周末 (5.20-5.21)

    运行 XAMPP, 启动 Apache, MySQL:

    在 Chrome 地址栏 输入: localhost/DVWA/setup.php

    发现错误: 

    (1)PHP function allow_url_include disabled

    打开/xampp/php/php.ini,找到
    allow_url_include=Off
    改为
    allow_url_include=On

    (2)Could not connect to the mysql service. please check the config file

    打开/xampp/htdocs/dvwa/config/config.inc.php,将
    $_DVWA['db_user'] = 'root'$_DVWA[''db_password] = 'p@ssw0rd'
    改为
    $_DVWA[ 'db_user' ] = 'root';$_DVWA[ 'db_password' ] = '';  //mysql的默认用户名和密码
     
    (3)reCAPTCHA key:Missing
    打开/xampp/htdocs/dvwa/config/config.inc.php,将
    $_DVWA[ 'recaptcha_public_key' ] = '';$_DVWA[ 'recaptcha_private_key' ] = '';
    改为
    $_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';

    状态全部完成了

     

     哈哈。。

     

    初心者, 在 DVWA Security 选择 Low:

    Security level is currently: low.

    SQL Injection

    id:1

    id的值是我们可以控制的

    猜测SQL

    SELECT name, surname FROM users WHERE id = '1' ...

    输入 1'

    返回

    You have an error in your SQL syntax;
    check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1''' at line 1

    可以看到使用的数据库和特定SQL语句的部分结构。

    注意使用英文符号, 中文符号会被略过:

    Input: 1'--    // 用注释符 -- 将SQL语句后半部分注释掉

    可见如果直接将用户输入动态拼装进SQL语句,会有很大风险

    作为网络安全测试员,为了杜绝SQL注入,我们应注意:

    对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。

    为避免出现以上状况,我们要注意:

    1. 不使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取; //这周实验的要点

    2. 不使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接;

    3. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息;

    4. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装.

    注: sql注入的检测方法一般采取辅助或网站平台来检测,软件一般采用 SQL 注入检测工具 SQLmap 或者 jsky, 网站平台有亿思网站安全平台检测工具。

  • 相关阅读:
    c++输入输出,保留几位小数
    算法训练 旅行家的预算
    算法训练 拦截导弹(最长递增子序列和最长递减子序列问题,输入回车时停止输入)
    算法训练 字符串比较
    关于新博客的转移
    关于在对象内部访问实例变量的方式选择
    动态计算文本宽度和高度
    工作将近三个月的总结(未完持续)
    ViewController的.m文件代码布局规范
    Objective-C学习之Runtime
  • 原文地址:https://www.cnblogs.com/cragoncanth/p/6876507.html
Copyright © 2020-2023  润新知