SQL注入简介

SQL注入

1.原理分析定义:

SQL注入是一种将恶意的SQL代码插入或添加到应用(用户)的输入参数的攻击,攻击者探测出开发者编程过程中的漏洞,利用这些漏洞,巧妙的构造SQL语句,对数据库系统的内容进行直接检索或修改。

2.SQL的WEB框架分析:

sql的web框架分析.png

3.Mysql注入方法及逻辑

  1. Mysql注入常用函数

    函数名称 函数功能
    system_user() 查询系统用户名
    user() 用户名
    current_user() 当前用户名
    session_user() 连接数据库的用户名
    database() 数据库名
    version() 数据库版本
    @@datadir 数据库路径
    @@version_compile_os 数据库版本
    count() 返回执行结果数量
    concat() 没有分隔符连接字符串
    concat_ws() 含有分隔符的连接字符串
    group_concat() 连接一个组的所有字符串,并以逗号分隔每一条数据
    load_file() 读取文件
    into_outfile() 写文件
    ascii() 字符串的ASCII代码值
    ord() 返回字符串的第一个字符的ASCII值
    mid() 返回字符串的第一个字符的一部分
    substr() 返回字符串的第一个字符的一部分
    length() 返回字符串的长度
    函数1.png
函数2.png
  1. 简单的注入分析及sql语句分析

    • -- 登录处的SQL语句
      select * from users where username='admin' ad pwd='pass'
      

      此时使用:

      'or '1'='1
      

      则构造sql语句为:

      分析1.png
  • and 1=2 union select 1,2,3--
    
  • select user() regexp '^ro'
    
  • -- 判断数据库的第一个字符串的首个字符的ASCII码为114
    ascii(substr((select user)), 1,1))=114
    
  • -- 如果数据库的第一个字符串的首个字符的ASCII码为114,则返回0,否则系统延时5秒
    If(ascii( substr((select user),1, 1))=114, 0,sleep(5))
    
  • (ascii(substr((select table_name from information_schema.tables wheretable_schema=database() limit 0,1)1,1))=9)
    
  • uodatexml(1,concat(0x7e,(select eversion),0x7e),1)
    

4.SQL注入流程

  1. 如何寻找SQL注入点

    • 目标收集:

      • 无特定目标

        inurl:.php?id=

      • 有特定目标

        inurl:.php?id= site:target.com

      • 工具爬取

        spider,对搜索引擎和目标网站的链接进行爬取

    • 注入识别

      手工简单识别:

      1. '
      2. and1=1/and 1=2
      3. and '1'='1'/and '1'='2
      4. and 1 like 1/and 1 like 2

      工具识别:

      1. sqlmap- m filename( filename中保存检测目标)
      2. sqlmap- -crawl( sqlmapy对目标网站进行爬取然后依次进行测试)

      高级识别:

      1. 扩展识别广度和深度:
        Sqlmap- level增加ロ测试级別,对 header中相关参数也进行测试
        sqlmap- r filename( (filename中为网站请求数据)
      2. 利用工具提高识别效率
        Burpsuite+ Sqlmap
        Burpsuite拦截所有浏览器访问提交的数据
        Burpsuite扩展插件,直接调用 Sqlmap进行测试

      一些Tips:

      1. 可以在参数后键入“*"来确定想要测试的参数
      2. 可能出现注入的点:新闻、登录、搜索、留言
      3. 站在开发的角度去寻找
    • 代码审计:

      1. 搜索关键代码和函数
      2. 梳理关键业务
SQL注入流程1.png
SQL注入信息收集.png
获取数据.png
提权.png

你可能感兴趣的:(SQL注入简介)