美文网首页
01.sql注入

01.sql注入

作者: 新一mghc | 来源:发表于2019-03-14 19:34 被阅读0次

    1. 形成原因

    SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的数据拼接到sql语句中后,被当作SQL语句的部分执行,从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。

    业务场景

    凡是涉及与数据库交互的业务(参数)都可能存在SQL注入;
    在 应用渗透中,重点关注查询、搜索等业务

    SQL注入技巧(绕WAF)

    ●大小写混合
    ●替换关键字
    ●使用编码
    ●使用注释 "//","--","/**/","#"
    ●使用特殊符号

    • 使用反引号`,可以用来过空格和正则,还可以将其做注释符用
    • 神奇的"-+.", select+id-1+1.from users;"+"是用于字符串连接的,"-"和"."在此也用于连接,可以逃过空格和关键字过滤
    • @符号, select@^1 from users;@用于变量定义如@var_name,@表示用户定义,@@表示系统变量

    常见注入点分类

    1. 按变量类型分
    • 数字型 user_id=$id
    • 字符型 user_id='$id'
    • 搜索型 text LIKE '%$_GET['search']%'”
    1. 按HTTP提交方式分
    • GET注入
    • POST注入
    • Cookie注入
    1. 按注入方式分
    • 报错注入
    • 盲注
      - 布尔盲注
      - 时间盲注
    • union注入
    • 编码问题
    • 宽字节注入

    2.测试步骤

    第一步:注入点探测
    自动方式:使用web漏洞扫描工具,自动进行注入点发现
    手动方式:手工构造 sql inject测试语句进行注入点发现
    第二步:信息获取
    通过注入点取期望得到的数据。
    1环境信息:数据库类型数据库版本操作系统版本,用户信息等。
    2.数据库信息:数据库名称数据库表,表字段字段内容(加密内容破解)
    第三步:获取权限
    获取操作系统权限:通过数据库执行shell,上传木马

    基于报错的信息获取-三个常用的用来报错的函数

    • updatexml():函数是 MYSQL对XML文档数据进行查询和修改的 XPATH函数
    • extractvalue():函数也是 MYSQL对XML文档数据进行查询的 XPATH函数
    • floor(): MYSQL中用来取整的函数

    sqlmap的使用

    • 获取数据库名 pikachu
      sqlmap -u "http://192.168.58.130/pikachu/vul/sqli/sqli_blind_b.php?name=111&submit=%E6%9F%A5%E8%AF%A2"
    • 获取表名 user
      sqlmap -u "http://192.168.58.130/pikachu/vul/sqli/sqli_blind_b.php?name=111&submit=%E6%9F%A5%E8%AF%A2" -D pikachu --tables
    • 获取列名 username,password
      sqlmap -u "http://192.168.58.130/pikachu/vul/sqli/sqli_blind_b.php?name=111&submit=%E6%9F%A5%E8%AF%A2" -D pikachu -T users --columns

    相关文章

      网友评论

          本文标题:01.sql注入

          本文链接:https://www.haomeiwen.com/subject/huupuqtx.html